我可以在构造函数中包含哪些内容?

jam*_*ean 1 java constructor

我正在开发我的第一个Java程序作为一项功课.任务是有一个编目程序来存储和操作某些产品.

我有两个类,一个目录类和一个产品类.产品类存储有关我的产品的数据(ID,价格,颜色).目录列表包含一系列产品.

我的目录代码是这样的:

public class Catalog() 
    {
     static Product[] productList;

     Catalog () {
     productList = new Product[99];
     }

     populateCatalog {
     // Assign each item product in the product array an ID, Price & Color
     }
 }
Run Code Online (Sandbox Code Playgroud)

productList在整个程序中没有变化,因此将populateCatalog方法中的代码添加到构造函数中是不好的做法吗?

hvg*_*des 5

你在构造函数中做的事情很好.另一个选择就是初始化productList你声明它的时候,比如

static Product[] productList = new Product[99];

然而....

你不想productList保持静止.就目前而言,每个Catalogue实例都没有productList; 整个类有一个productList在所有实例中共享的类(这static意味着什么).每个目录都有自己的产品列表是否正确?所以改变你的声明

private Product[] productList;

这样,Catalog的每个实例都将拥有自己的productList.

  • 我认为这已经超越了问题.这是关于建设者; 我们正在介绍集合,泛型,不可变等等 - 所有这些东西都会在以后出现.此外,数组是完全合法的数据结构 (2认同)