温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
大家好,我是海波老师,接下来我们继续来讲Java面向对象的相关语法,我们这里呢,先把类拷贝好啊,咱们写上一个21。然后把这个去掉,我们写上一个叫abstract。好了,点击OK,然后呢,把我们这里啊,咱们全都给它删掉,把这里呢,咱们也给它删掉就可以了啊,那在Java中啊,我们一般呢,会先声明一个类,然后属性和方法,然后呢,我们再创建对象,使用这个对象的属性和方法,这是没有任何问题的,但是如果这个类呢,不能准确的分析出来,或者无法准确的定义出来呢,或者属性和方法无法准确的提炼出来,怎么办?比如啊游戏玩的好。这个好是很难准确定义的,或者说你说篮球投的准,那这个准也是很难定的,比如啊,你是100个球,你投进100个叫准呢,还是投进90个就叫准呢,对吧?所以这个时候你就会发现,当我们的概念太抽象的时候,定义起来就会很困难,如果连定义都很困难的话,就更别说构建具体的对象了,可是生活中又确实存在这种情况,怎么办?
01:02
所以啊,为了解决这样的问题,加入的语法中,它提出了一个抽象的概念,所以咱们这里说一下,有一个叫抽象的概念,我们这个单词叫abstract,它其实就是抽象的意思。那么也就是说呀,我们在Java当中,如果一个类不能准确的定义,或者这个类不完整,那咱们就认为是抽象类,那么这样的类是无法构建对象的,那同样啊,如果一个方法不能准确的描述我们的功能,那么它也是不完整的,所以我们认为这个方法也应该是抽象的,所以我们把这样的方法呢,就称之为叫抽象方法,所以我们Java中是有抽象类的概念,以及抽象方法的概念,诶,老师啊,那有没有抽象属性呢?这个在Java中是没有的。因为如果类中的属性或特征你不能准确定义的话,那就不声明不就可以了吗?对不对?因为你本来也不知道怎么去声明,对吗?所以啊,那个就无所谓。不过有一个问题啊,既然类货方法无法准确定义,那为什么我们还要非得去定义它呢?那是因为啊,在面向对象的分析中,有一个非常有意思的现象,就是我们会先提炼出具体的对象,就意味着我们先有对象。
02:13
然后再从这些对象中找出他们共性的特征和行为来形成类,也就意味着先有对象,然后再有类,对吧?这是一个从具体到抽象的过程。所以我们的对象呢,它是具体的。然后呢,我们的类呢,它是抽象的。我们写代码的时候需要先声明类,诶大家看啊,这是我们分析问题。然后呢,这是我们编写代码。好,我们要先把类声明好,然后呢,我们在创建对象,对不对?所以我们写上它,我们叫做对象,也就是说我们是从抽象到具体的这么一个过程,所以把抽象我们放过来,把具体呢,我们给它放到后面去。那为什么会是这样的呢?其实啊,在面向对向体系中或面向对象的分析中,我们是更喜欢抽象的对象的原因就在于不容易出现错误呀。比如我们夏天的时候在小区里面晨跑,天还没有亮,前面有一个模糊的人影呢,向你跑了过来,天色幽暗,看不清啊,离得近了一点呢,你发现,诶,那原来是个小孩儿啊,他也在晨跑,对不对?只不过呢,和你对象而行嘛。再近一点,你会发现,诶,这不是邻居老王家的孩子吗?正在跑步减肥呢。然后呢,你碰见他,跟他打了个招呼,然后鼓励了他一下,就开始奔跑了,你看这个过程不就是从模糊到清晰再到具体的过程吗?这里的模糊啊,我们就可以理解为抽象,而刚刚这个过程呢,恰恰就符合了我们开发软件的一个过程。我们先。
03:43
模糊我们具体的功能,从整体上来做布局和设计,然后呢,把整体的布局和设计做完之后,我们再从具体的功能入手,一个一个完成,你看生活中不都是这么干的吗?但是你要注意了,提出问题的时候可不能这样,因为如果问题不够准确的话,那么就无法定位原因,也就很难解决了。所以说必须要具体,而不能抽象,对吗?这个大家需要体会一下,这就是我们抽象的基本概念。
我来说两句