我已经玩了这段代码了一段时间,它让我感到困惑,为什么这个方法调用似乎返回一个数字虽然它最初没有设置为0
public class MainProg {
public static void main(String[] args) {
FixedCapacitySizeOfStrings s = new FixedCapacitySizeOfStrings(3);
System.out.println("(" + s.size() + " left on stack)");
}
}
Run Code Online (Sandbox Code Playgroud)
这是API代码
public class FixedCapacitySizeOfStrings {
private String[] a;
private int N;
public FixedCapacitySizeOfStrings(int cap) {
a = new String[cap];
}
public boolean isEmpty() {
return N == 0;
}
public int size() {
return N; //why is this line doing the right thing?? N was never initialized to 0
}
public void push(String item) {
a[N++] = item;
}
public String pop() {
return a[--N];
}
}
Run Code Online (Sandbox Code Playgroud)
原始实例变量默认初始化为0.这包括int,long,double,float,short,byte和char.(并且所有非原始实例变量都被初始化为null)
请注意,它仅与实例变量(字段)有关 - 未初始化局部变量.
| 归档时间: |
|
| 查看次数: |
122 次 |
| 最近记录: |