|
发表于 2023-10-24 19:43:17
|
显示全部楼层
首先,我们需要设计一个BankCard类,满足题目中给出的要求。以下是BankCard类的设计:
- public class BankCard {
- private String cardNo; // 卡号
- private String password; // 密码
- private double balance; // 余额
- private String name; // 姓名
- private String uid; // 身份证号
- public BankCard(String cardNo, String password, double balance, String name, String uid) {
- this.cardNo = cardNo;
- this.password = password;
- this.balance = balance;
- this.name = name;
- this.uid = uid;
- }
- public String getCardNo() {
- return cardNo;
- }
- public String getPassword() {
- return password;
- }
- public double getBalance() {
- return balance;
- }
- public String getName() {
- return name;
- }
- public String getUid() {
- return uid;
- }
- public void deposit(double amount) {
- if (amount >= 0) {
- balance += amount;
- System.out.println("存款成功");
- } else {
- System.out.println("存款金额不能为负数");
- }
- }
- public void drawMoney(double amount) {
- if (amount >= 0) {
- if (amount <= balance) {
- balance -= amount;
- System.out.println("取款成功");
- } else {
- System.out.println("余额不足");
- }
- } else {
- System.out.println("取款金额不能为负数");
- }
- }
- public void changePwd(String oldPwd, String newPwd) {
- if (password.equals(oldPwd)) {
- if (newPwd.length() == 6 && newPwd.matches("\\d+")) {
- password = newPwd;
- System.out.println("密码修改成功");
- } else {
- System.out.println("新密码必须为6位数字");
- }
- } else {
- System.out.println("原密码错误");
- }
- }
- public void getBalance() {
- System.out.println("当前余额为:" + balance);
- }
- public void getName() {
- System.out.println("姓名:" + name);
- }
- public void toString() {
- System.out.println("卡号:" + cardNo);
- System.out.println("密码:" + password);
- System.out.println("余额:" + balance);
- System.out.println("姓名:" + name);
- System.out.println("身份证号:" + uid);
- }
- }
复制代码
接下来,我们需要实现中国工商银行、贵州银行、贵州农商银行的银行卡。我们可以通过继承BankCard类来实现:
- public class ICBCBankCard extends BankCard {
- public ICBCBankCard(String cardNo, String password, double balance, String name, String uid) {
- super(cardNo, password, balance, name, uid);
- }
- }
- public class GuizhouBankCard extends BankCard {
- public GuizhouBankCard(String cardNo, String password, double balance, String name, String uid) {
- super(cardNo, password, balance, name, uid);
- }
- }
- public class GuizhouRuralBankCard extends BankCard {
- public GuizhouRuralBankCard(String cardNo, String password, double balance, String name, String uid) {
- super(cardNo, password, balance, name, uid);
- }
- }
复制代码
最后,我们可以编写一个测试类来创建各类银行卡对象,并调用其成员方法实现存款、取款、查余额、查密码、转账等功能:
- public class BankCardTest {
- public static void main(String[] args) {
- BankCard icbcCard = new ICBCBankCard("123456", "123456", 1000.0, "张三", "1234567890");
- BankCard guizhouBankCard = new GuizhouBankCard("654321", "123456", 2000.0, "李四", "0987654321");
- BankCard guizhouRuralBankCard = new GuizhouRuralBankCard("987654", "123456", 3000.0, "王五", "5678901234");
- icbcCard.deposit(500.0);
- guizhouBankCard.drawMoney(1000.0);
- guizhouRuralBankCard.changePwd("123456", "654321");
- icbcCard.getBalance();
- guizhouBankCard.getName();
- guizhouRuralBankCard.toString();
- }
- }
复制代码
以上就是根据题目要求设计的BankCard类及其子类,并编写的测试类。通过测试类,我们可以创建不同银行的银行卡对象,并调用其方法完成各种操作。 |
|