在类的内部再定义一个类,则在定义的这个类称为内部类,在内部类中可以随意使用外部类的成员方法以及成员变量,尽管这些类成员被修饰为private。内部类的实例一定绑定在外部类的实例上,如果从外部类中初始化一个内部对象,那么内部类对象就会绑定在外部类对象上。内部类和外部类的初始化方式相同,都是使用new关键字。
public class OutClass{
innerClass in=new innerClass(); //在外部类实例化内部类对象引用
public void ouf();
}
class innerClass{
innerClass() { //内部类构造方法
}
public void inf(){ //内部类成员方法
}
int y=0; //定义内部类成员变量
}
public innerClass doit() { //外部类方法,返回值为外部类引用
//y=4,外部类方法不可以直接访问内部类成员变量
in.y=4;
return new innerClass(); //返回内部类引用
}
public static void main(String args[]){
OUtClass out=new OutClass();
//内部类的对象实例化操作必须在外部类或外部类的非静态方法中实现
OutClass.innerClass in=out.doit();
OutClass.innerClass in2=out.new.innerClass();
}
}
内部类可以使用外部类,外部类不能使用内部类。