2012-05-04 20 views
6

Tengo este constructor de clase:¿Cómo inicializar una matriz en java cuando el constructor de la clase tiene parámetros?

Categoría pública (int max) { . . . }

Lo que pasa es que quiero hacer una matriz de esta clase, ¿cómo la inicializo?

privado Categorías de categoría = categoría nueva (max) [4];

No funciona.

ACTUALIZACIÓN

¿Es necesario hacer algo como esto?

private Categoría [] categories = new Category [4];

¿Y luego inicializar cada objeto?

+2

si a su edición. –

Respuesta

12

Cuando está creando una matriz, está creando una matriz de Categoría. Esa es una instancia de matriz.

Cuando está completando la matriz con objetos Categoría, en ese punto usa la Categoría con Const.

Category [] categories = new Category[4]; 
categories[0] = new Category(10); 
3

inicializarlo como una matriz primero

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

Entonces inicializar cada elemento individual.

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

se creará una instancia con 4 categorías nulos, lo que tiene que llenar el contenido usted mismo más tarde.
O puede probar:

private Category[] categories = {new Category(max), new Category(max), new Category(max), new Category(max)}; 
2

También puede hacerlo en línea - hacen tanto la matriz y rellenarla con los valores iniciados con sus constructores a la vez. Supongamos que tiene una clase llamada Campo que tiene un constructor tomando dos parámetros y desea construir una matriz de estos ...

Field[] fields = new Field[]{ 
    new Field(1, "Record_Type"), 
    new Field(3, "Record_SubType"), 
    new Field(6, "Row_Number"), 
    ... 
}; 
Cuestiones relacionadas