Java 编程练习:模拟座机和移动手机通话系统
// 座机类 public class LandlinePhone { private double callRate; // 每分钟通话费用 private double balance; // 当前余额
public LandlinePhone(double rate, double initBalance) {
this.callRate = rate;
this.balance = initBalance;
}
public void makeCall(int minutes) {
double cost = minutes * callRate;
if (balance >= cost) {
balance -= cost;
System.out.println('通话' + minutes + '分钟,花费' + cost + '元,余额' + balance + '元。');
} else {
System.out.println('余额不足,无法完成通话。');
}
}
public void recharge(double amount) {
balance += amount;
System.out.println('充值' + amount + '元成功,当前余额' + balance + '元。');
}
public void showBalance() {
System.out.println('当前余额为' + balance + '元。');
}
}
// 移动手机类 public class MobilePhone { private double callRate; // 每分钟通话费用 private double balance; // 当前余额
public MobilePhone(double rate, double initBalance) {
this.callRate = rate;
this.balance = initBalance;
}
public void makeCall(int minutes) {
double cost = minutes * callRate;
if (balance >= cost) {
balance -= cost;
System.out.println('通话' + minutes + '分钟,花费' + cost + '元,余额' + balance + '元。');
} else {
System.out.println('余额不足,无法完成通话。');
}
}
public void recharge(double amount) {
balance += amount;
System.out.println('充值' + amount + '元成功,当前余额' + balance + '元。');
}
public void showBalance() {
System.out.println('当前余额为' + balance + '元。');
}
}
// 测试类 public class TestPhone { public static void main(String[] args) { LandlinePhone landline = new LandlinePhone(0.2, 10); landline.makeCall(5); landline.showBalance(); landline.recharge(20); landline.showBalance(); landline.makeCall(15);
MobilePhone mobile = new MobilePhone(0.5, 50);
mobile.makeCall(10);
mobile.showBalance();
mobile.recharge(30);
mobile.showBalance();
mobile.makeCall(30);
}
}
在测试类中,我们创建了一个座机对象和一个移动手机对象,并分别调用它们的各种方法进行测试。其中座机通话费用为每分钟0.2元,初始余额为10元;移动手机通话费用为每分钟0.5元,初始余额为50元。我们依次进行了一些通话和充值操作,然后观察其输出结果,可以发现程序运行正常,符合预期。
原文地址: https://www.cveoy.top/t/topic/oDIg 著作权归作者所有。请勿转载和采集!