Java面向对象案例之设计用户去ATM机存款取款(5)

本文介绍了如何使用面向对象思想设计银行管理系统中的储户类,包括用户属性(姓名、密码、身份证号、账号和余额)、存款和取款方法的验证逻辑,以及代码示例和运行截图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求及思路分析

  • 业务代码需求:
    某公司要开发“银行管理系统”,请使用面向对象的思想,设计银行的储户信息,描述存款、取款业务。

  • 储户类的思路分析:
    属性:用户姓名、密码、身份证号、账号、帐户余额
    方法:
    1、 存款:验证账号是否有效,存款金额是否有效,如果有效修修改账户余额
    2、 取款:验证账号是否有效,取款金额是否有效,余额是否够用,如果有效修改余额

类的方法图

  • 这里存款和取款方法,遵循整存整取
    在这里插入图片描述

代码示例

import java.util.Scanner;

/*
 * 测试方法
 */
public class UserTest {
	public static void main(String[] args){
		//实例化对象,对所有属性赋值
		User one=new User("张三","123456",2000,"111111");
	    
		//接收用户输入信息,调用存款的方法
		Scanner input = new Scanner(System.in);
		System.out.println("请输入账号:");
		String account = input.nextLine();
		System.out.println("请输入存款金额:");
		double money = input.nextDouble();
		one.saving(account, money);
		System.out.println("=============================");
		
		//接收用户输入信息,调用取款的方法
		System.out.println("请输入取款金额:");
		money = input.nextDouble();
		one.getting(account, money);
	}
}

/**
 * 储户类
 */
class User {
	// 用户姓名、密码、身份证号、账号、帐户余额(>0)
	private String name;// 储户姓名
	private String password;// 密码
	private double balance;// 存款余额
	private String account;// 帐号

	public String getName() { return name; }
	public void setName(String name) { this.name = name; }
	public String getPassword() { return password; }
	public void setPassword(String password) { this.password = password; }
	public double getBalance() { return balance; }
	public String getAccount() { return account; }
	public void setAccount(String account) { this.account = account; }
	// 账户余额大于0
	public void setBalance(double balance) {
		if (balance < 0)
			System.out.println("无效金额");
		else
			this.balance = balance;
	}
	
	public User() { }
	public User(String name, String password, double balance, String account) {
		this.name = name;
		this.password = password;
		this.balance = balance;
		this.account = account;
	}
	
	//  1、存款,验证账号是否有效,存款金额是否有效,如果有效修改账户余额
	public void saving(String acc, double money) {
		if (!this.account.equals(acc)) {
			System.out.println("账号错误");
			return ;
		}
		if (money < 0 || money % 100 !=0) {
			System.out.println("存款金额无效");
			return;
		}
		this.balance += money;
		System.out.println("存款成功!\n储户姓名:" + this.name + "\n帐号:" + this.account + "\n可用金额:" + this.balance);
	}
	
	// 2、取款,验证账号是否有效,取款金额是否有效,余额是否够用,如果有效修改余额
	public void getting(String acc, double money) {
		if (!this.account.equals(acc)) {
			System.out.println("账号错误");
			return;
		}
		if (money < 0 || money % 100 !=0) {
			System.out.println("取款金额无效");
			return;
		}
		if (balance - money < 0) {
			System.out.println("当前账户余额不足");
			return;
		}
		this.balance -= money;
		System.out.println("取款成功!\n储户姓名:" + this.name + "\n帐号:" + this.account + "\n可用金额:" + this.balance);
	}
}

运行截图

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值