00:00
大家好,我是海波老师,我们继续来讲加我的访问权限,我们这里呢,来拷贝代码来复制,复制以后把它改成我们的18,然后呢,我们把这个去掉,去掉以后点击OK,然后呢,把里面的东西啊,咱们都去掉,把这个咱们也都去掉,把它去掉都可以了,然后呢,我们这里给他来。前面咱们讲到了Java的四种访问权限,其中属性和方法呀,都可以使用这四种访问权限来进行访问,那么我们类可不可以也这么修饰呢?比方说我这里写上一个。大家会发现它就报错了,鼠标放上去,它会提示你这是不允许使用在这里的,为什么呢?这里给大家解释一下,因为我们Java中。它不允许外部类使用修饰。那么这里啊,就提到了一个概念,什么概念呢?我们叫做外部类。那什么叫做外部类呢?我们说一下,所谓的外部类,它就是在源码中直接声明的类,我们把这样的类呢,就称之为叫做外部类,那好,那有外部类的话,就应该对应另外一个概念叫内部类,那什么叫做内部类呢?我先把它改回去,我改成public类啊,放到这类,那么所谓的内部类,它就是类中声明的类,我们就称之为叫内部类,也就意味着我在里面其实可以再创建个类,这个咱们一会儿再说,我们刚才说过了,我们Java是不允许外部类使用的,不光是不能用,你这改成我们的protected其实也不能用,所以啊,我们只能用默认的和我们公共的两个。
01:34
所以我们在外部类当中只能用两个访问权限,一个叫做public,一个叫做什么都不写,所以我这里写上逗号,我们叫做protected,我们这里都没有办法使用啊,诶老师啊,那你现在提到了我们的内部类的话,那咱们怎么声明呢?这里给大家去说一下,我这里写上它,我们写一个class,然后呢,写上一个叫inner class,诶这个就是我们所谓的内部类呀。
02:00
类里面有类不就这么简单吗?哎,老师我不明白,类里面有类,你想干嘛呀?跟大家讲一下,有的时候呢,我们在我类的内部,为了实现一些特殊的处理呢,把我内部的数据呢,给我封装成一个类,这是完全可行的,对吧?这就好比一个房子里面有个小房子一样,对不对,就这种感觉,所以啊,这个是没有任何问题的,可是那我怎么去用它呢?很简单,我们的内部类就当成记住内部类。就当成外部类的属属性使用即可。也就意味着它就是我们的一个属性啊,那如果把它当成属性的话,那么你四种访问权限不就都能用了吗?比方说我们的pro来拷贝,拷贝以后你放到这里,这个没有问题啊,同样道理,你加上一个我们的protected也没有任何的问题,你什么都不写当然也可以了,同样道理,你再写个public完全一样啊,同学们,所以内部类啊,就把它当成一个外部类的一个属性,就是这么回事儿,诶老师呀,这个倒是好理解,为什么呢?因为只要单属性的话,它四个访问权限就都能用了,可是。
03:08
这个类我怎么创建呢?对不对,同学们,这个是我们需要告诉大家的,所以呢,为了给大家演示呢,我们把这个拿出来,拿出来以后我写上一个叫class,我叫做al class叫外部类,然后呢,我在里面我写上一个叫内部类,那所以呢,咱们这里说一下,因为。我们的内部类可以看作我们外部类的属性。所以那么需要构建。外部类对象才可以使用。我们这里需要注意一下啊,就是我们当前的这个inner class,它是我们out class的一个内部的一个类,那我得把这个对象我得构建出来,诶老师呀,咱们前面讲过一个静态的语法,那我这儿能不能加静态呢?我告诉大家是可以的,为什么?因为如果你加静态的话,我们不说过吗?我们就叫静态属性吗?那么这个就叫静态内部类了。
04:01
哎,所以啊,这个就好理解了,对吧,你就把它当成一个静态属性去用就行了,这个我们就不强调了,所以把这个我们去掉,去掉以后我们就来说一下我们这个内部类的基本使用方式,它的基本使用方式,首先第一个它需要把外部的类呢,它要创建出来,所以我这里写上它,我们叫做al class。然后呢,写上一个al,然后它等于new,咱们叫al class,我们这么写就可以了,诶好了,那么你写完了以后,同学们接下来就比较特殊了,什么特殊呢?我创建内部类的方式该怎么做。大家看我得这么写,咱们叫aler点,我们以前访问属性的时候,是不是对象点属性啊,只不过这个属性现在是一个累了吧,我得创建它的对象对不对?所以你直接写上一个new,叫做inner class,你得这么写。你写完了以后回来,回来以后大家有没有发现我们当前内部类的类型变成了这个类型叫auto class.inner class,这个呢?大家能不能明白,就是说我们外部类当中的内部类的一个类型,所以啊,基本的使用方式就是它了,你有了它以后就当成普通类来用就完事了,里面该用什么方法,你用什么方法,里面有什么方法,你用什么方法,有什么属性,你用什么属性就可以了,别的你什么都不用管,诶这就是我们所谓的内部类和外部类了啊。
05:23
好了,同学们,内部类啊,咱们就简单介绍到这里就可以了。
我来说两句