[英]Multiple seperate objects constructed from same class
初级java程序员
我创建了一个类 Car
public class Car {
private static final double MILES_PER_YEAR = 20000;
private static final double GAS_PRICE = 2.50;
private static double pricePerYear;
private static double totalPrice;
public Car(double initialPrice, double milesPerGallon) {
pricePerYear = (MILES_PER_YEAR / milesPerGallon);
totalPrice = initialPrice;
}
然后在我的主函数中,我构造了两个 Car 对象
Car civic = new Car(22000, 35.5);
Car prius = new Car(27135, 55.5);
但是,当我使用 civic.getTotalPrice() 和 prius.getTotalPrice() 检查这些对象的属性时,它们总是相同的。 第二个对象构造总是覆盖第一个,当我像上面 ^^ 那样构造它们并获得两个价格时,它们都返回 27135。如果我这样定义它们,反之亦然
Car prius = new Car(27135, 55.5);
Car civic = new Car(22000, 35.5);
对于上面的部分,civic.getTotalPrice() 和 prius.getTotalPrice() 的返回值为 22000
我认为这个问题与 public、private、static、void、final 等关键字有关。因为我不完全理解它们的意思是,但我很困惑为什么代码仍然运行,如果它是一个这样的关键字问题。
我的主要目标是比较单独对象的属性并单独修改它们,如果这有助于任何人了解我的意图。
使成员变量非静态:
public class Car {
private static final double MILES_PER_YEAR = 20000;
private static final double GAS_PRICE = 2.50;
private double pricePerYear;
private double totalPrice;
public Car(double initialPrice, double milesPerGallon) {
pricePerYear = (MILES_PER_YEAR / milesPerGallon);
totalPrice = initialPrice;
}
}
static
具体意味着成员不属于一个特定实例,而是由所有成员共享。 这对于诸如MILES_PER_YEAR
和GAS_PRICE
值GAS_PRICE
:无论您定义什么汽车,这些值始终相同。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.