1.成员内部类
public class class1{
private class class2{
//内部类可以调用外部类中任意方法或者 //成员变量
}
}
外部类不能直接使用内部类的成员变量或方法,需要实例化内部类对象引用。
在外部类中或非静态方法中实例化内部类对象:
new class2();
否则需要在new前提供一个外部类引用:
class1 outer=new class1();
class1.class2 inner=outer.new class2();
当局部变量、内部类成员变量、外部类成员变量同名,在内部类时
局部变量:变量名;
内部类隐藏变量:this.变量名;
外部类隐藏变量:class1.this.变量名。
在外部类则先实例化内部类对象引用: 引用.变量名。
2.局部内部类
public class class3{
fun1{
class class4{
}
}
}
内部类在fun1方法外不能被访问,但是内部类可以访问class3中的变量成员。
在fun1方法中实例化内部类对象。
3.匿名内部类
return new class5(){
};
4.静态内部类
网友评论