当前位置: 代码迷 >> Java Web开发 >> 个位看看为什么结果会是这样呢?
  详细解决方案

个位看看为什么结果会是这样呢?

热度:144   发布时间:2011-10-05 14:31:01.0
个位看看为什么结果会是这样呢?
程序代码:
/**
*@veision 2011-10-5 14:24:50
*
@author Heart
*/
class InnerClassTest {
        public static void main(String[] args) {
                Outer outer = new Outer();
                outer.test();
        }
}
class Outer {
        private int i = 10;
        private int y = 8;

        Outer() {
                System.out.println("调用Outer构造方法:outer");
        }

        public void sayMsg() {
                System.out.println("Outer class!");
        }

        class Inner {
                int i = 1000;

                Inner() {
                        System.out.println("调用Inner构造方法:inner");
                }

                void innerMsg() {
                        System.out.println(">>>>>Inner class!");
                        sayMsg();
                        //访问内部类自己的成员i,也可以写成 this.i++
                        this.i++;
                        //访问外部类的成员 i和y
                        Outer.this.i++;
                        y--;
                }

                int getI() {
                        return i;
                }
        }

        public void test() {
                Inner in = new Inner();
                in.innerMsg();
        }

        public int getI() {
                return i;
        }

        public void setI(int i) {
                this.i = i;
        }
}
结果:
    调用Outer构造方法:outer
    调用Inner构造方法:inner
    >>>>>Inner class!
    Outer class!
----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽
2011-10-05 07:18:34
xmlz

等 级:蜘蛛侠
威 望:5
帖 子:293
专家分:1392
注 册:2010-8-29
3
  得分:0 
Outer outer = new Outer();    //调用Outer的构造函数,输出调用Outer构造方法:outer
outer.test();
―― public void test() {
                Inner in = new Inner();              //调用Outer的构造函数,输出: 调用Inner构造方法:inner
                in.innerMsg();                       
        }

―― void innerMsg() {
      System.out.println(">>>>>Inner class!");       //输出:    >>>>>Inner class!
      sayMsg();                                    

――public void sayMsg() {
                System.out.println("Outer class!");  //输出:    Outer class!
        }
----------------解决方案--------------------------------------------------------
就是这样啊
----------------解决方案--------------------------------------------------------
  相关解决方案