00:00
那我们在开发当中呢,怎么去使用局部内部类这个呢?我们就再新来一个代码来体会一下这个事儿。In class的一个TEST1。好,那我就拿这个类来说了,首先呢,我们说叫局部内部类,局部内部类的话呢,就我们那会儿也演示过,就是在一个方法中啊,构造器中啊,代码块中啊,我们去直接呢,里边声明一个内部类,像在构造器中这个代码块中这个用的都很少。那要用的话呢,其实也是这样子来用,所以把这个结构呢,我们粘过来。这样子来用,但是开发中呢,真要是这样去写呢,其实也非常少。开发中这个也很少见,那么开发当中什么样的这个局部内部类比较常见呢?其实这样的比较常见,就是我们这个方法呢,通常呢,它会有一个返回值类型。比如说我这举个例子,咱们呢,有一个接口呢,叫comparable接口。
01:00
这个呢,我就要get一个叫comparable。Comparable什么意思呢?就是我希望呢,你调这个方法的时候呢,你给我返回一个comparable这个是个接口了,那相当于你里边呢,是不是提供一下这个接口的一个实现类,同时呢,你帮我找个对象返回一下,哎,就这个意思,所以这个方法的作用呢,就是返回一个实现了comparable这个接口的类的对象,诶这个事儿呢,我们是有机会做到的,后边呢,可能会看到这样的情况,那在这里边呢,我们首先呢,你得去人家是接口了啊,我们得先得去这个创建一个,创建一个呢,叫实现了这个comparable。这个接口的一个类,那我们不妨呢,比如叫class,叫my comparable。让他呢,去这个叫comparable实现了这个接口了,然后接下来呢,我们接口中有出方法,这你得重写一下啊。
02:06
实现一下。切好辣椒,这不就是一个局部内部类吗?你看是吧,这是个局部内部类,行,那这个局部内部类呢,我们洗完以后还没完事呢,人家这个方法呢,这不让你得返回个对象嘛,所以我们直接在后边呢,我就return一个叫new,叫my comparable。诶这个题呢就搞定了,就是后边呢,我们可能会见到这样的情况,就是我调了一个方法,这个你这是个接口,接口呢里边呢,你给我造一个实现类,然后呢,你顺便呢,把这个对象呢就返回一下,当我们调这个方法的时候呢,它就是按照这个顺序从上往下执去执行了,就。为啥不把这类放,为什么不把这个类放到外面,因为呢,外边不用就里边用,就是我掉的方法,你就给我给一个就行,我不在外边去干涉,就跟说内部类的意思一样,内部类没有必要,我们跟那个外部类呢,是并列的一个结构了,哎,就这个意思,这呢是咱们写的一个,算是比较标准的一种方式了。
03:14
这算一个比较标准的方式,那咱们呢,是不是也讲过这个所谓的是不是匿名了。放这儿我就直接这样写的,我return一个new comparable小括号,这个显然不对嘛,人家是个接口对吧,我这个位置呢,整一个大括号回车一下,然后点一下。是不是也可以呀?这个跟方式一呢其实是类似的,只不过此时我们相当于是创建了一个实现这个接口的匿名实现类的匿名对象。你看接口这个时间类没有名,是不是这个对象也没名,对上边这个呢,相当于是创建了一个实现这个接口的有名的一个时间类的一个匿名对象吗。
04:10
就是刚才我说的这个词,大家其实也不用刻意的去记,你只要能看得懂这个代码,你能写就行,不用去记什么有名啊没名啊,这个这个这个不重要啊,行,就是我们后边要用的话呢,大家可能会见到诶这样的一些情况,行这呢,就是咱们说这个叫局部类不类的一个使用。这个我们在这写说啊,这个使用的剑。哎,这咱们可以这个。哎,这样扎va哎就砍它就行了,嗯,那关于这个内部类的话呢,总结一下,这个在咱们这个开发当中呢,整体来讲用的还是不多的,我们用的比较,或者这个建到比较多的情况呢,是我们看一些这个源码的时候呢,你会看到它内部呢,会定义一些这个结构,就是内部类的一个结构了,哎你就知道呢,它是这个,这个放在外边呢不合适,那只能放到这个里边了,比如说呢,咱们后边呢,看到一个叫thad。
05:15
Thread呢,就是我们讲多线程的时候呢,见到的一个类啊,那这个thread里边,它这边呢,这里边呢,就定义了一个专门的来表示咱们这个现场的一个状态的。哎,现成状态的,只不过这个呢,是一个枚举类了,后边会说,但这也是个类,这就是表示它现成的状态的就放在这里边了,咱们那天呢,讲的时候呢,是不是也说到一个叫integer,这个integer的话呢,咱们说它内部呢,是不是放了一个缓存的一个结构叫integer catch,这不也相当于它定了一个内部的一个类嘛,而且还是个静态的,是我这TE只要一加载这个呢,结构里边这个缓存区是不是就已经造好了,对,就是我们后边呢,就是看源码的时候呢,你见到人家使用内部类了啊,你能知道它什么意思,或者你知道呢?哦,还可以这样子去声明,咱们自己定义的时候呢,出现内部类的情况不多不多啊,就是这个呢,相对于对大家要求呢,并不高。
06:13
行。那这样的话呢,咱们把这个面向对象的这几章呢,就是结了,今天讲的重心呢,肯定还是抽象类和接口,那么关于抽象类接口中的这个设计模式,大家也是这个白天我讲的就先过掉啊,其实核心的内容呢,白天讲的很细的,晚上自己把它收缩一下,变得更薄一些啊。
我来说两句