Eclipse 代码报错:一个文件多个 public 类
这段代码报错的原因是因为所有的类都被定义在同一个文件中,而 Java 中一个文件只能有一个 public 类。因此需要将 Landline、MobilePhone 和 Test 分别放在不同的文件中,并且文件名与类名相同。
public class Landline {
private int balance; // 余额
private int callFee; // 通话费用/分钟
public Landline(int balance, int callFee) {
this.balance = balance;
this.callFee = callFee;
}
// 充话费
public void recharge(int amount) {
balance += amount;
System.out.println('充值成功,当前余额为:' + balance);
}
// 显示余额
public void showBalance() {
System.out.println('当前余额为:' + balance);
}
// 计算通话费用
public int calculateCallFee(int duration) {
return duration * callFee;
}
// 打电话
public void call(int duration) {
int fee = calculateCallFee(duration);
if (balance >= fee) {
balance -= fee;
System.out.println('通话成功,通话时长为:' + duration + '分钟,扣除费用:' + fee + '元,当前余额为:' + balance + '元');
} else {
System.out.println('通话失败,余额不足,请充值。当前余额为:' + balance + '元');
}
}
}
// Landline.java
public class MobilePhone {
private int balance; // 余额
private int callFee; // 通话费用/分钟
public MobilePhone(int balance, int callFee) {
this.balance = balance;
this.callFee = callFee;
}
// 充话费
public void recharge(int amount) {
balance += amount;
System.out.println('充值成功,当前余额为:' + balance);
}
// 显示余额
public void showBalance() {
System.out.println('当前余额为:' + balance);
}
// 计算通话费用
public int calculateCallFee(int duration) {
return duration * callFee;
}
// 打电话
public void call(int duration) {
int fee = calculateCallFee(duration);
if (balance >= fee) {
balance -= fee;
System.out.println('通话成功,通话时长为:' + duration + '分钟,扣除费用:' + fee + '元,当前余额为:' + balance + '元');
} else {
System.out.println('通话失败,余额不足,请充值。当前余额为:' + balance + '元');
}
}
}
// MobilePhone.java
public class Test {
public static void main(String[] args) {
Landline landline = new Landline(100, 1); // 创建座机实例,余额100元,通话费用1元/分钟
MobilePhone mobilePhone = new MobilePhone(50, 2); // 创建移动手机实例,余额50元,通话费用2元/分钟
landline.showBalance(); // 座机余额:100元
mobilePhone.showBalance(); // 移动手机余额:50元
landline.call(10); // 座机打10分钟电话,扣除10元,余额90元
mobilePhone.call(20); // 移动手机打20分钟电话,扣除40元,余额10元
landline.recharge(50); // 座机充值50元,余额140元
mobilePhone.recharge(30); // 移动手机充值30元,余额40元
landline.call(30); // 座机打30分钟电话,扣除30元,余额110元
mobilePhone.call(15); // 移动手机打15分钟电话,扣除30元,余额10元
}
}
// Test.java
原文地址: https://www.cveoy.top/t/topic/oELJ 著作权归作者所有。请勿转载和采集!