java 内部类(inner class)详解

  • 时间:
  • 浏览:1

匿名内控 类其实就说 一十个 那末名字的法律法律依据内控 类,什么都有它符合法律法律依据内控 类的所有约束,初次之外,还有其他地方要能要能 注意:

其实上端2.2例子中其他人就说 看到了如保创建内控 类。就说 要创建一十个 内控 类对象,要能要能 利用outerClass.new来创建:

其实其他人还要能一步到位:

法律法律依据内控 类定义在内控 类的法律法律依据中,局部内控 类和成员内控 类基本一致,就说 它们的作用域不同,法律法律依据内控 类要能要能 在该法律法律依据中被使用,出了该法律法律依据就会失效。 对于你其他类的使用主就说 应用与补救比较繁杂的问题图片图片,想创建一十个 类来辅助其他人的补救方案,到那时又不希望你其他类是公共可用的,什么都有就产生了局部内控 类。

在上端例子中其他人要能看到,内控 类要能直接访问内控 类属性,尽管内控 类属性是用private修饰的。这是也找不到创建内控 类时,内控 类会自动捕获一十个 内控 类的引用,什么都有内控 类访问内控 类元素,实际上是通过他所持有内控 类引用访问的。在java中,其他人要能通过OuterClass.this来获得内控 类的引用,请看下面例子:

一般使用匿名内控 类的场景是,要继承或实现的接口要能要能 一十个 抽象法律法律依据,比如打上去一十个 监听器:

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

编译后的结果:

一十个 内控 类的例子

关键字static要能修饰成员变量、法律法律依据、代码块,其实它还要能修饰内控 类,使用static修饰的内控 类其他人称之为静态内控 类。静态内控 类不是静态内控 类之间居于一十个 最大的区别,其他人知道非静态内控 类在编译完成事先 会隐含地保存着一十个 引用,该引用是指向创建它的外围内,就说 静态内控 类却那末。那末你其他引用就原因:

内控 类创建法律法律依据示例:

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

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

成员内控 类也是最普通的内控 类,它是内控 类的一十个 成员,什么都有他是要能无限制的访问外围类的所有成员属性和法律法律依据,尽管是private的,就说 外围类要访问内控 类的成员属性和法律法律依据则要能要能 通过内控 类实例来访问。

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

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