课后作业银行ATM系统模拟参考答案

/*Account类:表示银行账户*/
//创建包:
//package com.mybank.domain;
//定义类的时候,要注意访问限制符的使用.
public class  Account
{
	protected double balance;//表示余额
	
	protected Account(double initBalance)//构造器,来初始化成员变量.
	{
		this.balance=initBalance; 	//开户.
	}	
	
	public double getBalance()	//获取余额.
	{
			//想获得balance的值,需要使用
			return balance;		
	}
	public boolean deposit(double amt)	//存款,amt:存款金额
	{
		balance=balance+amt;  
		return true;
	}
	public boolean withdraw(double amt)	//取款amt:取款金额
	//增加业务规则:取款金额和余额. 保证余额〉=取款金额.
	{
		boolean result=false;	//假设操作失败.
		if(balance>=amt)
		{
			balance=balance-amt;
			result=true;	//操作成功.
		}
			return result;
	}	
}/*类定义完成.*/

/**
建立Bank类:
属性:
	customers:Customer[]
	numberOfCustomers:int
构造器:
	Bank
方法:
	addCustomer(x:String,m:String)
	getNumOfCustomers():int
	getCustomer(index:int):Customer
达到以下输出效果
Customer[1]is 李逵
Customer[2]is 宋江
Customer[3]is 燕青
customer[4]is 鲁智深
*/
class Bank 
{
	private Customer[]customers;//Customer类型的对象数组 
	private int numberOfCustomers;//记录下一个customers数组索引的一个整数.

	public Bank(){
	//代码为空.至少长度为5来初始化customers数组
		customers=new Customer[5];
		numberOfCustomers=0;
	}
	public void addCustomer(String x,String m)//参数为姓x、名m
	{
		customers[numberOfCustomers]=new Customer(x,m);//构造一个新的Customer对象
		numberOfCustomers++;	//指向下一个编号.
	}
	public  int getNumOfCustomers(){	//获得客户数量.
		return numberOfCustomers;//返回
	}
	public Customer getCustomer(int index){	//实现的功能是啥呢?通过索引来检索客户的信息
		return customers[index];		//通过customers数组来返回一个Customer对象
	}		
}

/*定义银行客户类*/
//创建包
//package com.mybank.domain;

public class Customer
{
	private String xing;//姓
	private String ming;//名
	private Account account;//定义Account类型的一个成员变量,表示客户有一个账户
	
	//构造器
	public Customer(String x,String m)
	{
		xing=x;
		ming=m;	
	}	
	//方法
	public String getXing()	//获得姓
	{
		return xing;	
	}
	public String getMing()//获得名
	{
		return ming;	
	}
	public Account getAccount()	//获得客户的账户方法
	{
		return account;					//返回账户	
	}
	public void setAccount(Account acct)	//设置客户的账户.
	{
		this.account=acct;
	}
}

/*
SavingAccount:储蓄账户类.
是账户类的子类.
*/
class SavingAccount	extends	Account
{
	//属性.
	private double interestRate;			//利率.
	//构造器.对成员变量初始化。
	public SavingAccount(double initBalance,double interestRate)	
	{
		super(initBalance);	//调用父类的构造器.	 把父类的构造器给包含过来.	
		this.interestRate=interestRate;
	}				
}

/*
透支账户类
透支账户类是账户类的子类.
*/
class CheckingAccount extends Account
{
		//属性
		private double overdraftAmount;	//透支金额
		//构造器.成员变量初始化.
		public CheckingAccount(double initBalance,double overdraft)
		{
			super(initBalance);
			this.overdraftAmount=overdraft;
		}
		public CheckingAccount(double initBalance)
		{
			super(initBalance);
		}
		//方法.重写取钱方法,因为透支账户取钱可以透支.
		public boolean withdraw(double amt)
		{
				return false;
		}
}

class TestBanking
{
	public static void main(String[] args) 
	{
		Bank lsBank=new Bank();
		
		lsBank.addCustomer("李","逵");//customers[0]=李逵
		lsBank.addCustomer("宋","江");//customers[1]=宋江
		lsBank.addCustomer("燕","青");
		lsBank.addCustomer("鲁","智深");

		//System.out.println("长度"+lsBank.getNumOfCustomers());
		//Customer objCust=new Customer();
		for(int i=0;i<lsBank.getNumOfCustomers();i++){
			Customer objCust=lsBank.getCustomer(i);
			System.out.println("Customer["+(i+1)+"]is"+objCust.getXing()+objCust.getMing());
		}

		/*Customer objCust=lsBank.getCustomer(1);
		System.out.println("Customer[1]is"+objCust.getXing()+objCust.getMing());
	    objCust=lsBank.getCustomer(2);
		System.out.println("Customer[2]is"+objCust.getXing()+objCust.getMing());
		objCust=lsBank.getCustomer(3);
		System.out.println("Customer[3]is"+objCust.getXing()+objCust.getMing());
		objCust=lsBank.getCustomer(0);
		System.out.println("Customer[4]is"+objCust.getXing()+objCust.getMing());*/
	}
}

转载于:https://www.cnblogs.com/mjsn/p/6150795.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值