黑马程序员技术交流社区

标题: java代码自解析。*(新手阅读有帮助) [打印本页]

作者: 臧雪健    时间: 2011-7-27 18:21
标题: java代码自解析。*(新手阅读有帮助)
参数的传:
class A12{
        static A12 zz=new A12();
        static A12 h(){return zz;}
       
        private String a ="外部";
       
        void h1()  {new B12().han1();}
       
        class B12{
        void han1(){System.out.print("bbbbb");}
       
        B12(){System.out.print("1"+a); }
        void han2(){ System.out.print("haichu");}
        }
       
        public static void main(String [] args ){
        new A12().h1();  
        System.out.println();
        System.out.print(A12.h());        }}
作者: 匿名    时间: 2011-7-27 18:21
1.找到main方法,程序入口,开始执行
2.执行new A12().h1();
   2.1.由于创建了对象A12,执行A12的构造方法即:默认构造方法 A12();
   2.2.由创建的对象A12调用自身的方法h1();
   2.3.执行void h1()  {new B12().han1();}
         2.3.1. 创建B12对象,调用B12的构造方法即:B12(){System.out.print("1"+a); }
         2.3.2. B12的构造方法打印出"1"+a 由于a="外部",所以打印出  “1外部”
         2.3.3. 然后紧接着执行对象B12的方法void han1(){System.out.print("bbbbb");}
         2.3.4. 执行了han1()后,打印结果变成了  “1外部”+"bbbbb" = “1外部bbbbb"
3.接下来执行System.out.println();  换行
4.接下来执行System.out.print(A12.h());
   4.1. 直接由类名A12调用A12的方法h();
   4.2. 执行 static A12 h(){return zz;}  因为static A12 zz=new A12();所以打印出new A12();
   4.3. new A12()对象会直接打印该对象在创建过程中内存中的首地址。如A12@c17164




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