//用数组去模拟简单的压栈和出栈动作
public class MyStack01 {
private Object[] stack;
private int index=-1;
public MyStack01() {
this.stack = new Object[10];
}
public Object[] getStack() {
return stack;
}
public void setStack(Object[] stack) {
this.stack = stack;
}
public int getIndex() {
return index;
}
public void setIndex(int index) {
this.index = index;
}
public void push(Object obj) {
//当内存满时
if (index >= stack.length-1) {
System.out.println("内存已满,压栈失败");
return;
}
index ++;
stack[index] = obj;
System.out.println("压栈成功"+obj+"指针指向"+index);
}
public void pop() {
//栈内空时
if (index < 0) {
System.out.println("栈内已空");
}else {
System.out.println("弹栈元素成功"+stack[index]);
index--;
if (index == -1) {
return;
}
System.out.println("现栈帧指向"+index);
}
}
public static void main(String[] args) {
MyStack01 myStack01 = new MyStack01();
//每调用一个元素就压栈一次
myStack01.push(new Object());
myStack01.push(new Object());
myStack01.push(new Object());
myStack01.push(new Object());
//每调用一个一次pop方法就弹栈一次
myStack01.pop();
myStack01.pop();
myStack01.pop();
myStack01.pop();
myStack01.pop();
}
}