【Java】—— Java面向对象进阶:Java银行账户管理系统设计与实现
目录
1. 账户类(Account)
2. 客户类(Customer)
3. 银行类(Bank)
4. 测试类(BankTest)
运行结果
在今天的博文中,我们将一起探讨一个简单的Java银行账户管理系统的设计与实现。该系统将包含几个关键类:Account
(账户类)、Bank
(银行类)、Customer
(客户类)以及一个测试类BankTest
。通过这些类,我们将能够模拟基本的银行账户操作,如存款、取款以及管理客户信息。
1. 账户类(Account)
首先,我们定义了一个Account
类,用于表示银行账户。这个类包含了余额属性(balance
),并提供了构造器来初始化账户余额。此外,还实现了getBalance
方法用于获取账户余额,deposit
方法用于存款,以及withdraw
方法用于取款。
package exer2;
/**
* ClassName:IntelliJ IDEA
* Description:
* 账户类
*
* @Author zyjstart
* @Create:2024/8/29 20:53
*/
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);
}
}
// 取钱
public void withdraw(double amt) {
if (balance >= amt) {
balance -= amt;
System.out.println("成功取出:" + amt);
} else {
System.out.println("取款数额有误或余额不足!");
}
}
}
2. 客户类(Customer)
接着,我们定义了Customer
类,用于表示银行的客户。每个客户都有自己的姓名(姓和名)和一个与之关联的Account
对象。Customer
类提供了构造器、获取姓名和账户的方法,以及设置账户的方法。
package exer2;
/**
* ClassName:IntelliJ IDEA
* Description:
* 客户类
* @Author zyjstart
* @Create:2024/8/29 20:59
*/
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;
}
}
3. 银行类(Bank)
然后,我们定义了Bank
类,用于表示银行。银行需要能够管理多个客户,因此我们使用了一个Customer
数组来存储客户列表,并维护了一个计数器来跟踪存储的客户数量。Bank
类提供了添加客户、获取客户数量和根据客户索引获取客户的方法。
package exer2;
/**
* ClassName:IntelliJ IDEA
* Description:
* 银行类
*
* @Author zyjstart
* @Create:2024/8/29 21:10
*/
public class Bank {
private Customer[] customers; // 用于保存多个客户
private int numberOfCustomer; // 用于记录存储的客户的个数
public Bank() {
customers = new Customer[10];
}
/**
* 将指定姓名的客户保存在银行的客户列表中
*
* @param f // 姓
* @param l // 名
*/
public void addCustomer(String f, String l) {
Customer cust = new Customer(f, l);
customers[numberOfCustomer] = cust;
numberOfCustomer++;
}
/**
* 获取客户列表中存储的客户的个数
*
* @return
*/
public int getNumOfCustomer() {
return numberOfCustomer;
}
/**
* 获取指定索引位置上的客户
*
* @param index
* @return
*/
public Customer getCustomer(int index) {
if (index < 0 || index >= numberOfCustomer) {
return null;
}
return customers[index];
}
}
4. 测试类(BankTest)
最后,我们通过一个测试类BankTest
来验证整个系统的功能。在这个测试类中,我们创建了一个Bank
对象,添加了两个客户,并为第一个客户创建了一个账户并进行了取款操作。
package exer2;
/**
* ClassName:IntelliJ IDEA
* Description:
*
* @Author zyjstart
* @Create:2024/8/29 21:15
*/
public class BankTest {
public static void main(String[] args) {
Bank bank = new Bank();
bank.addCustomer("操","曹");
bank.addCustomer("备","刘");
bank.getCustomer(0).setAccount(new Account(1000));
bank.getCustomer(0).getAccount().withdraw(50);
System.out.println("账户余额为:" + bank.getCustomer(0).getAccount().getBalance());
}
}
运行结果
通过运行BankTest
类,我们可以看到控制台输出了取款成功的消息以及账户当前的余额,验证了我们的银行账户管理系统能够正常工作。
以上就是这个简单的Java银行账户管理系统的设计与实现。虽然这个系统很简单,但它涵盖了面向对象编程的基本概念和技能,如类的定义、对象的创建、方法的实现以及类的关联等。希望这个示例能够帮助你更好地理解Java编程和面向对象设计。