我想知道是应该在构造函数内部还是外部初始化ArrayList,如下所示。这两种方式有什么区别吗?如果没有,你认为在这个行业中最常见/最好的方法是什么?
初始化构造函数中的变量:
public class Customer {
private String name;
private ArrayList<Double> transactions;
public Customer(String name, double initialAmount) {
this.name = name;
this.transactions = new ArrayList<Double>();
}
public void addTransaction(double amount) {
this.transactions.add(amount); // autoboxing
}
}对外部:
public class Customer {
private String name;
private ArrayList<Double> transactions = new ArrayList<Double>();
public Customer(String name, double initialAmount) {
this.name = name;
}
public void addTransaction(double amount) {
this.transactions.add(amount); // autoboxing
}
}发布于 2020-02-29 19:17:44
这两种方法没有区别。如果您是在活动或片段类中工作,那么最好在onCreate中初始化一个变量。在这种情况下,在构造函数之外初始化它的唯一优点是在调用onCreate之前需要加载其他函数。
但在一个类的情况下,则没有差别是由编码器的偏好决定的。
发布于 2020-02-29 19:35:01
在构造函数中初始化变量是更好的做法,也是更常见的做法。声明构造函数之外的所有变量并在其中初始化它们。假设要在cart类中初始化名为Customer的数组的大小。每个客户肯定不会购买与对方相同数量的商品。如果你这样写你的课:
public class Customer {
private String name;
private Item[] cart=new Item[5];
public Customer(String name) {
this.name = name;
}
}然后将所有客户的购买商品数量设置为5。另一方面,通过这样编写类:
public class Customer {
private String name;
private Item[] cart;
public Customer(String name,int size) {
this.name = name;
cart=new Item[size];
}
}此实现确保每个客户根据传递给构造函数中的参数size的内容,拥有自己的特定大小的购物车。
https://stackoverflow.com/questions/60468670
复制相似问题