JavaSE初始练习一:数组代替栈的相关心得体会

* 编写程序,使用一维数组,模拟栈数据结构, *

要求:
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+"顺利出栈");
        }
    }
}``

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值