内部类是在外部类中的类,Java有四种内部类:
其中除了,和正常类没有什么区别(可以创建各种成员)
1.成员内部类(可以访问外部类的成员)
public class outer{
public class inner{
//创建对象时需要先创建外部类对象
}
}
//创建方法
outer.inner in = new outer().new inner();
//访问该类的成员变量时,可以加this。
this.num;
//访问外部类的成员变量时,可以加类名this。
outer.this.num;
2.静态内部类(用static修饰的内部类)
public class outer{
public static class inner{
}
}
//创建对象的格式: 内部类.外部类 变量名 = new 内部类.外部类()
//在静态内部类中可以直接访问外部类的静态成员,但不能访问实例成员
3.局部内部类
4.匿名内部类(是一种特殊的局部内部类,无类名)
匿名内部类在创建对象时,会编译成一个子类,然后立即创建一个子类对象出来
public class outer{
animal top = new animal(){
@Override
void run() {
System.out.println();
}
};
insert under = new insert(){
@Override
public void jump() {
}
};
public class animal{
void run(){
};
}
interface insert{
void jump();
}
}