返回本章节

返回作业目录


需求说明:

完善控制台版五子棋,判断用户所下棋子的位置,是否已经存在棋子,如果已经存在,则抛出用户自定义异常,提示用户该位置已经有棋子。

实现思路:

创建用户自定义异常类GoBangException,该类继承自Exception父类,在该类定义一个无参的构造器和一个String类型形参的构造器,在该构造器调用父类有参构造器,并将该构造器中的String类型参数,传递给父类构造器。

在GoBang类中创建验证棋盘(x,y)处是否存在棋子的方法check(int x,int y),如何存在则抛出异常GoBangException对象。

在下棋方法playChess(int x,int y)中首先调用check(int x,int y),然后再进行正常的下棋。

实现代码:

public class GoBangException extends Exception { //自定义异常
public GoBangException(){ }
public GoBangException(String message){
super(message); //调用父类有参构造器
}
}
private void check(int x,int y) throws GoBangException{ //验证棋盘(x,y)处是否已有棋子
if(board[x][y].equals("▇")){
throw new GoBangException("对不起该坐标["+x+"]["+y+"]已经有棋子");
}
}
public void playChess(int x,int y) throws ArrayIndexOutOfBoundsException{ //下棋
check(int x,int y) ; //验证棋盘(x,y)处是否已有棋子
board[x][y]="▇";
showBoard();
}
public static void main(String[] args) {

try{ playChess(x, y); }
catch(ArrayIndexOutOfBoundsException e){ System.out.println("所放棋子横纵坐标的范围在0~9"); }
}

编写Java程序,编写自定义异常类封装将棋子落在格子中已有棋子的异常的更多相关文章

  1. 设计一个 Java 程序,自定义异常类,从命令行(键盘)输入一个字符串,如果该字符串值为“XYZ”。。。

    设计一个 Java 程序,自定义异常类,从命令行(键盘)输入一个字符串,如果该字符串值为“XYZ”,则抛出一个异常信息“This is a XYZ”,如果从命令行输入 ABC,则没有抛出异常.(只有 ...

  2. 编写Java程序,观察类启动时静态代码块和main()的执行顺序

    返回本章节 返回作业目录 需求说明: 观察类启动时静态代码块和main()的执行顺序 在Book类中定义静态代码块. 在Book中分别定义一个普通实例方法和静态方法. 在Book类的静态代码块中调用静 ...

  3. 初学编写JAVA程序

    一.编写JAVA程序 编写JAVA程序,输出一行文本信息:“Hello world”,选择编辑器eclipse,打开之后编写程序 public class Hello{ public static v ...

  4. 35.按要求编写Java程序: (1)编写一个接口:InterfaceA,只含有一个方法int method(int n); (2)编写一个类:ClassA来实现接口InterfaceA,实现int method(int n)接口方 法时,要求计算1到n的和; (3)编写另一个类:ClassB来实现接口InterfaceA,实现int method(int n)接口 方法时,要求计算n的阶乘(n

      35.按要求编写Java程序: (1)编写一个接口:InterfaceA,只含有一个方法int method(int n): (2)编写一个类:ClassA来实现接口InterfaceA,实现in ...

  5. Java初学者作业——编写 Java 程序,定义 Employee 类以及 HR 类,实现 HR 为 Employee 加薪的功能。

    返回本章节 返回作业目录 需求说明: 编写 Java 程序,定义 Employee 类以及 HR 类,实现 HR 为 Employee 加薪的功能. 实现思路: 定义 Employee 类,并定义属性 ...

  6. Java初学者作业——编写 Java 程序,定义 Java 类 (Point) 用来表示坐标,坐标范围在(0,0)到(100,100)以内,并显示合法的坐标在控制台。

    返回本章节 返回作业目录 需求说明: 编写 Java 程序,定义 Java 类 Point 用来表示坐标,坐标范围在(0,0)到(100,100)以内,并显示合法的坐标在控制台. 实现思路: 定义 P ...

  7. Java初学者作业——编写 Java 程序,用户输入 3 个操作数,分别求出最大值、最小值和平均值。

    返回本章节 返回作业目录 需求说明: 编写 Java 程序,用户输入 3 个操作数,分别求出最大值.最小值和平均值. 实现思路: 定义 Java 类,定义 3 个方法,用来求 3 个数字的最大值.最小 ...

  8. 编写Java程序,用户在网上购买商品(good),当用户买了一本书(book)、一顶帽子(hat)或者买了一双鞋子(shoe),卖家就会通过物流将商品邮寄给用户,使用简单工厂模式模拟这一过程。

    查看本章节 查看作业目录 需求说明: 编写Java程序,用户在网上购买商品(good),当用户买了一本书(book).一顶帽子(hat)或者买了一双鞋子(shoe),卖家就会通过物流将商品邮寄给用户, ...

  9. Java初学者作业——使用记事本编写Java程序

    返回本章节 返回作业目录 需求说明: 使用记事本编写 Java 程序,输出"大家好!我的梦想是做一名 Java 高级工程师!". 为 Java 程序添加单行和多行注释以及文档注释. ...

随机推荐

  1. Linux网络管理(一)之配置主机名与域名

    Linux网络管理(一)之配置主机名与域名参考自:[1]修改主机名(/etc/hostname和/etc/hosts区别) https://blog.csdn.net/shmily_lsl/artic ...

  2. Kotlin 学习(2)

    属性和字段 1.声明属性 Kotlin中可以使用var关键字声明可变属性,或者用val关键字声明只读属性,属性的类型在后面,变量名在前面,中间加冒号和空格. public class Address ...

  3. mysql报错max_connections错误

    SELECT @@MAX_CONNECTIONS AS 'Max Connections';set GLOBAL max_connections=10000; show status like '%t ...

  4. 银联acp手机支付总结

    总结: 1.手机调用后台服务端接口,获取银联返回的流水号tn 银联支付是请求后台,后台向银联下单,返回交易流水号,然后返回给用户,用户通过这个交易流水号,向银联发送请求,获取订单信息,然后再填写银行卡 ...

  5. ping (网络诊断工具)

    Ping是Windows.Unix和Lnix系统下的一个命令,ping也属于一个通信协议,是TCP/IP协议的一部分,利用Ping命令可以检查网络是否连通,可以很好地帮助我们分析和判定网络故障.应用格 ...

  6. System.exit(-1)和return 的区别

    对于只有一个单一方法的类或者系统来说是一样的,但是对于含有多个类和方法,且调用关系比较复杂时就不一样了. System.exit(-1)是指所有程序(方法,类等)停止,系统停止运行. return只是 ...

  7. 使用IDEA整合spring4+spring mvc+hibernate

    配置文件 spring-mvc.xml 1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans x ...

  8. [BUUCTF]REVERSE——Youngter-drive

    Youngter-drive 附件 步骤: 例行查壳儿,32位程序,upx壳儿 利用网上找的upx脱壳儿工具脱完壳扔进ida,首先检索程序里的字符串,发现了有关flag的字样,跟进,当source=T ...

  9. CF1064A Make a triangle! 题解

    Content 有三条长度分别为 \(a,b,c\) 的线段.你可以在一个单位时间内将一条线段的长度增加 \(1\),试求出能使这三条线段组成一个三角形的最短时间. 数据范围:\(1\leqslant ...

  10. 深度解析HashMap

    讲讲HashMap? 源码解析 final V putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict) { //辅助 ...