本文分析了以下 Java 代码中存在的错误,并提供了修正后的代码示例。

原始代码:

public class BuyTicket {
    public static void main(String[] args) {
        System.out.println('姓名	年龄	票价');
        System.out.println('-------------------');
        Buy buy = new Buy('李明', 20);
        buy.buyTicket;
    }
}

class Buy {
    int age;
    String name;

    public Buy(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public void buyTicket() {
        if (age >= 18) {
            System.out.println(name + '	' + age + '	' + 40);
        } else {
            System.out.println(name + '	' + age + '	' + 20);
        }
    }
}

错误分析:

  1. BuyTicket 类没有定义构造函数。 在 BuyTicket 类中,你试图创建 Buy 类的实例,但是 Buy 类的构造函数需要两个参数,而 BuyTicket 类没有提供这些参数。所以,你需要在 BuyTicket 类中添加一个构造函数来匹配 Buy 类的构造函数参数。

  2. Buy 类的 BuyTicket 方法缺少括号。 在 Buy 类中,你定义了一个 BuyTicket 方法,但是它缺少括号,应该是 public void buyTicket()

  3. BuyTicket 方法没有返回值。 在 Buy 类的 BuyTicket 方法中,你应该添加 void 关键字来指定它没有返回值。

修正后的代码:

public class BuyTicket {
    public static void main(String[] args) {
        System.out.println('姓名	年龄	票价');
        System.out.println('-------------------');
        Buy buy = new Buy('李明', 20);
        buy.buyTicket();
    }
}

class Buy {
    int age;
    String name;

    public Buy(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public void buyTicket() {
        if (age >= 18) {
            System.out.println(name + '	' + age + '	' + 40);
        } else {
            System.out.println(name + '	' + age + '	' + 20);
        }
    }
}

代码说明:

  • 在 BuyTicket 类中添加了一个默认构造函数。
  • 修正了 Buy 类的 BuyTicket 方法缺少括号的错误。
  • 在 Buy 类的 BuyTicket 方法中添加了 void 关键字来指定它没有返回值。

通过这些修正,代码可以正常运行,并输出购买者姓名、年龄和票价信息。

Java 代码错误分析与修正:BuyTicket 类和 Buy 类问题

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

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