class Demo2 {
public static void main(String[] args) {
//1.其他类如何去访问这个内部类?
// 1.在外部类,提供一个方法,里面实例化一个内部类对象
//调用内部类的方法
Outer outer=new Outer();
outer.InnerPrint();
// 2. 外部类名.内部类名 变量名=外部对象.内部对象;
//Outer.Inner inner=new Outer().new Inner();
//inner.print();
//内部类的好处:可以直接访问外部类的所有成员!
//应用场景:如果我们在描述一个事物a时,发现在事物a中还存在一个事物B,而事物B
//还需用到事物a的属性等东西,这时,我们就可以考虑使用内部类
//1.如果外部类与内部类存在相同名字的成员变量时,内部类中默认使用是内部类中的成员变量
//可以通过 外部类名.this.变量名来访问外部类的成员变量
//2.如果内部类用private修饰的话,那其他类想访问内部类只通过外部类提供一个方法访创建内部类对象去访问了,其他类不能创建其对象了
//成员内部类里面成员一旦使用static 那么成员内部类也要static
//成员内部类如果是static ,则其他类的访问格式:
//外部类名.内部类名 变量名=new 外部类名.内部类名
}
}
class Outer {
int x=10;
//成员内部类
private class Inner {
int x=5;
public void print(){
System.out.println("这是inner类的print方法"+x);
}
}
//调用inner的print()
public void InnerPrint(){
Inner inner=new Inner();
inner.print();
}
} |
|