[英]Troubles with making an array of objects
我被要求通过使用数组在一个班级中制作一组拖拉机,当我尝试创建一个对象数组时,我不断收到错误消息。
这是正确的方法吗?我的其余代码在其他类中是错误的,还是我没有使用正确的方法来创建对象数组?
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();
}
}
当你定义数组时,你给它一个类型:
Tractor[] fleet = new Tractor[3];
您将拥有Tractor
类型的 3 个元素的数组。 这就是当您尝试添加Loader
类型的元素时收到错误的原因。 您可以只添加一种类型(第 3 点)。
当您尝试添加元素时:
fleet[0] = new tractor();
这是错误的 - 大小写 - 这样你就引用了一个变量,而不是类。 你不能从变量中实例化(至少不会像这样)。 如果您更改外壳,您将参考class Tractor
:
fleet[0] = new Tractor();
基本的 OOP - 为了让所有这些都像我想的那样工作,添加一个类Vehicle
。 每个扩展 Vehicle 的类都将是一个 Vehicle,因此可以安全地添加到您的数组中:
class Vehicle{}
并将其扩展到所有其他类:
public class Tractor extends Vehicle { ... }
通过这种方式,您可以添加更多“车辆”,例如“汽车”、“卡车”或其他任何东西……
到底:
Vehicle[] fleet = new Vehicle[3];
fleet[0] = new Tractor();
fleet[1] = new Loader();
fleet[2] = new Harvester();
尝试:
Tractor[] fleet = new Tractor[3];
fleet[0] = tractor;
fleet[1] = loader;
fleet[2] = harvester;
PS 编辑(如果 Loader 和 Harvester 不扩展 Tractor,则使用 Object[])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.