以下实例是一个银行账户的模拟,通过银行卡的号码完成识别,可以进行存钱和取钱的操作。

InsufficientFundsException.java 文件代码:

// 文件名InsufficientFundsException.java

import java.io.*;

//自定义异常类,继承Exception类

public class InsufficientFundsException extends Exception

{

//此处的amount用来储存当出现异常(取出钱多于余额时)所缺乏的钱

private double amount;

public InsufficientFundsException(double amount)

{

this.amount = amount;//获取参数

}

public double getAmount()

{

return amount;

}

}

为了展示如何使用我们自定义的异常类,

在下面的 CheckingAccount 类中包含一个 withdraw() 方法抛出一个 InsufficientFundsException 异常。

CheckingAccount.java 文件代码:

// 文件名称 CheckingAccount.java

import java.io.*;

//此类模拟银行账户

public class CheckingAccount

{

//balance为余额,number为卡号

private double balance;

private int number;

public CheckingAccount(int number)

{

this.number = number;

}

//方法:存钱

public void deposit(double amount)

{

balance += amount;

}

//方法:取钱

public void withdraw(double amount) throws

InsufficientFundsException

{

if(amount <= balance)

{

balance -= amount;

}

else

{

double needs = amount - balance;

throw new InsufficientFundsException(needs);

}

}

//方法:返回余额

public double getBalance()

{

return balance;

}

//方法:返回卡号

public int getNumber()

{

return number;

}

}

下面的 BankDemo 程序示范了如何调用 CheckingAccount 类的 deposit() 和 withdraw() 方法。

BankDemo.java 文件代码:

//文件名称 BankDemo.java

public class BankDemo

{

public static void main(String [] args)

{

CheckingAccount c = new CheckingAccount(101);

System.out.println("Depositing $500...");

c.deposit(500.00);

try

{

System.out.println("\nWithdrawing $100...");

c.withdraw(100.00);

System.out.println("\nWithdrawing $600...");

c.withdraw(600.00);

}catch(InsufficientFundsException e)

{

System.out.println("Sorry, but you are short $"

+ e.getAmount());

e.printStackTrace();

}

}

}

编译上面三个文件,并运行程序 BankDemo,得到结果如下所示:

Depositing $500...

Withdrawing $100...

Withdrawing $600...

Sorry, but you are short $200.0

InsufficientFundsException

at CheckingAccount.withdraw(CheckingAccount.java:25)

at BankDemo.main(BankDemo.java:13)

java 银行账户 透支,Java学习——银行账户模拟相关推荐

  1. java转账_使用Java模拟银行账户存、取款、转账功能

    半枯 package bank;import java.util.Scanner;/** * 1.建立一个银行账户类(Acount),具有建立新帐号.查询余额.存款.取款.转账 * 即从本账户把钱转给 ...

  2. JAVA初学(七):银行账户演示程序【改进版】

    一.编程说明 在上一篇博客中,笔者通过Scanner实现了由键盘对银行账户的控制,虽说直观性更强一些,但是复杂度也增加了不少,甚至造成最后编出的代码有点离题的意思.因此在借鉴了网上的代码并加以自己的理 ...

  3. 简易银行账户系统 java

    简易银行账户系统 java Bank类 import java.util.Random;public class Bank {String name, password;double money;in ...

  4. java银行管理系统大作业_银行管理系统项目 《JAVA程序设计》课件.doc

    银行管理系统 第一部分 案例描述 案例目的 学习面向对象的主要特征和基本概念,包括类.对象.继承.接口.封装.继承.多态.方法的重载和重写.Java的访问修饰符与其它关键字等. 案例难度 ★★★★ 案 ...

  5. 银行账户类(Accoount)可以为账户存储交易。取款和存款都会产生交易信息。需要记录账户每次交易的信息,包括取钱还是存钱,交易的金额,交易时间和交易之后的余额。系统可以通过账户查询所有的交易次数(最

    不要自卑,去提升实力 互联网行业谁技术牛谁是爹 如果文章可以带给你能量,那是最好的事!请相信自己 加油o~ 1.题目背景 银行账户类(Accoount)可以为账户存储交易.取款和存款都会产生交易信息. ...

  6. 从零开始的企业级Java漏洞实战丨联合漏洞银行免费公开课

    文章来源|MS08067 安全实验室出品 随着越来越多的企业应用 使用Java EE进行开发 当你进行渗透测试时 是否曾面对Java站点无从下手? 是时候学一些主流的Java EE技术了! 漏洞银行携 ...

  7. C#实验报告 类与对象的访问性:银行账户存取款、新建账户、查询余额

    实验4 C#程序的流程控制 一.实验目的 (1)理解面向对象的概念,掌握C#定义类和创建对象的方法 (2)区分类的不同数据成员,包括常量.字段和属性的定义方法,并学会控制其访问性 (3)掌握类的方法成 ...

  8. java安装jdk错误1316 指定的账户已存在

    java安装jdk错误1316 指定的账户已存在 处理步骤: 1.卸载jdk,成功后重启 2.删除注册表中文件夹 (1)\HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft文件夹 ...

  9. JAVA通过SSL证书创建MS AD账户及设置密码

    近期由于工作需要整理一下自动化的东西,因为公司去年上线了OA,所以公司的入职系统会提交用户的信息到IT部门,最早的做法是入职到了,IT部门收集用户信息在AD中创建对应的用户信息,所以为了提高管理员的工 ...

最新文章

  1. 回调函数在replace方法中的应用
  2. python语言中文社区-Python 之父谈 Python-Go语言中文社区
  3. 智能拨号的联系人快速模糊匹配的算法
  4. jboss linux 性能,搭建jprofiler对jboss性能监控
  5. android 65536 gradle,如何防止在Android Gradle中使用Multi-dex
  6. Basic INFO: InstallShield中如何获取所调用Exe的返回值
  7. Webpack支持.vue文件的打包
  8. Python 城市列表
  9. expect自动登录以及远程脚本执行
  10. linux 内核 介绍,Linux内核详细介绍
  11. 枚举 函数 c语言,在C语言中函数中使用枚举类型和结构
  12. Excel合并不同工作簿的表到同一个工作簿
  13. 基于双目摄像头SGBM视差图的障碍物提取
  14. Clickhouse除数为0
  15. 自动化代码审查平台: 基于Docker Compose整合Jenkins + SonarQube
  16. 基于QT4的智能温度采集控制系统
  17. 图片文件转Bitmap-Bitmap转NV21-ARGB数据转化为NV21数据
  18. java url 图片路径_问个URL图片路径问题
  19. 二)Python非正式介绍
  20. 关于康托展开和逆康托展开详解,及python代码

热门文章

  1. 实战打靶集锦-016-lampiao
  2. HTML5+CSS3移动商城-首页
  3. 使用SVN提交文件时文件状态显示Missing怎么处理
  4. 伺服器软、硬件优化及评测
  5. 关于C++中有符号整型和无符号整型的转换方法
  6. ios label html图片,iOS UILabel与UITextView加载图片富文本点击看大图
  7. 一个睡5分钟等于6个钟头的方法!!!
  8. 史上最性感App横空出世:这群伯克利学生要用AI帮你保护羞羞的皂片
  9. 使用7z.dll完成简单解压缩
  10. live server使用