14

I have this class constructor:

public Category(int max){
...
}

The thing is, I want to make an array of this class, how do I initialize it?

private Category categories = new Category(max)[4];

Does not work.

UPDATE

Do I need to do something like this?

private Category[] categories = new Category[4];

And then initialize each object?

Akshay Pethani
  • 2,210
  • 2
  • 29
  • 41
Moises Jimenez
  • 1,942
  • 3
  • 19
  • 43

4 Answers4

18

When you are making an array , you are creating an array of Category. That s an instance of array.

When you are populating the array with Category objects, at that point you use the Category with Const.

Category [] categories = new Category[4];
categories[0] = new Category(10);
DarthVader
  • 49,515
  • 70
  • 199
  • 295
9

You can also do that in-line - make both the array and populate it with values initiated with their constructors at once. Suppose you have a class called Field that has a constructor taking two parameters and you want to construct an array of these ...

Field[] fields = new Field[]{
    new Field(1, "Record_Type"),
    new Field(3, "Record_SubType"),
    new Field(6, "Row_Number"),
    ...
};
Mr. Napik
  • 5,271
  • 3
  • 23
  • 18
7
private Category[] categories = new Category[4];

Will be instantiated with 4 null categories, you have to fill the content yourself later.
Or you can try:

private Category[] categories = {new Category(max), new Category(max), new Category(max), new Category(max)};
Jean-Bernard Pellerin
  • 12,351
  • 9
  • 57
  • 76
3

Initialize it as an array first

Category[] categories = new Categories[4];
categories[0] = new Category(max);

Then initialize each individual element.

Mike McMahon
  • 5,537
  • 2
  • 29
  • 42