Java实现手机通话费用计算:座机、移动手机类设计与测试
一、代码实现
1. 座机类 (Telephone)
public class Telephone {
private double price;
public Telephone(double price) {
this.price = price;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public double call(int time) {
return price * time;
}
}
2. 移动手机类 (MobilePhone)
public class MobilePhone extends Telephone {
private double balance;
public MobilePhone(double price, double balance) {
super(price);
this.balance = balance;
}
public double getBalance() {
return balance;
}
public void setBalance(double balance) {
this.balance = balance;
}
public void recharge(double money) {
balance += money;
System.out.println('充值成功,当前余额为:' + balance);
}
public void showBalance() {
System.out.println('当前余额为:' + balance);
}
@Override
public double call(int time) {
double cost = super.call(time);
if (balance < cost) {
System.out.println('余额不足,无法拨打电话');
return 0;
}
balance -= cost;
System.out.println('拨打电话成功,当前余额为:' + balance);
return cost;
}
}
3. 测试类 (Test)
public class Test {
public static void main(String[] args) {
MobilePhone phone = new MobilePhone(0.5, 10);
phone.showBalance();
phone.call(5);
phone.showBalance();
phone.recharge(20);
phone.showBalance();
phone.call(10);
phone.showBalance();
}
}
二、基本思路
- 继承关系: MobilePhone 类继承自 Telephone 类,体现出移动手机是座机的一种特殊类型,并扩展了余额、充值等功能。
- 封装: 每个类都封装了自己的属性和方法,对外提供统一的接口,提高代码的可维护性和可扩展性。
- 多态:
call()方法在 Telephone 和 MobilePhone 中都有实现,体现了多态性,根据对象类型动态调用不同的方法。
三、项目实现过程
-
Telephone 类:
- 定义
price属性,存储通话费用单价。 - 定义
call()方法,计算通话费用并返回。
- 定义
-
MobilePhone 类:
- 继承 Telephone 类,并新增
balance属性存储余额。 - 实现
recharge()方法用于充值,增加余额。 - 实现
showBalance()方法用于显示当前余额。 - 重写
call()方法,判断余额是否充足,如果不足则提示无法拨打电话,否则扣除通话费用并更新余额。
- 继承 Telephone 类,并新增
-
Test 类:
- 创建一个 MobilePhone 对象,并使用它调用
showBalance(),call(),recharge()等方法,测试系统功能。
- 创建一个 MobilePhone 对象,并使用它调用
通过以上步骤,我们成功实现了简单的手机通话费用计算系统,展现了 Java 面向对象编程的基本原理和应用。
原文地址: https://www.cveoy.top/t/topic/oy4l 著作权归作者所有。请勿转载和采集!