00:00
大家好,我是海波老师,前面讲了访问权限,为了让大家加深印象啊,我们这里要给大家问几个问题,让大家想一想啊,我们来拷贝,拷贝以后呢,我们写上一个下划线一啊,然后点击OK,然后呢,把里面的东西啊,咱们全都给它删掉啊,来去掉。去掉以后,把下面这些东西我们也都给它删掉,那么这里呢,我们都删掉就可以了,好把这个地方改成一个下划线一,那么我们改完之后啊,我这里添加一个类,我们叫class,我这里叫17。我写完以后呢,同学们,我们创建一个person时期的对象,我们写成它叫做person,等于new person好了,那现在问同学们一个问题了啊,我们的这个portion对象现在有没有方法呢?对吧?我现在里面没有写方法,那么它能不能用方法呢?如果大家能够想到以前学过的知识点的话,应该知道它是有方法的。为什么在Java当中,我们任何一个类它都会有负类,我们叫做object,对不对,叫做Java点点object,那么现在我们就来看一眼,来找一下,我们叫Java点点object,我们来找一下就是它,那这里呢,我们就找到了它点开,点开以后大家可以发现我们现在这个类就是我们Java点浪包里的object这个类,我们Java中所有的类都应该去继承它。
01:19
咱们左边呢,有一个标签,我们叫结构打开,打开以后你会发现在咱们当前的这个类当中会有很多的方法,这个方法当中啊,会有一些小图标,这个小图标当中会有一个绿色的小锁头,还有一个呢,带了钥匙的是吧,这么一个方法,那么这个表什么意思呢?这个绿色的小锁头啊,就代表的是公共的意思,而我们这个带了钥匙的这个方法呢,就叫protected叫受保护的。其实啊,公共的方法比较简单,你在哪都能用嘛,比方说我们的这个什么哈希code呀,Equals呀,什么什么get呀,这个咱们都能用,但是呢,我就想知道这个克隆方法我能不能用呢?所以啊,咱们把这个拿过来,我写上一个person,我们点一下我们的克隆方法,你写完以后,你会发现你这是不能用的,诶老师,怎么不能用呢?我们鼠标放上去以后,大家会发现我们的idea就提示你了,你当前的克隆方法,它是受我们object保护的方法,你是不能用的,诶老师呀。
02:18
你不说了吗?咱们的object是所有类的负类,那负类就应该保护咱们的孩子呀,那所以这个方法应该能让他用啊,怎么我们在当前的处理当中,我们这里不能用呢?我们的原因在哪?同学们,这就是我们权限需要考虑的问题,诶那说到这儿了,咱们就得回顾一下了,咱们之前不说了吗?有一个叫pro对吧?有一个是什么都不写,咱们叫default吧,还有一个我们就叫做protected,对不对?还有一个我们叫做public,把这个去掉,咱们叫public,好,那么咱们的private呢,我们叫私有的对吧?我们的default呢,就是什么都不允许写,我们叫做包路径访问权限,而我的protected叫受保护的权限,我们的public叫公共的权限,它只能自己能用,所以呢,它称之为叫同类,对吧?
03:06
而我这个default呢,我们叫做同类。我们叫同胞,还有一个呢,我们叫路径对吧?好,那么接下来呢,我们写上它,咱们这个同类同胞啊,还有一个叫做什么呢?叫做子类。那好了,下面这个就比较简单了,叫做公共的吧。好。行了,同学们,我把四种访问权限啊给大家列出来了,那咱们一个一个看,首先克隆方法呢,不是pro不用考虑它,我们的default呢,也不是,也不是公共的,就是我的protected,所以呢,首先我就要验证一下了,我们的portion时期跟我们当前的object它不是一个类,那肯定不能用嘛,所以同类不用考虑,那他俩是不是同包呢?那明显也不是嘛,咱们的这个object大家看一看,我们的object叫Java点浪吧,我们的这个叫CHAPTER04,肯定同胞也不对,那好,他们俩是不是父类呢?我们的person时期和这个Java点浪点object,他们俩是不是父子类,诶,他俩是父子类呀,那你父子类的话不就应该能够访问吗?哎,所以同学们,我们当前就好像有点不对了。
04:16
不太清楚这是咋回事啊,这里就得给大家解释一下了,我们当前的访问权限它到底指的是什么?现在我们就把访问权限我们再细化一下来,所谓的访问权限。它其实就是访问属性方法的权利和限制。这里就有一个细节需要我们考虑了,他说访问属性方法的权利和限制,谁访问访问谁的,所以啊,同学们,我们说一下叫做谁访问。对吧,第一个问题,第二个访问谁的。谁的方法,谁的属性你不知道谁访问你不知道,你怎么来控制它的权利和限制呢,对不对,所以啊,这个问题就很重要,首先谁访问,第二个访问谁的。
05:07
那好,我们自己说一下,我们的这个代码是不是在main方法当中去完成调用的同学们。没错吧,那就意味着我们谁访问呢?那是不是意味着我们这个类去访问它呀,因为我们是个静态方法嘛,那么肯定是这个类去访问闷方法,对不对?Main方法中去访问person对象的克隆方法没问题吧,所以谁访问有了,那么访问谁的这个克隆方法是谁提供的,那不就是我们PERSON17提供的吗?对不对,可是不对呀,同学们,为什么?因为PERSON17里面没有啊。它里面没有这个方法,他怎么可能提供这个方法呢?所以它的方法是谁的,是我们的Java点了。Their object。对吧,同学们是这样的,所以呢,谁访问是他,访问谁的是他,那他俩啥关系啊,他俩关系是不是同类,我们说他俩不是同类是不是同胞,他俩不是同胞是不是父子类,哎,他们俩是父子类呀,那为什么不能用呢?同学们这个问题就要给大家解释一下了。
06:12
大家想想吧,生活当中我问你父亲来保护孩子这个事儿对不对?肯定对吧,但是我就问你,别人的父亲来保护你这个行不行。或者说反过来你来保护别人家的孩子对不对呢?我相信如果是两个孩子的话,一个是你的,一个是别人的话,你是不是优先要保护自己的孩子呀,对不对?你的父母也会优先保护你吧,只有当你没有任何事情发生的时候,他才会去保护别人吧,不就这个道理吗?所以同学们做一件事情,我们所谓的保护他是自己的父亲保护自己的孩子,所以咱们回过头来看咱们之前的这个图,也就意味着我们当前的这个父类对象其实是有多个的,就意味着这个负利对象会保护他的孩子,这个负利对象会保护他的孩子,这个负利对象会保护他的孩子。
07:09
那么现在我们就要搞明白,我们的克隆方法是我们哪一个负类对象提供的,如果是这个负类对象提供的,大家看,我们来放过来,放过来以后这个负类对象提供了他,你让他来访问就不行吧,同学们想想这个问题,来,我们把这个呢放过来,你让他来访问这个方法。不行吧,为什么不行?因为这个方法是受保护的方法,他应该让他自己的孩子来访问,你就访问不了。哎,老师不对呀,他们的名字不都叫我们的object呀,对呀,他们的名字都叫object,但是对象可是不一样的呀,也就意味着我们的它,记住同学们,我们的这个类,它的负类对象跟我的person期的负类对象不是一回事,所以访问谁的访问的是PERSON17的负类呀,所以他的那个super啊。
08:03
同学们能不能明白,也就意味着我们的他提供了一个克隆方法,你现在想让他用,那肯定用不了啊,为什么?因为你是不是有自己的那个super。还有自己的那个java.long.object这个大家能不能明白,你的这个是你的负类对象,而这个负类对象是他的吧,那么他提供的克隆你肯定用不了吧,谁能用啊,在PORT17里面能用啊,所以我写上word叫test,然后在这里我写上一个克隆,诶你这是能用的,那么这能用的话,鼠标放上去,它发生的是其他的问题,跟我们当前无关,也就意味着你这里呢,给它加上一个我们的特殊的语法,这个就没问题了,这个语法呢,咱们后面会给大家讲,叫抛出异常,这个大家不用管它,就意味着在我自己的portion时七里面用它肯定没问题,但是你在这个里面去用就肯定不行,这个大家能不能明白啊,所以啊,我们这里呢,就把访问权限给大家演示了一下啊好了,这个小练习咱们就说到这里。
我来说两句