成员内部类的使用
成员内部类的三种访问方法
public class MemberInnerClass01 {
public static void main(String[] args) {
//外部其他类,使用成员内部类的三种方式
//第一种方式
Outer08 outer08 = new Outer08();
// outer08.new Inner08(); 相当于把 new Inner08()当做是 outer08 成员
Outer08.Inner08 inner08 = outer08.new Inner08();
inner08.say();
//第二种方式,其实就是第一种方式
Outer08.Inner08 inner08 = Outer08.new Inner08();
// 第三种方式 在外部类中,编写一个方法,返回 Inner08 对象
Outer08.Inner08 inner08Instance = outer08.getInner08Instance(); inner08Instance.say();
}
}
class Outer08 { //外部类
public class Inner08 {//成员内部类
private double sal = 99.8;
private int n1 = 66;
public void say() { //可以直接访问外部类的所有成员,包含私有的
//如果成员内部类的成员和外部类的成员重名,会遵守就近原则. 可以通过 外部类名.this.属性 来访问外部类的成员
System.out.println("n1 = " + n1 + " name = " + name + " 外部类的 n1=" + Outer08.this.n1); hi();
}
}
//方法,返回一个 Inner08 实例
public Inner08 getInner08Instance(){ return new Inner08(); }
//写方法
public void t1() { //使用成员内部类
//创建成员内部类的对象,然后使用相关的方法
Inner08 inner08 = new Inner08();
inner08.say();
System.out.println(inner08.sal);
}
}