6-8 jmu-Java-06异常-ArrayIntegerStack异常改进版

作者 郑如滨

单位 集美大学

改造接口章节的ArrayIntegerStack,为其pop()push()peek()方法添加出错时抛出异常的功能。

ArrayIntegerStack类内部使用数组实现。创建时,可指定内部数组大小。

属性:

int capacity;//代表内部数组的大小
int top;//代表栈顶指针。栈空时,初始值为0。
Integer[] arrStack;//用于存放元素的数组

方法:

public Integer push(Integer item); //如果item为null,则不入栈直接返回null。如果栈满,抛出FullStackException(系统已有的异常类)。
public Integer pop();              //出栈。如果栈空,抛出EmptyStackException,否则返回
public Integer peek();            //获得栈顶元素。如果栈空,抛出EmptyStackException。

思考:

使用异常而不是通过返回null来提示用户程序出错有什么好处?

裁判测试程序:

class ArrayIntegerStack implements IntegerStack{
    private int capacity;
    private int top=0;
    private Integer[] arrStack;
    /*其他代码*/
    /*你的答案,即3个方法的代码*/
    
}
public Integer push(Integer item){
    if(item == null)
        return null;
    if(top >= capacity){
        throw new FullStackException();
    }
    arrStack[top++] = item;
    return item;
}
public Integer pop(){
    if(top == 0){
        throw new EmptyStackException();
    }
    return arrStack[--top];
}
public Integer peek(){
    if(top == 0){
        throw new EmptyStackException();
    }
    return arrStack[top - 1];
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值