【发布时间】:2020-02-02 21:52:03
【问题描述】:
我已经尝试了几个小时来找出为什么我的代码为每辆“汽车”输出零“年龄”。在我已经编写了两个类似的代码位并且它们运行良好之前......
class Car {
public int age;
public int getAge() {
return age;
}
public void setAge (int a) {
int age = a;
}
public void carAge() {
if (age == 0) {
System.out.println("Wow! That car's pretty new!");
} else if (age < 0) {
System.out.println("Invalid input");
}
else if (age <= 3) {
System.out.println("Superb! That car's quite new!");
} else if (age <= 7) {
System.out.println("The car's not old");
} else if (age <= 10) {
System.out.println("You've got to be sure it'll work correctly");
} else if (age <= 15) {
System.out.println("That car's a little bit old");
} else if (age <= 30) {
System.out.println("Does it really work?!");
} else if (age <= 100) {
System.out.println("It must be antique otherwise you shouldn't buy it");
} else {
System.out.println("Invalid input");
}
}
}
public class CarAgeTest {
public static void main(String[] args) {
Car lamborgini = new Car();
lamborgini.setAge (1);
Car ferrari = new Car();
ferrari.setAge (2);
Car uazpatriot = new Car();
uazpatriot.setAge (15);
Car fordm1 = new Car();
fordm1.setAge (95);
System.out.println("Lamborgini is " + lamborgini.getAge() + " years old");
lamborgini.carAge();
System.out.println("Ferrari is " + ferrari.getAge() + " years old");
ferrari.carAge();
System.out.println("UAZ Patriot is " + uazpatriot.getAge() + " years old");
uazpatriot.carAge();
System.out.println("Ford model 1 is " + fordm1.getAge() + " years old");
fordm1.carAge();
}
}
请帮帮我... 可能它应该在帖子中提供更多细节,但我不知道该放什么更多细节
【问题讨论】:
-
您没有设置年龄字段。相反,您设置了一个阴影变量。
-
将
public void setAge (int a) { int age = a; }更改为public void setAge (int a) { this.age = a; },以便您现在设置真实年龄字段。你甚至不需要this.部分,但我把它放进去是希望使更改更清晰,更难搞砸。 -
这不是 JavaScript。
标签: java