目录
在今天的博文中,我们将通过Java编程语言来模拟一个简单的银行账户与客户交易系统。这个系统将包括两个主要类:Account
(账户类)和Customer
(客户类),以及一个测试类CustomerTest
来演示如何使用这些类。
账户类(Account)
首先,我们创建一个Account
类来模拟银行账户。这个类包含三个私有属性:账号ID(id
)、余额(balance
)和年利率(annualInterestRate
)。此外,该类还提供了相应的getter和setter方法来访问和修改这些属性。
我们还实现了两个重要的方法:deposit(double amount)
用于存款,withdraw(double amount)
用于取款。这两个方法都进行了简单的验证,以确保取款金额不超过账户余额,并且存款金额大于0
public class Account {
// 属性
private int id; //账号id
private double balance; // 余额
private double annualnterestRate; // 年利率
// 构造器
public Account(int i, double b, double a) {
id = i;
balance = b;
annualnterestRate = a;
}
public void setId(int i) {
id = i;
}
public void setBalance(double b) {
balance = b;
}
public void setAnnualnterestRate(double a) {
annualnterestRate = a;
}
public int getId() {
return id;
}
public double getBalance() {
return balance;
}
public double getAnnualnterestRate() {
return annualnterestRate;
}
// 取钱方法
public void withdraw(double amount) {
if (amount <= balance && amount > 0) {
balance -= amount;
System.out.println("成功取出:" + amount);
} else {
System.out.println("余额不足,取款失败");
}
}
// 存钱方法
public void deposit(double amount) {
if (amount > 0) {
balance += amount;
System.out.println("成功存入:" + amount);
}
}
}
客户类(Customer)
接下来,我们创建Customer
类来模拟客户。这个类包含三个私有属性:名字(firstName
)、姓氏(lastName
)和关联的账户(account
)。我们还提供了构造器来初始化客户的名字和姓氏,并提供了存取器方法来访问这些属性。此外,我们提供了setAccount
和getAccount
方法来分别设置和获取客户的账户信息。
public class Customer {
// 属性
private String firstName;
private String lastName;
private Account account;
public Customer(String f,String l){
firstName = f;
lastName = l;
}
public String getFirstName(){
return firstName;
}
public String getLastName(){
return lastName;
}
public void setAccount(Account a){
account = a;
}
public Account getAccount(){
return account;
}
}
测试类(CustomerTest)
最后,我们通过CustomerTest
类来测试我们的系统。在这个类中,我们首先创建了一个名为Jane Smith的客户,并为她创建了一个账号为1000、余额为2000元、年利率为1.23%的账户。然后,我们对这个账户进行了一系列操作:存入100元,取出960元,再尝试取出2000元(这次会失败,因为余额不足)。最后,我们打印出Jane Smith的基本信息和她的账户信息。
public class CustomerTest {
public static void main(String[] args) {
// 创建一个customer
Customer customer = new Customer("Jane","smith");
Account account = new Account(1000,2000,0.0123);
// 将账户的地址值赋值给客户,客户就拿到账户的信息
customer.setAccount(account);
// 针对于客户的账户的进行取钱、存钱的操作
customer.getAccount().deposit(100); // 存100
customer.getAccount().withdraw(960); // 取960
customer.getAccount().withdraw(2000); // 取2000
// 输出客户的信息
System.out.println("Customer [" + customer.getLastName() + ", " + customer.getFirstName() +
"] has a account: " + customer.getAccount().getId() + ", annualnterestRate is " +
customer.getAccount().getAnnualnterestRate()*100 + "%, balance is " +
customer.getAccount().getBalance());
}
}
运行结果
通过这个简单的示例,我们展示了如何使用Java类来模拟现实世界中的银行账户和客户交易系统。希望这个示例能够帮助你理解面向对象编程的基本概念,并激发你对Java编程的进一步兴趣。