Java 制作对象数组的麻烦
我被要求通过使用数组在一个类中创建一组拖拉机,当我试图创建一个对象数组时,我总是会出错 这是正确的方法吗?我的其余代码在其他类中出错了,还是我没有使用正确的方法生成对象数组Java 制作对象数组的麻烦,java,arrays,object,Java,Arrays,Object,我被要求通过使用数组在一个类中创建一组拖拉机,当我试图创建一个对象数组时,我总是会出错 这是正确的方法吗?我的其余代码在其他类中出错了,还是我没有使用正确的方法生成对象数组 package testTractor; class TestFleet { public static void main(String[] args) { Tractor tractor = new Tractor(); Loader loader = new Loader();
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];
fleet[0] = tractor;
fleet[1] = loader;
fleet[2] = harvester;
p.S.已编辑(如果装载机和收割机未伸出拖拉机,则使用对象[])
Tractor[]车队=新拖拉机[3]代码>
您将拥有一个包含3个元素的数组,类型为Tractor
。这就是为什么在尝试添加类型为Loader
的元素时会收到错误。您可以只添加一种类型(第3点)
fleet[0]=新拖拉机()代码>
这是错误的-套管-这样你指的是变量,而不是类。不能从变量实例化(至少不能这样)。如果更换机壳,请参考拖拉机的等级:
fleet[0]=新拖拉机()代码>
Vehicle
。扩展车辆的每个类都将是车辆,因此可以安全地添加到您的阵列中:
class车辆{}
并将其扩展到所有其他类别:
公共级拖拉机扩展车辆{…}
Vehicle[] fleet = new Vehicle[3];
fleet[0] = new Tractor();
fleet[1] = new Loader();
fleet[2] = new Harvester();
你会犯哪些错误?此外,类的名称有一个大写的首字母(正如它们应该的那样),但您使用小写的首字母调用构造函数:
new tractor(),不需要调用new x()它给我的错误类型是,它根本找不到任何其他变量,即使在同一个包中的其他类中都有。装载机/收割机都继承自拖拉机类try dofleet[0]=拖拉机
Ok,legit。但接下来呢。。。您的对象数组可以做什么?更好的解决方案是使用扩展类或实现接口。@Bakudan Sure。。。我可能会为拖拉机、装载机和收割机组制作一个Biggies界面。但在发布的代码中,不清楚Loader是否扩展了拖拉机-拖拉机肯定不是一个接口)。是的,但我打赌你可以做得更多/更好:)我可以建议更复杂;p-实现接口的抽象类车辆。这样,您将保证所有的通用操作,即使您对类的用户很慷慨,您也可以添加一个基本实现。