初始化外部构造函数与内部构造函数
Initilizing outside constructor vs inside
我想知道是否应该在构造函数内部或外部初始化 ArrayList,如下所示。这两种方式有什么区别吗?如果没有,您认为业内最common/best的做法是什么?
正在构造函数中初始化变量:
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
}
}
两种方法没有区别。如果您在 activity 或片段 class 中工作,那么最好在 onCreate 中初始化一个变量。在这种情况下,在构造函数之外初始化它的唯一好处是,如果在调用 onCreate 之前需要加载其他函数。
但在class的情况下,则没有区别是编码器的偏好。
在构造函数中初始化一个变量是更好的做法,也更常见。在构造函数外部声明所有变量并在内部初始化它们。假设要在Customer
class 中初始化名为cart
的数组的大小。每个客户肯定不会购买与其他客户相同数量的商品。如果你这样写 class:
public class Customer {
private String name;
private Item[] cart=new Item[5];
public Customer(String name) {
this.name = name;
}
}
那么您已经将所有位顾客的购买数量设置为5。
另一方面,通过这样写 class:
public class Customer {
private String name;
private Item[] cart;
public Customer(String name,int size) {
this.name = name;
cart=new Item[size];
}
}
根据传递给构造函数中的参数 size
的内容,此实现确保每个客户都有自己的特定大小的购物车。
我想知道是否应该在构造函数内部或外部初始化 ArrayList,如下所示。这两种方式有什么区别吗?如果没有,您认为业内最common/best的做法是什么?
正在构造函数中初始化变量:
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
}
}
两种方法没有区别。如果您在 activity 或片段 class 中工作,那么最好在 onCreate 中初始化一个变量。在这种情况下,在构造函数之外初始化它的唯一好处是,如果在调用 onCreate 之前需要加载其他函数。
但在class的情况下,则没有区别是编码器的偏好。
在构造函数中初始化一个变量是更好的做法,也更常见。在构造函数外部声明所有变量并在内部初始化它们。假设要在Customer
class 中初始化名为cart
的数组的大小。每个客户肯定不会购买与其他客户相同数量的商品。如果你这样写 class:
public class Customer {
private String name;
private Item[] cart=new Item[5];
public Customer(String name) {
this.name = name;
}
}
那么您已经将所有位顾客的购买数量设置为5。 另一方面,通过这样写 class:
public class Customer {
private String name;
private Item[] cart;
public Customer(String name,int size) {
this.name = name;
cart=new Item[size];
}
}
根据传递给构造函数中的参数 size
的内容,此实现确保每个客户都有自己的特定大小的购物车。