直接上代码(《thinking in java》 197页的例题):package jxau.edu.cn;
class Bowl{
Bowl(int marker){
System.out.println("Bowl("+marker+")");
}
void f(int marker){
System.out.println("f("+marker+")");
}
}
class Table{
static Bowl b1=new Bowl(1);
Table(){
System.out.println("Table()");
b2.f(1);
}
void f2(int marker){
System.out.println("f2("+marker+")");
}
static Bowl b2=new Bowl(2);
}
class Cupboard{
Bowl b3=new Bowl(3);
static Bowl b4=new Bowl(4);
Cupboard(){
System.out.println("Cupboard()");
b4.f(2);
}
void f3(int marker){
System.out.println("f3("+marker+")");
}
static Bowl b5=new Bowl(5);
}
public class StaticTest {
public static void main(String args[]){
System.out.println("create a new Cupboard in main");
new Cupboard();
System.out.println("create a new Cupboard in main");
new Cupboard();
// Table t2=new Table();
// t2.f2(1);
//t3.f3(1);
}
}
我运行的结果是这样的:[color=darkred]create a new Cupboard in main
Bowl(4)
Bowl(5)
Bowl(3)
Cupboard()
f(2)
create a new Cupboard in main
Bowl(3)[/color] 与书上的结果很不一样,求大神给看看! [color=red][/color]