我正在用一个名为 addCustomer 的静态方法在 Java 中创建一个类,它为我返回这个类的一个实例,如下所示:
import java.util.ArrayList;
public class Customer {
private ArrayList<Double> transactions;
private String name;
public static Customer addCustomer(String name, Double transaction){
this.name = name;
return new Customer();
}
}
它在 addCustomer 方法的第一行给了我一个错误
this.name = name;
因为我不能在静态方法中使用非静态变量,这对我来说完全有意义。但后来我尝试为同一个类创建一个私有构造函数(具有名称和事务值),并在我的 addCustomer 方法中使用它而不是 Customer()。像这样:
private Customer(String name, Double transaction){
this.name = name;
transactions = new ArrayList<Double>();
transactions.add(transaction);
}
public static Customer addCustomer(String name, Double transaction){
return new Customer(name,transaction);
}
由于静态方法 addCustomer(),我认为我必须在构造函数中放置静态修饰符,但我的 IDE 说它不允许在构造函数中。而且,这对我来说没有任何意义,我可以像这样使用 addCustomer() 方法(在构造函数中没有静态),那么即使它不是静态方法和里面的变量,为什么我仍然可以使用它不是很好吗?