内部类是Java的类的一种形式,它的使用方法比较奇怪,让一些开发人员无法正确的理解它。这里提供一个简单的Demo,帮助大家理解。
public class InnerClassDemo{
//静态内部类,不能访问静态成员变量和方法
//在外部类加载的时候,静态内部类也随之加载
//相对于外部类来说,几乎是独立的,可以在不依赖外部类对象的条件下单独创建一个内部类对象
static class Inner01{
//...
}
//成员内部类,可以访问静态成员变量和方法
//此时的内部类需要等外部类创建了对象以后才会被加载到JVM中,属于外部类的某个实例
class Inner02{
//...
}
//局部内部类,仅在定义它的方法中有效
//不能使用static关键字,只能使用abstract和final关键字
//只能访问外部类带有final关键字的局部变量
public void abc(){
class Inner03{
//...
}
}
//匿名内部类,局部内部类去掉名字,不会出现class关键字
public void cde(){
new OneInterface(){ //直接new一个接口
public void interMethod(){ //接口方法
//...
}
}
}
}