0

さて、私のクラス図ではそれが示されています

void setVegetable( String veg[] )
String veg[] getVegetables()

このためのステートメントをどのようにコーディングするのか疑問に思っていますか?

public void setVegetables( String veg[] )  
{  
}

また、インスタンス変数をどのように記述しますか?
私はまだそれを次のように書きますか

private string vegetables = "";
4

6 に答える 6

3

簡単な答えは、次のようなメンバー定義を使用することです。

private String[] vegetables;

そして、このようなセッター:

public void setVegetables( String veg[] ) {  
    vegetables = veg;
}

ただし、配列は変更可能であることに注意してください。つまり、上記のセッターのように配列を直接格納すると、呼び出し元は配列の内容を変更できるため、配列の内容をコピーすることをお勧めします。より良いカプセル化が必要です。ただし、大きな配列を操作する場合、これはパフォーマンスに影響を与えます。この場合、setter と getter は次のようになります。

public void setVegetables( String veg[] ) {  
    vegetables = Arrays.copyOf(veg, veg.length);
}

public String[] getVegetables() {  
    return Arrays.copyOf(vegetables, vegetables.length);
}
于 2012-12-03T09:16:22.407 に答える
0

次のように初期化するときに、ローカル変数に値を割り当てることができます。

private String[] vegetables = new String[]{"Carrot", "Parsnip"};
于 2012-12-03T09:12:11.127 に答える
0

これは次のようになります:

public void setVegetables( String[] veg ) { }

于 2012-12-03T09:10:18.207 に答える
0

変数を変更します:

private String vegetables;

配列に:

private String vegetables[];

次に、通常、setter メソッドと getter メソッドを使用してインスタンス配列を設定および取得します。

于 2012-12-03T09:09:53.900 に答える
0

次のようなものが必要です

private String[] vegetables;

そしてセッターメソッド

public void setVegetables( String[] veg )  { this.vegetables = veg; )

またはコンパイル エラーが発生する - の配列はと同じでStringはありませんString

于 2012-12-03T09:08:28.177 に答える
0

クラス図によると、見ているインスタンス変数は文字列配列です。したがって、インスタンス メンバーも String[] でなければなりません。宣言は次のようになります

private String[] vegetables;
public void setVegetables( String vegetables[] ) {  
    this.vegetables = vegetables;
}

public String[] getVegetables() {  
    return vegetables;
}
于 2012-12-03T09:29:48.460 に答える