Java项目实例
一、项目目标
1.掌握如何捕获异常、声明异常、抛出异常;
2.掌握如何自定义异常;
3.掌握如何处理异常。
二、项目任务
虚拟银行取钱过程,如果取钱数大于余额时,则需要做异常处理。
例如取钱2000元,余额为1500元,就会出现设计好的异常处理信息。
如下所示:
InsufficientFundsException
The balance is 1500.0
The withdrawal was 2000.0
三、项目分析
1.项目完成思路
根据项目描述的项目功能需求,本项目需要有实体类银行,义务逻辑取钱,异常处理类等,具体可以按照以下过程实现:
(1)构造实体类——银行类(Bank),它有属性存款数,有构造方法,有方法取钱、存钱和显示余额。
(2)创建自定义异常类(InsufficientFundsException),它有属性银行对象和要取的钱,有构造方法,有显示错误信息的一个方法。
(3)创建前端调用类(ExceptionDemo),创建银行对象,对初始存款数及需要取款数赋值,看看如果取款数大于存款数会出现什么样的结果。
2.需要解决的问题
(1)如何构造银行类(Bank)?怎样定义属性存款数?怎样定义构造方法?怎样定义取钱、存钱和显示余额的方法?
(2)如何创建自定义异常类(InsufficientFundsException)?怎样定义属性银行对象和要取的钱?怎样定义构造方法?怎样创建显示错误信息的一个方法?
(3)如何创建前端调用类(ExceptionDemo)?对于不同的赋值,都会有怎样不同的结果?
参考代码如下:
package text;
import java.util.Scanner;
public class mode_bank {
public static void main(String[] args) {
Bank b = new Bank(1500.0f);
float to_get_money = 2000.0f;
InsufficientFoundsException ife = new InsufficientFoundsException(b,to_get_money);
ife.show_Exception(to_get_money);
}
}
class Bank{
float saving;
public Bank(float saving){
this.saving = saving;
}
public float get_money(float n) {
saving -= n;
return saving;
}
public float add_money(float n) {
saving +=n;
return saving;
}
public void display_money() {
System.out.println("该账户余额为" + saving);
}
}
//自定义异常类 (运行时异常 RuntimeException)
class InsufficientFoundsException extends Exception{
Bank b;
float to_get_money;
public InsufficientFoundsException(Bank b, float to_get_money){
this.b = b;
this.to_get_money = to_get_money;
}
public void show_Exception(float to_get_money) {
if(b.get_money(to_get_money) < 0) {
System.out.println("账户余额不足!");
}
else {
b.display_money();
}
}
}