制作一系列对象时遇到麻烦

时间:2016-03-25 12:58:38

标签: java arrays object

我被要求通过使用数组在类中创建一组拖拉机,当我尝试创建一个对象数组时,我不断收到错误。

这是正确的方法吗?其他类中的其余代码是错误的,或者我是不是使用正确的方法来创建对象数组?

package testTractor;
class TestFleet {

  public static void main(String[] args) { 

      Tractor tractor = new Tractor();
      Loader loader = new Loader();
      Harvester harvester = new Harvester();

      Tractor[] fleet = new Tractor[3];

      fleet[0] = new tractor();

      fleet[1] = new loader();

      fleet[2] = new harvester();


}

  }

2 个答案:

答案 0 :(得分:1)

  1. 定义数组时,可以给它一个类型:

    Tractor[] fleet = new Tractor[3];

    您将拥有一个包含Tractor类型的3个元素的数组。这就是当您尝试添加Loader类型的元素时收到错误的原因。您只能添加一种类型(第3点)。

  2. 当您尝试添加元素时:

    fleet[0] = new tractor();

    这是错误的 - 套管 - 这种方式你指的是变量,而不是类。你不能从变量中实现(至少不是这样)。如果更改外壳,则会引用class Tractor

    fleet[0] = new Tractor();

  3. 基本OOP - 为了使所有这些工作像我想的那样工作,添加一个类Vehicle。扩展Vehicle的每个类都将成为一种载体,因此可以安全地添加到您的阵列中:

    class Vehicle{}

    并扩展所有其他类:

    public class Tractor extends Vehicle { ... }

  4. 通过这种方式,您可以添加更多“车辆”,例如“汽车”,“卡车”或其他......

    最后:

    Vehicle[] fleet = new Vehicle[3];
    fleet[0] = new Tractor();
    fleet[1] = new Loader();
    fleet[2] = new Harvester();
    

答案 1 :(得分:0)

尝试:

Tractor[] fleet = new Tractor[3];
fleet[0] = tractor;
fleet[1] = loader;
fleet[2] = harvester;

P.S。编辑(如果Loader和Harvester不扩展Tractor,则使用Object [])