2012-05-04 12 views
6

私はこのクラスのコンストラクタを持っています:クラスコンストラクタにパラメータがある場合、javaで配列を初期化するには?

publicカテゴリ(int max){ です。 。 。 }

問題は、このクラスの配列を作成したいのですが、どのように初期化するのですか?

プライベートカテゴリカテゴリ=新しいカテゴリ(最大)[4];

動作しません。

UPDATE

私はこのような何かをする必要がありますか?

プライベートカテゴリ[]カテゴリ=新しいカテゴリ[4];

各オブジェクトを初期化しますか?

+2

はい –

答えて

12

アレイを作成するときは、カテゴリの配列を作成しています。それは配列のインスタンスです。

カテゴリオブジェクトを配列に配置するときは、その時点でConst with Constraintを使用します。

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

は、各個々の要素を初期化配列最初

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

としてそれを初期化します。

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

は4つのヌルカテゴリでインスタンス化され、後で内容を自分で記入する必要があります。
それとも、試すことができます:

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

ます。また、インラインでそれを行うことができます - 配列の両方を作成し、一度自分のコンストラクタで開始された値を移入。 2つのパラメータを取るコンストラクタを持ち、これらの配列を構築したいと考えているFieldというクラスがあるとします。

Field[] fields = new Field[]{ 
    new Field(1, "Record_Type"), 
    new Field(3, "Record_SubType"), 
    new Field(6, "Row_Number"), 
    ... 
}; 
関連する問題