00:00
这个关于面向对象呢,咱们还差最后一个知识点,就是关于这个内部类的一个使用,从这个三条主线上来讲呢,这又回到第一条主线了,呃,最后一条主线,第二条主线其实都已经完结了,第一条主线呢,我们关于类和类的内部的成员还差一个叫内部类,从它这个放到位置上你也知道不大重要嘛,就最后一个出来的,当然最后一个出来的有可能还是压轴的是吧?啊,当然这块呢就不是了,它重要的肯定往前赶,这个内部类的话呢,放到最后一个呢,它的重要性呢,就要差一些,从实际的我们开发的场景上来看的话呢,咱们自己开发的时候,其实也比较少会去写内部类。哎,但是呢,我们要是看些源码的时候呢,是可能出现内部类的,这时候你得知道呢,它是什么样的情况,哎,就是怎么调的这个得了解,所以呢,我们把这个内部类的呢,也专门呢给大家去讲一下,毕竟呢,人家也是类的一个成员啊,那这块呢,写的说当一个事物的内部呢,有一部分呢,呃,还有一个还有一个部分呢,需要一个完整的结构呢,进行描述的时候,而这个内部的完整的结构又只为外部的事物呢提供服务,那么整个内部的这个完整结构呢,最好呢,就是使用内部类,稍微有点绕口,就比如说呢,咱们有一个类呢,叫做person类,这个person类呢,里边比如说你这个name啊,Age啊,他们就用这个基本的这个变量去生明就可以了,那我用不着呢,里边再去定义所谓的这个内部类,但是呢,如果说还有另外的一个结构,这个结构呢,用一个简单的变量来衡量的话呢,差点意思,那这呢,比如说这个,呃,举个例子啊,比如说大脑。
01:39
大脑,哎,这个大脑的话呢,像原来的话呢,咱们在这里边声明一个变量,说叫个大脑,我在外边呢造个大脑,这时候呢,你这个大脑和我们这个person是两个并列的类,现在的话呢,说你这个大脑你放外边不太合适啊,我在外边我别的位置就不用大脑,对吧?啊,我这个大脑只是在你这个人里边用,那我这时候就不要去定在外边,但你定量里边的话呢,简单的用一个变量,比如这个死锥形的,呃,我的名字就叫大脑,又不足以去刻画我们这个大脑的完整结构,那此时的话呢,我们就得把这个类呢放在这里,就是把这个结构放里边,而且它得是一个类的方式去呈现的,这就叫做内部类,哎,就是类不类,首先呢,它是一个类了,它这个功能比较多,不是一个简单变量了,其次的话呢,就是这个类呢,它在外边呢,没必要在外边定义,因为只是你自己去用,所以我们就定义到里边了,诶那自然而然的话呢,我们把这个外边这个person呢,就叫做we部类,你的这个大脑呢,就是一个内部类,诶就是这样一个。
02:39
情况行其实比较好理解,那么具体的这里边这个知识点的话呢,其实大部分呢,都是咱们熟悉的了,因为你是个类,你是个成员,咱们都见过这么多结构了,它满足哪些点其实也都比较清晰,行这块呢,我们再去新建一个包,这个包的话呢,这个不是JAVA8了,这就写个二了。在其二的话呢,这个就跑到上面了。
03:02
跑到上面就跑到上面吧,这样啊,然后这里边呢,咱们来测试一下这个关于内部类的使用in the class的一个test。好,这呢是我们说的这叫类的的内部成员之几啊五最后一个内部类行,首先第一个概念呢,说我们,呃,或者说这个Java中。张二中呢说允许将一个将一个类,比如说类A说声明在另一个这个类B中。类B中啊,我们说则这个类A呢,就是叫内部类啊,它就是内部类,那自然而然的话呢,我们这个类B呢,就把它也称作叫外部类了,行外部类。
04:03
嗯,那这里呢,咱们主要关心的就是你这个类A了,叫类不类,它呢有哪些特点,首先呢,我们提到这个声明在这个类B当中,那你这个类壁中到底是放在哪了呢?这个位置又有很多,就好比是咱们说的一个变量一样。我把这个变量呢,直接就放在你这个类里边,方法外面,我们叫属性,你要放在这个方法里边呢,它叫局部变量,就是属性的话呢,有个区别,那其实我们这个内部类呢,确实也这样,那这个内部类的话呢,我们首先呢做一个分类,分类就跟咱们说的一个属性呢有点像了,属性呢咱们分为叫属性或者是呃,不是属性的分类了,这个变量的分类分成属性呢和局无变量,属性呢也叫做成为变量。那这个内部类的话呢,我们也自然而然的呢,就给它区分为呢,叫成员内部类。对,然后呢,VS一个叫局部内部类。
05:05
内部类那其实也很好理解,成员内部类呢,就是直接定义在你这个类里边的分化外的,构造器外的,代码块外的这些,然后局部内部类呢,局部内部类呢,你就要细说,咱们讲局部变量方法内,构造器内,代码化内是不是都算叫局部的呀,这个也一样,那就是方法内,方法内代码块内这个构造器内这都算啊,这一说的话呢,我们就试着呢来写一写,比如这块呢,我就写一个person。写一个person,这个person的话呢,我们那就先说这个叫局部内部类吧,我这呢先写一个比如说public word,我就普通的就写了一个method,在这里边呢,我声明一个class,我就先没有具体含义了啊,就A这呢就叫做局部内部类。你看这种也没报错,就是允许的,这是一个,然后呢,我们生命在一个代码块内,Class一个BB啊,这也OK。
06:09
至于说呢,咱们什么时候用,为什么要用这个,咱们一会儿再说,先从格式上呢说一下,接着呢,我们去说明一个构造器,构造器里边。拉一个CC,这呢也是这呢,都是咱们说的叫局部内部类了,那相较于局部内部类呢,我们这儿呢,就还提到一个叫成员内部类。成员内部类,成员内部类呢,就直接在这呢,我就声明一个class了,嗯,这个我就呃稍微的形象一点了,其实呢,正常我们不能在这个人的体内定义一个狗是吧,就是形象点便于脾气啊,这写个狗,哎这呢就是相当一个叫成员类不类了,就这样啊,那这呢我就定义到这里边了,这叫成员内部类,咱们原来讲这个成员变量的时候提过这个成员内部类其实也可以,你这就算是你局部内部类分成好几个细节了,那成员变量咱们当时又说过可以分成什么呀,对,是不是就分成这个静态的和非静态的了,对,那这呢,咱们其实也可以自然而然的就区分为,比如这个狗呢,是一个静态的。
07:22
那这呢,我们还可以再去定一个克拉,这个再定一个鸟吧,哎这个呢,就是一个非静态的,静态成以内部类,非静态成以内部类,哎这呢就相当于咱们把这个嗯内部类呢,这样的几个结构,就是它的分类,具体的长什么样子,这块呢就整体的展现了一下。就是整体上分成这样的两大类,然后具体的话呢,又分成这样的一些部分。就是这样的情况。
我来说两句