从不同类的另一个构造函数中分配默认构造函数值

时间:2017-08-25 07:55:12

标签: java constructor

我需要将存储在我的第一个类构造函数中的默认值分配给第二个类构造函数 下面显示我的第二个类,我调用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="???";
   }
}

1 个答案:

答案 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;
    }
    
  • Guest&#39; firstNamelastName可能不应该public;相反,使它们private并使用访问器功能。意见可能会有所不同,但它是Java中压倒性的惯例,并且不用担心,JVM 非常善于使这些访问者高效。

  • (主观)意见各不相同,但我发现当引用实例成员有助于避免变量,参数和实例成员之间的混淆时,总是明确地使用this

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

    但是,这仍然是一种意见和风格问题。