由于可以存储任意引用类型的对象,所以数组定义为Object
public class ArrayTest06 {
public static void main(String[] args) {
String s1="1234";
MyStack ms= new MyStack(new Object[4],-1);//初始化栈,可以存放四个对象
Object o=new Object();
ms.PopMyStack(o); //弹栈,栈空 打印:栈中无元素
ms.PushMyStack(s1); //第一次进栈
ms.PushMyStack("43321"); //第二次进栈
int i=ms.PushMyStack("Hello"); //第三次进栈
ms.PushMyStack(new Teacher()); //第四次进栈
ms.PushMyStack(new Student()); //第五次进栈失败 打印:栈满了!
ms.PopMyStack(o); //弹栈
System.out.println(i); // 打印:1
System.out.println(ms.getIndex()); //现在有三个元素 打印:2
System.out.println(ms.getElements()[ms.getIndex()]); //打印栈顶元素: Hello
System.out.println(o); //默认调用toString() 打印:对象的地址
}
}
class MyStack{
private Object[] elements;
private int index;
public MyStack() {
this.elements=new Object[10];
this.index=-1;
}
public MyStack(Object[] elements, int index) {
this.elements = elements;
this.index = index;
}
public Object[] getElements() {
return elements;
}
public void setElements(Object[] elements) {
this.elements = elements;
}
public int getIndex() {
return index;
}
public void setIndex(int index) {
this.index = index;
}
public int PushMyStack(Object o){
if(this.getElements().length==this.index+1) {
System.out.println("栈满了!");
return 0;
}
this.setIndex(this.getIndex()+1);
this.getElements()[this.getIndex()]=o;
return 1;
}
public int PopMyStack(Object o){
if(this.getIndex()==-1){
System.out.println("栈中无元素");
return 0;
}
o=this.getElements()[this.getIndex()];
this.setIndex(this.getIndex()-1);
return 1;
}
}
class Student{
}
class Teacher{
}