用Java编写银行卡功能,包括存款,取款,转账,修改密码,银行卡卡号要自动生成,还要用到方法重载
时间: 2023-07-18 09:06:31 浏览: 71
下面是一个简单的示例代码,实现了银行卡的基本功能:
```java
import java.util.ArrayList;
import java.util.Random;
public class BankCard {
private String cardNumber; // 银行卡号
private String password; // 密码
private double balance; // 余额
// 生成随机的银行卡号
private static String generateCardNumber() {
Random random = new Random();
StringBuilder cardNumberBuilder = new StringBuilder();
for (int i = 0; i < 16; i++) {
cardNumberBuilder.append(random.nextInt(10));
}
return cardNumberBuilder.toString();
}
// 构造函数,自动生成银行卡号
public BankCard(String password, double balance) {
this.cardNumber = generateCardNumber();
this.password = password;
this.balance = balance;
}
// 存款
public void deposit(double amount) {
balance += amount;
}
// 取款
public void withdraw(double amount) {
if (balance >= amount) {
balance -= amount;
} else {
System.out.println("余额不足!");
}
}
// 转账
public void transfer(BankCard receiver, double amount) {
if (balance >= amount) {
balance -= amount;
receiver.deposit(amount);
System.out.println("转账成功!");
} else {
System.out.println("余额不足!");
}
}
// 修改密码
public void setPassword(String newPassword) {
password = newPassword;
}
// 方法重载,修改密码,需要提供旧密码
public void setPassword(String oldPassword, String newPassword) {
if (password.equals(oldPassword)) {
password = newPassword;
System.out.println("密码修改成功!");
} else {
System.out.println("旧密码不正确!");
}
}
// 获取银行卡号
public String getCardNumber() {
return cardNumber;
}
// 获取余额
public double getBalance() {
return balance;
}
public static void main(String[] args) {
BankCard card1 = new BankCard("123456", 1000);
BankCard card2 = new BankCard("654321", 2000);
// 转账
card1.transfer(card2, 500);
// 修改密码
card1.setPassword("123456", "111111");
card1.setPassword("654321", "111111");
}
}
```
在上面的代码中,我们定义了一个 `BankCard` 类来表示银行卡,包含了银行卡号、密码和余额等属性,以及存款、取款、转账、修改密码等操作。其中,银行卡号是通过 `generateCardNumber` 方法随机生成的,这个方法只在类的内部被调用,外界无法直接访问。
在 `transfer` 和 `setPassword` 方法中,我们使用了方法重载,这样可以根据不同的情况提供更灵活的调用方式。在 `main` 方法中,我们创建了两张银行卡,并测试了转账和修改密码的操作。