* 编写程序,使用一维数组,模拟栈数据结构, *
要求:
1、这个栈可以存储java中的任何引用类型的数据 *
2、在栈中提供push方法模拟压栈(栈满了,要有提示信息) *
3、在栈中提供pop方法模拟弹栈(栈空了,也要有提示信息) *
4、编写测试程序,new栈对象,调用push pop方法来模拟压栈弹栈的动作
-
养成属性封装成私有的好习惯
属性改为private。get、set方法都要写。IDEA可以自动生成
-
测试的地方单独写一个类来测试
-
默认初始化大小在构造方法里写成
-
定义数组可以private Object[ ] elements;可以不用赋值,直接创建出来对象,只不过默认是NULL
-
在构造方法中定义数组大小可以直接用this来做,
例如:this.elements = new Object[10];//这个是在构造方法中 private Object[ ] elements = = new Object[10]; //也可以,这个是定义实例变量时
-
方法要写在类里,不是测试类那个类,而是class A那个类里,定义的对象才能调用相应的方法
-
在方法的调用中使用this.实例变量,相当于你的那个对象的相应的实例变量,要习惯使用!!!
-
就算方法的返回类型是void,也可以使用“return;”来终止运行
-
输出一个引用类型变量的时候。系统会自动调用toString()方法
public class MyStackTest { //这里是测试用的代码,两个类放在同一文件下即可使用
public static void main(String[] args) {
MyStack temp = new MyStack();
temp.push(new Object());
temp.push(new Object());
temp.push(new Object());
temp.push(new Object());
temp.push(new Object());
temp.push(new Object());
temp.push(new Object());
temp.push(new Object());
temp.push(new Object());
temp.push(new Object());
temp.push(new Object());
temp.pop(new Object());
temp.pop(new Object());
temp.pop(new Object());
temp.pop(new Object());
}
}
public class MyStack { //这里是写关于class类里的对象的东西
private Object elements[] = new Object[10];
private int index = -1;
public MyStack() {
}
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 void push(Object obj){
if(this.index >= 9){
System.out.println("栈已满,压栈失败!!!!");
return;
}else {
this.index++;
this.elements[index] = obj;
System.out.println("此元素"+obj+"顺利进栈");
}
}
public void pop(Object obj){
if (this.index == -1){
System.out.println("栈空,出栈失败!!!!");
}else {
this.index--;
System.out.println("此元素"+obj+"顺利出栈");
}
}
}``