1、写一个名为Account的类模拟账户。该类的属性和方法如下图所示。该类包括的属性:账号id,余额balance,年利率annualInterestRate;包含的方法:访问器方法(getter和setter方法),取款方法withdraw(),存款方法deposit()。
提示:在提款方法withdraw中,需要判断用户余额是否能够满足提款数额的要求,如果不能,应给出提示。
- 创建Customer类。
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 Test {
static View view=new View();
public static void main(String[] args){
view.start();
}
public class View {
Scanner sc = new Scanner(System.in);
Account account = new Account(0, 0, 0);
/** 初始化界面 **/
public void start() {
System.out.println("欢迎来到银行系统");
inputidname();
}
/** 输入id用户名 */
public void inputidname() {
System.out.println("请输入用户姓名:");
String name = sc.nextLine();
Customer cus1=fl(name);// 由姓,名,账户得到用户对象
System.out.println("请输入id:");
int id = sc.nextInt();
savetakemoney();
//Account acc = null;
double annualInterestRate = 1.23;
//acc = new Account(id, 1000, annualInterestRate);// account(id余额年利率)返回用户账户对象
System.out.println("Customer"+"["+cus1.getLastName(name)+" "+cus1.getFirstName(name)+"]has a account:");//打印存单
//成功存入 :100.0
//成功取出:960.0
//余额不足,取款失败
//Customer [Smith, Jane] has a account: id is 1000, annualInterestRate is 1.23%, balance is 1140.0
System.out.print("id is "+id+",annualInterestRate is ");
System.out.printf("%.2f%%",annualInterestRate);
System.out.print("balance is "+account.getBalance());
}
/**
* 取出姓和名
* */
public Customer fl(String name) {
Customer cus = null;
String firstname = name.substring(0, name.indexOf(" "));// 取出姓,名
String lastname = name.substring(name.indexOf(" ")+1);// 取出姓,名
cus = new Customer(firstname, lastname);// 返回对象
return cus;
}
/**存取款*/
public void savetakemoney() {
System.out.println("请选择操作项目:1.存款\t2.取款\t3.退出");
int cz = sc.nextInt();
switch (cz) {
case 1: {
System.out.println("请选择存款金额");
int amount = sc.nextInt();
account.deposit(amount);// 存钱
System.out.println("成功存入"+amount+"\t余额:"+account.getBalance());// 存完先看下余额
savetakemoney();// 返回操作
break;
}
case 2: {
System.out.println("请选择取款金额");
int amount = sc.nextInt();
if(amount>account.getBalance()){
System.out.println("余额不足");
savetakemoney();
}else{
account.withdraw(amount);// 把钱取出来
System.out.println("成功取出:"+amount+"\t余额:"+account.getBalance());// 取完钱先看下余额
savetakemoney();//返回选项
}
break;
}
default :{
System.out.println("欢迎下次再来");
}
}
}
}
import java.util.Scanner;
public class Customer{
Scanner sc=new Scanner(System.in);
/**
* (1)创建一个Customer ,名字叫 Jane Smith, 他有一个账号为1000,余额为2000元,年利率为 1.23% 的账户。
* //a. 声明三个私有对象属性:firstName、lastName和account。
* */
private String firstName;
private String lastName;
private Account account;
/**
* *b. 声明一个公有构造器,这个构造器带有两个代表对象属性的参数(f和l)
* */
public Customer(String f,String l){
this.firstName=f;
this.lastName=l;
}
/**
* *c. 声明两个公有存取器来访问该对象属性,方法getFirstName和getLastName返回相应的属性。
* */
public String getFirstName(String firstname){
return firstName;
}
/**
* *c. 声明两个公有存取器来访问该对象属性,方法getFirstName和getLastName返回相应的属性。
* */
public String getLastName(String lastname){
return lastName;
}
/**
* * e. 声明getAccount 方法以获取account属性。
* **/
public Account getAccount(){
return account;
}
/**
* *d. 声明setAccount 方法来对account属性赋值。
* */
public void setAccount(Account account){
this.account=account;
}
}
/***************************************/
import java.util.Scanner;
public class Account {
private int id;
private double balance=2000;
private double annualInterestRate;
Scanner sc=new Scanner(System.in);
/**
* (1)创建一个Customer ,名字叫 Jane Smith, 他有一个账号为1000,余额为2000元,年利率为 1.23% 的账户。
* 在提款方法withdraw中,需要判断用户余额是否能够满足提款数额的要求,如果不能,应给出提示。
* */
public Account(int id, double balance, double annualInterestRate){
getBalance();
}
public int getId(){
System.out.println(id);
return id;
}
public double getBalance(){
return balance;
}
public double getAnnualInterestRate(){
return annualInterestRate;
}
public void setId(int id){
this.id=id;
}
public void setBalance(double balance){
this.balance=balance;//他有一个账号为1000,余额为2000元
}
/**年利率为 1.23% 的账户。*/
public void setAnnualInterestRate(double annualInterestRate){
this.annualInterestRate=annualInterestRate;
}
/**取钱方法*/
public void withdraw (double amount){
this.balance-=amount;
}
/**存款方法*/
public void deposit (double amount){
this.balance+=amount;
}
}