15.Java内部类,匿名类学习
文章目录
1.什么是内部类?
1.1 内部类的定义
《JAVA programming》里这样定义的:
内部类(又叫嵌入类),是一种在其他类的内部定义的类。
如下所示:
public class ShowInnerClass {
private int data;
public void methodOne(){
}
/**
* InnerClass是ShowInnerClass的内部类
*/
class InnerClass{
public void method(){
data++;
methodOne();
}
}
}
InnerClass类在ShowInnerClass类的内部定义,所以InnerClass是ShowInnerClass的内部类。
1.2 内部类的特性
内部类作为定义在类中的类,有着其一定的特殊性。
内部类有下列特性:
1.2.1 内部类有外部变量的直接访问权
内部类可以引用包含在它的外部类中的数据和方法,所以不必把外部类的引用传递给内部类的构造方法,基于这个原因,内部类可以使程序简单明了。
如下面所示,内部类InnerClass可以直接访问外部类的私有变量和方法。
public class ShowInnerClass {
private int data;
private int num;
private void methodOne(){
}
/**
* InnerClass是ShowInnerClass的内部类
*/
class InnerClass{
public void method(){
data++;
methodOne();
}
}
}
1.2.2 内部类的编译文件
内部类只是用来支撑外部类的工作。编译后,他的名称形如“外部类名称 内部类名称 . c l a s s ”。例如, s h o w I n n e r C l a s s 中内部类 I