我目前正在研究堆栈,有一件事我不明白。我必须创建两个构造函数。我不明白的是,当我的程序已经堆叠了一些元素时,为什么我必须为我的第二个构造函数设置 -1 的 top?谢谢
public stack () {
Array = new Object [MAX_ELEMENTS];
top = -1;
}
public stack (int elements) {
Array = new Object [elements];
top = -1;
}
为什么我必须为我的第二个构造函数设置 -1 的顶部
通常,您不会这样做,但在这种情况下会这样做,因为有两个单独的构造函数不会相互调用。有几种更好的解决方案:
内联
top
初始化,而不是在构造函数中:int top = -1;
链接构造函数:
public stack () { this(MAX_ELEMENTS); } public stack (int elements) { Array = new Object [elements]; top = -1; }
双。
当我的程序已经堆叠了一些元素时?
不,它没有。它刚刚创建了一个您指定大小的数组。
除了另一个答案之外,您还可以使用实例初始值设定项:
{
top = -1;
}
无论构造函数用户是谁,都会调用它。