package MyStack;
public class MyStack {
Object[] objs;
int index=0;
//默认的Object{]数组长度为10;
//index为栈帧,index的数据表示当前栈中有多少个元素
//当index=objs.length-1的时候,表示栈中元素已满
//当index=0的时候,表示栈中元素为0个
//默认的栈空间为10个
public MyStack() {
Object[] objs = new Object[10];
}
//根据传入的int类型数据开辟栈空间
public MyStack(int x){
Object[] objs = new Object[x];
}
//压栈操作,每传入一个未知类型数据,index加1
public void push(Object objs){
//检验栈帧的值
if(index==10){
System.out.println("栈中的数据已满,请先弹栈再继续操作");
return;
}
//将传入的数据输入一维数组objs
this.objs[index] = objs;
index++;
}
//弹栈操作,将栈中的数据清除
public void pop(){
if(index==0){
System.out.println("栈中的数据已空!请输入数据后再弹栈!");
return;
}
this.objs[index] = null;
index -- ;
}
}
package MyStack;
public class Test {
public static void main(String[] args) {
MyStack myStack = new MyStack();
//myStack的一维数组还未创建?
System.out.println(myStack.objs);
//---------------------
System.out.println("=============");
myStack.objs = new Object[10];
System.out.println(myStack.objs.length);
for (int i = 0; i <myStack.objs.length ; i++) {
System.out.println(myStack.objs[i]+" "+i);
}
//弹栈操作
myStack.pop();
System.out.println("--------------------");
for (int i = 0; i < 10 ; i++) {
myStack.push("30.0");
System.out.println(myStack.index);
}
myStack.push("20");
}
}
在"MyStack"类中设定了无参传入的情况下,应该创建一个默认长度为10的一维数组,可是在测试的时候,却并没有创建默认一维数组呢?