成员内部类面试题

  • 要求:使用已知的变量,在控制台输出30,20,10。

题目代码
class Outer {
public int num = 10;
class Inner {
public int num = 20;
public void show() {
int num = 30;
System.out.println(?);
System.out.println(??);
System.out.println(???);
}
}
}
class InnerClassTest {
public static void main(String[] args) {
Outer.Inner oi = new Outer().new Inner();
oi.show();
}
}

运行

 class Outer {
    	public int num = 10;
    	class Inner {
    		public int num = 20;
    		public void show() {
    			int num = 30;
    			System.out.println(30);	//就近原则
    			System.out.println(this.num);	//内部类成员调用
    			System.out.println(Outer.this.num);	//不可以用super,Inner不是子类,用Outer.this.num,限定了就是外部类
    		}
    	}
    }
    class InnerClassTest {
    	public static void main(String[] args) {
    		Outer.Inner oi = new Outer().new Inner();
    		oi.show();
    	}	
    }
    结果
    30
    20
    10
发布了55 篇原创文章 · 获赞 5 · 访问量 4182

猜你喜欢

转载自blog.csdn.net/qq_43654669/article/details/95233750