-1

我正在尝试创建一个包含 Boat 对象的 Fleet 数组。我目前收到一个错误,即这些无法相互转换。

public class Fleet {
    public static void main(String[] args){
        Fleet[] boats = new Boat[args.length];
    }
}
4

2 回答 2

6

你不想这样做。Fleet 应该包含一个 Boat 数组,而不是一个 Fleet 数组。

IE,

public class Fleet {
  private Boat[] boats;

  public Fleet(int size){
    boats = new Boat[size];
    for (Boat boat : boats) {
      boat = new Boat();
    }
  }

  public static void main(String[] args) {
    int boatCount = 10;
    Fleet fleet = new Fleet(boatCount);
  }
}

否则,就像说 Fleet 是 Fl​​eet 的集合,但它不是。

此外,您的 main 方法可能不应该包含此数组,而是 Fleet 对象应该包含。

请注意,任何一个类都不应扩展另一个类,否则就像说 Zoo 扩展 Animal 或 Animal 扩展 Zoo。动物园包含动物,舰队包含船(实际上是船)。

于 2013-10-29T03:50:57.423 回答
1

这仅在BoatFleet

否则你可以继续,

  Fleet[] boats = new Fleet[args.length];
于 2013-10-29T03:52:04.907 回答