Java Account_Customer练习 -34天 学习笔记

本文档展示了如何使用Java实现一个简单的面向对象编程示例,包括Account类和Customer类。Account类模拟了银行账户,包含了账号id、余额和年利率属性,以及存取款方法。Customer类则代表了客户,包含姓名和账户信息。在Bank类中,实现了添加客户、获取客户数量和账户的方法。测试程序创建了一个名为JaneSmith的客户,进行了存款和取款操作,并展示了银行系统的基本功能。
摘要由CSDN通过智能技术生成

练习

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 中,需要判断用户余额是否能够满足提款数额的要求,如果不
能,应给出提示。

  1. 创建 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

package com.oop.Demo08.DemoText2;

/**
 * @ClassName Account
 * @Description TODO
 * @Author xinZhong
 * @Date 2021/4/3 20:38
 * @Version 1.0
 */

public class Account {

    private int id;//账号
    private double balance;//余额
    private double annualInterestRate;//balance

    public Account(){

    }

    public Account(int id,double balance,double annualInterestRate){
        this.id = id;
        this.balance = balance;
        this.annualInterestRate = annualInterestRate;
    }
    public void setId (int id){
        this.id = id;

    }public void setBalance (double balance){
        this.balance = balance;

    }public void setId (double annualInterestRate){
        this.annualInterestRate = annualInterestRate;
    }
    public int getId(){
        return id;
    }
    public double getBalance(){
        return  balance;
    }
    public double getAnnualInterestRate(){
        return  annualInterestRate;
    }
    // 提示: 在提款方法 withdraw 中,需要判断用户余额是否能够满足提款数额的要求,如果不
    // 能,应给出提示。

    public void withdraw(double amount){//取钱
      if(amount > balance){
          System.out.println("你的余额不足,取款失败");
      }else{

          System.out.println("成功取出:"+amount);
          balance -= amount;
      }

    }
    public void deposit (double amount){ //存钱
        if(amount > 0) {
            balance += amount;
            System.out.println("成功存入:" + amount);
        }
    }
}

package com.oop.Demo08.DemoText2;

/**
 * @ClassName Customer
 * @Description TODO
 * @Author xinZhong
 * @Date 2021/4/3 21:44
 * @Version 1.0
 */

public class Customer {
    private String firstName;
    private String lastName;
    private Account account;

    public  Customer(){

    }
    public Customer(String f,String i){
        this.firstName = f;
        this.lastName = i;
    }
    public String getFirstName(){
        return  firstName;
    }
    public String getLastName(){
        return  lastName;
    }
    public Account getAccount(){
        return  account;
    }
    public void setAccount(Account account){
       this.account = account;
    }
}

package com.oop.Demo08.DemoText2;

/**
 * @ClassName Customer1
 * @Description TODO
 * @Author xinZhong
 * @Date 2021/4/3 22:49
 * @Version 1.0
 */
// .写一个测试程序。
//         (1) 创建一个 Customer ,名字叫 Jane Smith, 他有一个账号为 1000,余额为 2000 元,
//         年利率为 1.23% 的账户。
//         (2) 对 Jane Smith 操作。
//         存入 100 元,再取出 960 元。 再取出 2000 元。
//         打印出 Jane Smith 的基本信息

public class CustomerText {
    public static void main(String[] args) {

        Customer c1 = new Customer("Jane", "Smith");

        Account a1 = new Account(1000, 2000, 0.0123);

        c1.setAccount(a1);
        c1.getAccount().deposit(100);
        System.out.println(a1.getBalance());
        c1.getAccount().withdraw(960);
        c1.getAccount().withdraw(2000);
        System.out.println(" Customer "+ c1.getFirstName()+c1.getLastName()+" has a accout id is: "
                +a1.getId()+", AnnualInterestRate is "+ a1.getAnnualInterestRate()+", balance is "+a1.getBalance());
    }
}

练习2

