这段代码报错的原因是因为所有的类都被定义在同一个文件中,而 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

Eclipse 代码报错:一个文件多个 public 类

原文地址: https://www.cveoy.top/t/topic/oELJ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录