是否有一种更简洁的方法来实例化对象-A的5,Object-B的3,Object-C,1的1的1个,所有方法都在一个方法内



我当前正在使用hyperskills.org上的对象模块工作。编码挑战之一是创建五个单位,三个骑士,一名医生。为我们授予每个对象的类定义,每个对象都有一个设置一个字符串字段的构造函数。

我按了提示,只是在提示中实例化了X-Class的X-number。

public static void createArmy(){
  Unit unit1 = new Unit("U1");
  Unit unit2 = new Unit("U2");
  Unit unit3 = new Unit("U3");
  Unit unit4 = new Unit("U4");
  Unit unit5 = new Unit("U5");
  Knight knight1 = new Knight("K1");
  Knight knight2 = new Knight("K2");
  Knight knight3 = new Knight("K3");
  General general1 = new General("G1");
  Doctor doctor1 = new Doctor("D1"); 
}

编译器接受我的答案,但说:"正确,但可以改善。">

请感谢您:还如何改进此代码?

您可以通过将单元和东西放入数组并使用循环来改进它。同样,添加一些参数将使以后调用此功能更容易。例如:

public static void createArmy(int units, int knights, int generals, int doctors){
   Unit unit = new Unit[units];
   Knight knight = new Knights[knights];
   General general = new Generals[generals];
   Doctor doctor = new Doctors[doctors];
   for(int x = 0; x < units;x++){
       unit[x] = new Unit("U"+(x+1));
   }
   for(int x = 0; x < knights;x++){
       knight[x] = new Knight("K"+(x+1));
   }
   for(int x = 0; x < generals;x++){
      general[x] = new General("G"+(x+1));
   }
   for(int x = 0; x < doctors;x++){
      doctor[x] = new Doctor("D"+(x+1));
   }
}

最新更新