JAVA内部类
内部类顾名思义就是类中类,即在一个类中定义了另一个类,内部类依赖于外部类而存在。
- 内部类仍让是一个独立的类,在编译之后内部类会被编译成独立的.class文件,但是内部类的名称为外部类名$内部类名。
- 内部类不能用普通的方式访问。内部类是外部类的一个成员,因此内部类可以自由地访问外部类的成员变量,无论是否为private的。
- 内部类声明成静态的,就不能随便访问外部类的成员变量,仍然是只能访问外部类的静态成员变量。
java内部类的分类:成员内部类、静态内部类、方法内部类、匿名内部类
成员内部类:
成员内部类(实例内部类)是指没有用 static 修饰的内部类,有的地方也称为非静态内部类。
public class Out {
class Inner {}
}
静态内部类:
静态内部类是指使用 static 修饰的内部类
public class Out {
static class Inner {}//静态内部类
方法内部类:
方法内部类(局部内部类)是指在一个方法中定义的内部类。
public class Test {
public void method(){
class Inner {}//局部内部类
}
}
匿名内部类
匿名内部类是指没有类名的内部类,必须在创建时是用 new 语句来声明类。
new <类或接口> () {
//...
}