首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >初始化外部构造函数与内部构造函数

初始化外部构造函数与内部构造函数
EN

Stack Overflow用户
提问于 2020-02-29 19:09:01
回答 2查看 181关注 0票数 0

我想知道是应该在构造函数内部还是外部初始化ArrayList,如下所示。这两种方式有什么区别吗?如果没有,你认为在这个行业中最常见/最好的方法是什么?

初始化构造函数中的变量:

代码语言:javascript
复制
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
    }
}

对外部:

代码语言:javascript
复制
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
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-29 19:17:44

这两种方法没有区别。如果您是在活动或片段类中工作,那么最好在onCreate中初始化一个变量。在这种情况下,在构造函数之外初始化它的唯一优点是在调用onCreate之前需要加载其他函数。

但在一个类的情况下,则没有差别是由编码器的偏好决定的。

票数 1
EN

Stack Overflow用户

发布于 2020-02-29 19:35:01

在构造函数中初始化变量是更好的做法,也是更常见的做法。声明构造函数之外的所有变量并在其中初始化它们。假设要在cart类中初始化名为Customer的数组的大小。每个客户肯定不会购买与对方相同数量的商品。如果你这样写你的课:

代码语言:javascript
复制
public class Customer {
    private String name;
    private Item[] cart=new Item[5];

    public Customer(String name) {
        this.name = name;
    }

}

然后将所有客户的购买商品数量设置为5。另一方面,通过这样编写类:

代码语言:javascript
复制
public class Customer {
        private String name;
        private Item[] cart;

        public Customer(String name,int size) {
            this.name = name;
            cart=new Item[size];
        }
    }

此实现确保每个客户根据传递给构造函数中的参数size的内容,拥有自己的特定大小的购物车。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60468670

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档