java入门编程之银行存取款小程序

要求

1、写一个名为Account的类模拟账户。该类的属性和方法如下图所示。该类包括的属性:账号id,余额balance,年利率annualInterestRate;包含的方法:访问器方法(getter和setter方法),取款方法withdraw(),存款方法deposit()。

Account

private int id

private double balance

private double annualInterestRate

public Account (int id, double balance, double annualInterestRate )

public int getId()

public double getBalance()

public double getAnnualInterestRate()

public void setId( int id)

public void setBalance(double balance)

public void setAnnualInterestRate(double annualInterestRate)

public void withdraw (double amount)

public void deposit (double amount)

提示:在提款方法withdraw中,需要判断用户余额是否能够满足提款数额的要求,如果不能,应给出提示。

2. 创建Customer类。

Customer

private String firstName

private String lastName

private Account account

public Customer(String f,String l)

public String getFirstName()

public String getLastName()

public Account getAccount()

public void setAccount(Account account)

a. 声明三个私有对象属性:firstName、lastName和account。

b. 声明一个公有构造器,这个构造器带有两个代表对象属性的参数(f和l)

c. 声明两个公有存取器来访问该对象属性,方法getFirstName和getLastName返回相应的属性。

d. 声明setAccount 方法来对account属性赋值。

e. 声明getAccount 方法以获取account属性。

3.写一个测试程序。

  1. 创建一个Customer ,名字叫 Jane Smith, 他有一个账号为1000,余额为2000元,年利率为 1.23% 的账户。
  2. 对Jane Smith操作。

存入 100 元,再取出960元。再取出2000元。

打印出Jane Smith 的基本信息

成功存入 :100.0

成功取出:960.0

余额不足,取款失败

Customer [Smith, Jane] has a account: id is 1000, annualInterestRate is 1.23%, balance is 1140.0

代码:

public class Customer {
	
	
	public static void main(String[] args) {
		
		Customer JaneSmith  =new Customer("Jane","Smith");//新建一个Customer类并命名
		JaneSmith.setAccount(new Account(1000,2000,1.23));//给新建的类初始化Account信息
		JaneSmith.getAccount().deposit(100);//存100
		JaneSmith.getAccount().withdraw(960);//取960
		JaneSmith.getAccount().withdraw(2000);//取2000
		
	}

	private String firstName;  //理解为姓氏???
	private String lastName;   
	private Account account;   //每一个customer类都有account类,每个客户都有自己的账号
	
	public Customer(String f,String l) { //带参数的构造器,直接给名字。
		firstName=f;
		lastName=l;
	}
                   //get、set方法
	public Account getAccount() {
		return account;
	}

	public void setAccount(Account account) {  //在初始化自己的账户信息时,调用了account
                                    //类中的方法,也让自己在account类中赋予其customer属性
		this.account = account;
		account.setCustomer(this);
	}

	public String getFirstName() {
		return firstName;
	}

	public String getLastName() {
		return lastName;
	}
	
	
}


class Account{
	private Customer customer;        //注明这个账号是属于谁的
	private int id;                   //id唯一标识符
	private double balance;            //余额
	private double annualInterestRate;  //利率,貌似没什么卵用在这个题目中
	
	public void setCustomer(Customer customer) {
		this.customer=customer;    // 给customer初始化
	}

	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public double getBalance() {
		return balance;
	}
	public void setBalance(double balance) {
		this.balance = balance;
	}
	//带参数的构造器
	public Account (int id, double balance, double annualInterestRate ) {
		
		setId(id);
		setBalance(balance);
		setAnnualInterestRate(annualInterestRate);
	}
	public double getAnnualInterestRate() {
		return annualInterestRate;
	}
	public void setAnnualInterestRate(double annualInterestRate) {
		this.annualInterestRate = annualInterestRate;
	}
	public void withdraw (double amount) {//取钱先验证,够了才能取,不够显示个人信息
		
		if(this.balance>=amount) {
			System.out.println("成功取出:"+amount);
			this.balance-=amount;
		}
		else {
			System.out.println("余额不足,取款失败");
		 show(this.customer);
		}
	}
	public void deposit (double amount) {  //存钱任性存,存多少都不管,只管++
		System.out.println("成功存入:"+amount);
		this.balance+=amount;
	}
	public void show(Customer customer) {  //显示个人信息方法(告诉你没钱别取了)
		System.out.println("Customer ["+customer.getFirstName()+","+customer.getLastName()+"]"+"id is "+customer.getAccount().getId()+",annualInterestRate is"+customer.getAccount().getAnnualInterestRate()+"%, balance is "+customer.getAccount().getBalance());
	}
	
}

运行结果:

成功存入:100.0
成功取出:960.0
余额不足,取款失败
Customer [Jane,Smith]id is 1000,annualInterestRate is1.23%, balance is 1140.0

目前没想到更好的方式,望指教

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值