我´我用一个名为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;
因为我可以´不要在静态方法中使用非静态变量,这对我来说完全有意义。但后来我尝试为同一个类创建一个私有构造函数(使用name和transactions值),并在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);
}
我以为我必须在构造函数中添加static修饰符,因为静态方法addcustomer(),但是我的ide说了´构造函数中不允许使用。而且,这并不重要´对我来说没有任何意义,我可以像这样使用addcustomer()方法(没有静态in构造函数),那么为什么即使它´它不是一个静态的方法,它里面的变量也不是?
1条答案
按热度按时间rkue9o1l1#
我会这么做:
得到一个
Customer
类型,你只要Customer customer = new Customer(<name>, <transaction>)
. 如果你想打电话Customer.addCustomer(<name>, <transaction>)
如上图所示,您可以使用:构造函数方法必须与类同名(区分大小写)。它也需要
public ClassName
,没有通常的返回值。