java 模拟ATM机编写一个Account类模拟账户,创建一个有10个账户的数组,定义Account类的一个子类Newaccount,包括name存储名字
时间: 2023-11-27 21:54:05 浏览: 104
好的,下面是一个简单的 Java 代码实现:
```java
import java.util.Scanner;
// 定义账户类
class Account {
protected String name; // 账户名
protected double balance; // 余额
public Account(String name, double balance) {
this.name = name;
this.balance = balance;
}
public String getName() {
return name;
}
public double getBalance() {
return balance;
}
// 存款
public void deposit(double amount) {
balance += amount;
System.out.printf("成功存入%.2f元,当前余额为%.2f元\n", amount, balance);
}
// 取款
public void withdraw(double amount) {
if (amount > balance) {
System.out.println("余额不足,取款失败");
return;
}
balance -= amount;
System.out.printf("成功取出%.2f元,当前余额为%.2f元\n", amount, balance);
}
}
// 定义 Newaccount 类作为 Account 类的子类,增加 name 属性
class Newaccount extends Account {
public Newaccount(String name, double balance) {
super(name, balance);
}
}
public class ATM {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 初始化 10 个账户
Account[] accounts = new Account[10];
for (int i = 0; i < accounts.length; i++) {
accounts[i] = new Newaccount("用户" + (i+1), 1000.0);
}
// ATM 交互界面
while (true) {
System.out.println("请选择操作:1.查询余额 2.存款 3.取款 4.退出");
int choice = scanner.nextInt();
if (choice == 1) {
System.out.println("请输入账户编号(1-10):");
int index = scanner.nextInt() - 1;
System.out.printf("%s的余额为%.2f元\n", accounts[index].getName(), accounts[index].getBalance());
} else if (choice == 2) {
System.out.println("请输入账户编号(1-10):");
int index = scanner.nextInt() - 1;
System.out.println("请输入存款金额:");
double amount = scanner.nextDouble();
accounts[index].deposit(amount);
} else if (choice == 3) {
System.out.println("请输入账户编号(1-10):");
int index = scanner.nextInt() - 1;
System.out.println("请输入取款金额:");
double amount = scanner.nextDouble();
accounts[index].withdraw(amount);
} else if (choice == 4) {
break;
} else {
System.out.println("无效操作,请重新选择!");
}
}
scanner.close();
}
}
```
在上面的代码中,我们定义了一个 `Account` 类来模拟账户,其中包括 `name` 和 `balance` 两个属性,分别表示账户名和余额。`Account` 类中还定义了 `deposit` 和 `withdraw` 方法来实现存款和取款操作。
接着,我们定义了 `Newaccount` 类作为 `Account` 类的子类,并增加了一个 `name` 属性,这样我们就可以方便地记录每个账户的名字。
最后,我们在 `ATM` 类中实现了一个简单的交互界面,通过输入不同的选项来进行查询余额、存款、取款等操作。在初始化账户时,我们创建了 10 个 `Newaccount` 类型的对象,并将它们存储在一个数组中。
阅读全文