2017-08-25 5 views
0

第1クラスのコンストラクタに格納されているデフォルト値を第2クラスのコンストラクタに割り当てる必要があります 次の2番目のクラスは、Guestクラスコンストラクタのデフォルト値を呼び出しています。別のクラスの別のコンストラクタのデフォルトのコンストラクタ値を割り当てます

public class AuditoriumSeating { 
    Guest[][] seating; 

    public AuditoriumSeating(int rowNum, int columnNum) { 
     seating = new Guest[rowNum][columnNum]; 
     Guest c; 
     for (int i=0; i < rowNum; i++) { 
     for(int j=0; j < columnNum; j++) { 
      seating[i][j] = ; 
     } 
     } 
    } 
} 

しかし、問題は私がseating[i][j]を割り当てるために何を把握することはできませんので、私は、私は私の以前のクラスのコンストラクタに割り当てられているデフォルトコンストラクタ値で、この配列seating[][]を割り当てることができます。ここ は私のゲストクラスのコンストラクタです:

public class Guest { 

    public String lastName; 
    public String firstName; 

    public Guest() 
    { 
     firstName="???"; 
     lastName="???"; 
    } 
} 
+0

あなたのゲストクラスを投稿してください。 –

+0

あなたが求めていることは明確ではありません。私が言うことができる限り、あなたは座席[i] [j] =新しいゲスト(/ * ...必要ならばここにargsを置くことができます... * /); '...? –

+0

変数を非公開にして、ゲッターとセッターメソッドでアクセスしてください –

答えて

0

Guestは、あなたが最高だと思うものは何でもデフォルトおそらくnullを割り当てる必要があります。

public Guest() { 
    firstName = null; 
    lastName = null; 
} 

そして、あなたのコードを作成:

seating[i][j] = new Guest(); 

しかし

  • Guestおそらく引数

    public Guest(String _firstName, String _lastName) { 
        firstName = _firstName; 
        lastName = _lastName; 
    } 
    
  • GuestfirstNamelastNameはおそらくpublicすべきではないとして、それらを割り当てるための初期値を受け取るコンストラクタを提供する必要があります。代わりにprivateにし、アクセサ関数を使用してください。これについては意見が異なる可能性がありますが、Javaの圧倒的なコンベンションであり、心配はいりません.JVMはです。が効率的です。

  • (主観)意見が異なりますが、私はインスタンスメンバを参照すると、変数、引数、およびインスタンスメンバーの間での混乱を避けることができますときは、常に明示的にthisを使用して見つける:

    再び
    public Guest(String firstName, String lastName) { 
        this.firstName = firstName; 
        this.lastName = lastName; 
    } 
    

    、しかし、それは意見の問題ですとスタイル。

関連する問題