gpt4 book ai didi

java - 使用另一个函数创建对象

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:45:53 25 4
gpt4 key购买 nike

我是 Java 的新手,我正在制作一个小型应用程序,它需要两辆车并返回速度更快的人。我为汽车做了另一个类(class)。首先,我在 main 方法中创建了所有对象并且它起作用了,然后我尝试将代码放在另一个方法中并从 main 中调用它,只是为了让它更整洁,但我得到了一个错误。可能是显而易见的事情,但我太累了,无法想清楚。

错误:(7, 14) java: 找不到符号 符号:可变法拉利 位置:类测试

错误:(7, 23) java: 找不到符号 符号:可变兰博基尼 位置:类测试

public class Test {

public static void main(String[] args) {

createCars();

race(ferrari, lamborghini);

}

public static void createCars() {

Car ferrari = new Car("Ferrari", "California");
ferrari.setHp(552);
ferrari.setAcceleration(3.3);

Car lamborghini = new Car("Lamborghini", "Huracan");
lamborghini.setHp(602);
lamborghini.setAcceleration(2.5);

Car bmw = new Car("BMW", "M5");
bmw.setHp(560);
bmw.setAcceleration(3.7);

Car cadillac = new Car("Cadillac", "CTS-V");
cadillac.setHp(640);
cadillac.setAcceleration(3.6);

}


public static void race(Car carA, Car carB) {
if (carA.getAcceleration() < carB.getAcceleration()) {
System.out.println("The " + carA.getMake() + " " + carA.getModel() + " is faster than the " + carB.getMake() + " " + carB.getModel());
} else if (carB.getAcceleration() < carA.getAcceleration()) {
System.out.println("The " + carB.getMake() + " " + carB.getModel() + " is faster than the " + carA.getMake() + " " + carA.getModel());
} else {
System.out.println("It's a tie");
}
}

最佳答案

你得到那个错误是因为你的汽车实例 ferrarilamborghini 不在 main 函数的范围内。

您可以修改您的创建汽车方法,让它返回一辆新汽车:

public static Car createCar(String make, String model, int hp, double acceleration ) {
Car car = new Car(make, model);
car.setHp(hp);
car.setAcceleration(acceleration);
return car;
}

然后你就可以使用它了:

public static void main(String[] args) {

Car ferrari = createCar("Ferrari", "California", 552, 3.3 );
Car lamborghini = createCar("Lamborghini", "Huracan", 602, 2.5 );
race(ferrari, lamborghini);

}

...或直接

public static void main(String[] args) {
race(
createCar("Ferrari", "California", 552, 3.3 ),
createCar("Lamborghini", "Huracan", 602, 2.5 )
);
}

关于java - 使用另一个函数创建对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32058140/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com