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[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)};