黑马程序员技术交流社区
标题:
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