黑马程序员技术交流社区

标题: 求解题思路啊.... [打印本页]

作者: runner    时间: 2016-5-11 22:33
标题: 求解题思路啊....
使用已知的变量,在控制台输出30,20,10。
               
                class Outer {
                        public int num = 10;
                        class Inner {
                                public int num = 20;
                                public void show() {
                                        int num = 30;
                                        System.out.println(?);     //num
                                        System.out.println(??);    //this.num
                                        System.out.println(???);   //Outer.this.num
                                }
                        }
                }
                class InnerClassTest {
                        public static void main(String[] args) {
                                Outer.Inner oi = new Outer().new Inner();
                                oi.show();
                        }        
                }
作者: xiaogui    时间: 2016-5-11 23:02
创建内部类对象,调用show方法,分别打印内部类方法局部变量30,内部类成员变量20,外部类成员变量10,谢谢。
作者: ︶夜戏乀梦红尘    时间: 2016-5-11 23:03
   首先应该看一下要输出的几个值是什么变量,30是内部类的show()方法中的局部变量,根据就近原则,第一个输出语句中直接用num就会输出30,20是内部类的成员变量,在类中访问成员变量用this.变量就可以了,所以第二个输出语句中用this.num就会输出20,难一点的是输出10,外部类和内部类不是继承关系,不可以用super访问,在内部类中想访问外部类的成员变量可以用  外部类名.this.变量名,所有用 Outer.this.num就会输出10了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2