1.按照如下的 UML 类图,创建相应的类,提供必要的结构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FL1e7PEF-1617702895136)(C:\Users\0\AppData\Roaming\Typora\typora-user-images\image-20210404074611388.png)]

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

  1. 按照如下的 UML 类图,创建相应的类,提供必要的结构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UjmQh2JG-1617702895138)(C:\Users\0\AppData\Roaming\Typora\typora-user-images\image-20210404074637782.png)]

  1. 按照如下的 UML 类图,创建相应的类,提供必要的结构

  2. [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rI8156pF-1617702895140)(C:\Users\0\AppData\Roaming\Typora\typora-user-images\image-20210404074700790.png)]

    addCustomer 方法必须依照参数(姓,名)构造一个新的 Customer 对象,然后把
    它放到 customer 数组中。还必须把 numberOfCustomer 属性的值加 1。
    getNumOfCustomers 方法返回 numberofCustomers 属性值。

    getCustomer 方法返回与给出的 index 参数相关的客户。

    1. 创建 BankTest 类,进行测试。
package com.oop.Demo08.demo03text;

/**
 * @ClassName Account
 * @Description TODO
 * @Author xinZhong
 * @Date 2021/4/4 7:49
 * @Version 1.0
 */

public class Account {

    private double balance;//余额

    public Account(double init_balance ) {
       this.balance = init_balance;
    }
    public double getbalance(){
        return balance;
    }

    //存钱
    public void deposit(double amt){
        if(amt > 0){
            balance += amt;
            System.out.println("成功存入 "+ amt);
            return;
        }else{
            System.out.println("输入不正确");
        }

    }
    //取钱
    public void withdraw(double amt){
        if(balance < amt){
            balance -= amt;
            System.out.println("取走金额 "+ amt);
        }else{
            System.out.println("余额不足"+ amt);
        }
    }
}

package com.oop.Demo08.demo03text;

/**
 * @ClassName Customer
 * @Description TODO
 * @Author xinZhong
 * @Date 2021/4/4 8:03
 * @Version 1.0
 */

public class Customer {

    private String firstName;
    private String lastName;
    private Account account;

    public  Customer(String f ,String l){
        this.firstName = f;
        this.lastName = l;
    }
    public String getFirstName(){
        return firstName;
    }

    public String getLastName() {

        return lastName;
    }

    public Account getAccount() {
        return account;
    }
    public void setAccount(Account account){
        this.account = account;
    }
}

package com.oop.Demo08.demo03text;

/**
 * @ClassName Bank
 * @Description TODO
 * @Author xinZhong
 * @Date 2021/4/4 8:09
 * @Version 1.0
 */

public class Bank {
    private Customer[] customers; //存放多个客户的数组
    private int numberCustomers; //记录客户的个数

    public Bank(){
        //初始化数组
        customers = new Customer[10];
    }
    //添加客户
    public void addCustomer(String f,String l){
        Customer cust = new Customer(f,l);
        // customers[numberCustomers] = cust;
        // numberCustomers++;  或者
        customers[numberCustomers++] = cust;

    }

    //获取客户个数
    public int getNumberCustomer() {
        return numberCustomers;
    }
    //获取指定位置上的客户
    public Customer getCustomer(int index){
        // return  customers[index]; //这样容易越界 有10个index,容易越界
        if(index <= 0 && index < numberCustomers) {
            return customers[index];
         }
        return null;
        }
    }



package com.oop.Demo08.demo03text;

/**
 * @ClassName BankTest
 * @Description TODO
 * @Author xinZhong
 * @Date 2021/4/4 11:44
 * @Version 1.0
 */

public class BankTest {

    public static void main(String[] args) {
        Bank bank = new Bank();
        bank.addCustomer("张","三");
        //可以直接匿名对象调用Account
        bank.getCustomer(0).setAccount(new Account(2000));
        //也可以创建对象调用
        // bank.getCustomer(0);
        // Account account = new Account(2000);
        // System.out.println(account.getbalance());
        bank.getCustomer(0).getAccount().deposit(1002);
        double banlanc = bank.getCustomer(0).getAccount().getbalance();
        System.out.println("客户:" +
                bank.getCustomer(0).getFirstName() +


                "的余额为 :" + banlanc);
        bank.getCustomer(0).getAccount().withdraw(12);
        System.out.println("=======================");
        //新增用户

        bank.addCustomer("李","四");

        //查询所有用户
        System.out.println("银行总客户为:"+bank.getNumberCustomer());
    }
}

tem.out.println(“客户:” +
bank.getCustomer(0).getFirstName() +

            "的余额为 :" + banlanc);
    bank.getCustomer(0).getAccount().withdraw(12);
    System.out.println("=======================");
    //新增用户

    bank.addCustomer("李","四");

    //查询所有用户
    System.out.println("银行总客户为:"+bank.getNumberCustomer());
}

}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值