分析解释运行结果中的line2,line4,line6,line7是如何得到的
/*
* constructor, static
*/
class Box {
double width;
double height;
double depth;
// public static int number;
// public final static int number;
public static int instanceNumber=0;
// public final int instanceNumber;
public final int number;
// public int instanceNumber;
// This is the constructor for Box.
Box() {
System.out.println("Constructing Box");
width = 10;
height = 10;
depth = 10;
number = 1;
// number++;
instanceNumber++;
System.out.println("The instanceNumber =" + instanceNumber);
}
// compute and return volume
double volume() {
return width * height * depth;
}
}
class BoxDemo3 {
public static void main(String args[]) {
// declare, allocate and initialize Box objects
Box mybox1 = new Box();
Box mybox2 = new Box();
double vol;
// get volume of the first box
vol = mybox1.volume();
System.out.println("Volume is " + vol);
// get volume of the second box
// vol = mybox2.volume();
// System.out.println("Volume is " + vol);
System.out.println("The number of Box objects is: " + mybox1.number);
System.out.println("The number of Box objects is: " + mybox2.number);
// System.out.println("The number of Box objects is: " + mybox1.number);
// System.out.println("The number of Box objects is: " + mybox1.instanceNumber);
// System.out.println("The number of Box objects is: " + mybox2.instanceNumber);
}
}
在代码的第11行,我们发现instanceNumber初始值被定义为0:
public static int instanceNumber=0;
在代码的第24行,我们发现Box每被调用一次,instanceNumber就会+1:
instanceNumber++;
System.out.println("The instanceNumber =" + instanceNumber);
而在代码的第37、38行,我们发现Box被以mybox1和2的形式调用了两次:
Box mybox1 = new Box();
Box mybox2 = new Box();
所以在结果的line2,line4会依次打印输出:
The instanceNumber =1
The instanceNumber =2
在代码的第51、52行写有:
System.out.println("The number of Box objects is: " + mybox1.number);
System.out.println("The number of Box objects is: " + mybox2.number);
从第37、38行我们可以看到mybox1和2是新定义的Box
Box mybox1 = new Box();
Box mybox2 = new Box();
而在代码的第13、22行,我们发现Box中的number的值恒等于1
public final int number;
number = 1;
所以结果的line6和line7显示为
The number of Box objects is: 1
The number of Box objects is: 1