java 内部类(inner class)详解

  • 时间:
  • 浏览:1
  • 来源:神彩大发快3_彩神大发快3官方

土依据内控 类定义在内控 类的土依据中,局部内控 类和成员内控 类基本一致,却说它们的作用域不同,土依据内控 类还能不能 了在该土依据中被使用,出了该土依据就会失效。 对于这一 类的使用主却说应用与解决复杂的现象,想创建另还有一个 类来辅助亲戚朋友的解决方案,到那时又不希望这一 类是公共可用的,却说就产生了局部内控 类。

正如2.3代码中display()土依据那样,在内控 类上端创建内控 类,就像创建普通对象一样直接创建:

真是亲戚朋友还还能不能 一步到位:

在Java中内控 类主要分为成员内控 类、土依据内控 类、匿名内控 类、静态内控 类。

静态内控 类还能不能 了能使用任何外围类的非static成员变量和土依据,而内控 类则都还能不能

一般使用匿名内控 类的场景是,要继承或实现的接口只另还有一个 抽象土依据,比如上加另还有一个 监听器:

真是上端2.2例子中亲戚朋友而且看完了如可创建内控 类。而且要创建另还有一个 内控 类对象,才能 利用outerClass.new来创建:

在上端例子中亲戚朋友还能不能 看完,内控 类还能不能 直接访问内控 类属性,尽管内控 类属性是用private修饰的。这是而且在创建内控 类时,内控 类会自动捕获另还有一个 内控 类的引用,却说内控 类访问内控 类元素,实际上是通过他所持有内控 类引用访问的。在java中,亲戚朋友还能不能 通过OuterClass.this来获得内控 类的引用,请看下面例子:

另还有一个 内控 类的例子

成员内控 类也是最普通的内控 类,它是内控 类的另还有一个 成员,却说他是还能不能 无限制的访问外围类的所有成员属性和土依据,尽管是private的,而且外围类要访问内控 类的成员属性和土依据则才能 通过内控 类实例来访问。

关键字static还能不能 修饰成员变量、土依据、代码块,真是它还还能不能 修饰内控 类,使用static修饰的内控 类亲戚朋友称之为静态内控 类。静态内控 类是是不是静态内控 类之间所处另还有一个 最大的区别,亲戚朋友知道非静态内控 类在编译完成之还会 隐含地保存着另还有一个 引用,该引用是指向创建它的外围内,而且静态内控 类却没人。没人这一 引用就是因为:

内控 类是另还有一个 编译时概念,编译后内控 类及其内控 类会生成另还有一个 独立的class文件: OuterClass.classOuterClass$InnerClass.class,我用javac编译器对上端的OuterClass进行编译:

内控 类创建土依据示例:

编译后的结果:

在成员内控 类中要注意两点:

匿名内控 类真是却说另还有一个 没人名字的土依据内控 类,却说它符合土依据内控 类的所有约束,初次之外,还有却说地方才能 注意: