我被要求通过使用数组在类中创建一组拖拉机,当我尝试创建一个对象数组时,我不断收到错误。
这是正确的方法吗?其他类中的其余代码是错误的,或者我是不是使用正确的方法来创建对象数组?
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();
}
}
答案 0 :(得分:1)
定义数组时,可以给它一个类型:
Tractor[] fleet = new Tractor[3];
您将拥有一个包含Tractor
类型的3个元素的数组。这就是当您尝试添加Loader
类型的元素时收到错误的原因。您只能添加一种类型(第3点)。
当您尝试添加元素时:
fleet[0] = new tractor();
这是错误的 - 套管 - 这种方式你指的是变量,而不是类。你不能从变量中实现(至少不是这样)。如果更改外壳,则会引用class Tractor
:
fleet[0] = new Tractor();
基本OOP - 为了使所有这些工作像我想的那样工作,添加一个类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();
答案 1 :(得分:0)
尝试:
Tractor[] fleet = new Tractor[3];
fleet[0] = tractor;
fleet[1] = loader;
fleet[2] = harvester;
P.S。编辑(如果Loader和Harvester不扩展Tractor,则使用Object [])