设计一个银行帐户类 成员变量包括账号、储户姓名、开户时间(可用字符串)、身份证号码、存款余额等帐户信息,静态成员包括银行开户总数,银行存款总额,涉及静态初始化器,给静态成员赋初值,设计构造方法,getter/setter方法,成员方法包括显示账号信息(包括帐户余额)、存款、取款操作,静态成员方法显示银行开户总数、银行存款总额,编写测试类进行测试,理解静态成员和静态方法的调用。
时间: 2023-07-10 09:34:27 浏览: 290
好的,下面是一个银行账户类的实现:
```java
public class BankAccount {
private String accountNumber; // 账号
private String accountOwner; // 储户姓名
private String accountOpeningTime; // 开户时间
private String idNumber; // 身份证号码
private double balance; // 存款余额
private static int totalAccounts; // 银行开户总数
private static double totalDeposits; // 银行存款总额
static {
totalAccounts = 0;
totalDeposits = 0;
}
// 构造方法
public BankAccount(String accountNumber, String accountOwner, String accountOpeningTime, String idNumber, double balance) {
this.accountNumber = accountNumber;
this.accountOwner = accountOwner;
this.accountOpeningTime = accountOpeningTime;
this.idNumber = idNumber;
this.balance = balance;
totalAccounts++;
totalDeposits += balance;
}
// getter/setter方法
public String getAccountNumber() {
return accountNumber;
}
public void setAccountNumber(String accountNumber) {
this.accountNumber = accountNumber;
}
public String getAccountOwner() {
return accountOwner;
}
public void setAccountOwner(String accountOwner) {
this.accountOwner = accountOwner;
}
public String getAccountOpeningTime() {
return accountOpeningTime;
}
public void setAccountOpeningTime(String accountOpeningTime) {
this.accountOpeningTime = accountOpeningTime;
}
public String getIdNumber() {
return idNumber;
}
public void setIdNumber(String idNumber) {
this.idNumber = idNumber;
}
public double getBalance() {
return balance;
}
public void setBalance(double balance) {
this.balance = balance;
}
// 存款
public void deposit(double amount) {
balance += amount;
totalDeposits += amount;
}
// 取款
public void withdraw(double amount) {
if (balance >= amount) {
balance -= amount;
totalDeposits -= amount;
} else {
System.out.println("余额不足!");
}
}
// 显示账号信息
public void display() {
System.out.println("账号:" + accountNumber);
System.out.println("储户姓名:" + accountOwner);
System.out.println("开户时间:" + accountOpeningTime);
System.out.println("身份证号码:" + idNumber);
System.out.println("账户余额:" + balance);
}
// 静态成员方法:显示银行开户总数
public static int getTotalAccounts() {
return totalAccounts;
}
// 静态成员方法:显示银行存款总额
public static double getTotalDeposits() {
return totalDeposits;
}
}
```
下面是一个测试类:
```java
public class TestBankAccount {
public static void main(String[] args) {
BankAccount account1 = new BankAccount("1001", "张三", "2021-01-01", "123456789012345678", 1000);
BankAccount account2 = new BankAccount("1002", "李四", "2021-02-01", "234567890123456789", 2000);
account1.display();
System.out.println();
account1.deposit(500);
account1.display();
System.out.println();
account1.withdraw(200);
account1.display();
System.out.println();
System.out.println("银行开户总数:" + BankAccount.getTotalAccounts());
System.out.println("银行存款总额:" + BankAccount.getTotalDeposits());
}
}
```
输出结果如下:
```
账号:1001
储户姓名:张三
开户时间:2021-01-01
身份证号码:123456789012345678
账户余额:1000.0
账号:1001
储户姓名:张三
开户时间:2021-01-01
身份证号码:123456789012345678
账户余额:1500.0
账号:1001
储户姓名:张三
开户时间:2021-01-01
身份证号码:123456789012345678
账户余额:1300.0
银行开户总数:2
银行存款总额:3300.0
```
在这个例子中,我们使用了静态成员变量来跟踪银行开户总数和银行存款总额,使用静态初始化器来为这些变量赋初值。我们还定义了静态成员方法来显示这些统计信息。我们也定义了构造方法、getter/setter方法和成员方法来管理银行账户的信息。在测试类中,我们创建了两个账户并进行了一些操作,然后使用静态成员方法来显示银行的统计信息。
阅读全文