我是编程新手,也是 Java 新手。我现在正在尝试的是使用参数化构造函数,然后通过特定方法使用创建的对象。这是我的代码:
public class Car {
int fuelcap;
int mpg;
Car(int f, int m) { //here
fuelcap = f; //and here
mpg = m; //and here
}
int range() {
return mpg * fuelcap;
}
public static void main(String[] args) {
Car sedan = new Car(16, 21);
Car sportscar = new Car(14, 16);
System.out.println(sedan.range());
System.out.println(sportscar.range());
}
}
问题是,我不知道为什么构造函数 Car - 'int f' 和 'int m' 的参数与字段: 'int Fuelcap;' 不同 'int mpg;'。我们不能像这样创建构造函数吗:
Car(int fuelcap, int mpg){
}
然后在创建对象时将值传递给这些参数?
最佳答案
不,你不能。您必须将构造函数参数分配给构造函数主体中的类字段,否则它们将不会被保存。这就是 Java 的工作原理。构造函数参数没有什么“神奇”之处。
此外,请注意正确的风格:
Car(int fulecap, int mpg) {
this.fuelcap = fuelcap;
this.mpg = mpg;
}
如果您的字段比 ctor 参数多,那也没关系。只需将构造函数视为创建对象后调用的普通方法即可。 (最后一句话只是有点正确,但会为您提供用于此目的的正确想法。)
关于Java参数化构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37803419/