我是Java的新手,已经学习了两周的课程,并被要求完成一个包含以下信息的程序:
设计具有以下数据字段的船级:
船名的数据字段(字符串)。
船舶建造年份的数据字段(整数)。
构造函数以及适当的访问器和修改器。
一个toString方法,用于显示飞船的名称和建造年份。
设计一个CruiseShip子类,以扩展Ship类。 CruiseShip类应具有以下内容:
一个额外的数据字段,用于表示最大乘客数(整数)。
构造函数以及适当的访问器和修改器。
一个toString方法,它重写基类中的toString方法。 CruiseShip类的toString方法还应包括
最大乘客限制。
设计一个扩展Ship类的CargoShip类。 CargoShip类应具有以下内容:
吨位货物容量的额外数据字段(整数)。
构造函数以及适当的访问器和修改器。
一个toString方法,它重写基类中的toString方法。 CargoShip类的toString方法还应包括
货物吨位。
在适当的类别中,包括一个equals方法,以测试两艘船是否相等-如果它们具有相同的
同名,并于同年建造。
在具有Ship对象数组(其中至少有5个)的程序(ShipTester)中演示这些类。分配各种Ship,CruiseShip,
和CargoShip对象到数组元素(您可以对
对象和数据),并打印出初始飞船配置。节目
您可以在采样中同时使用accessor和mutator方法
的船(再次,您可以在此处将方法参数硬编码为
你喜欢)。
我了解问题的基础,并且已经完成以下工作:
Ship.java
public class Ship {
private String name;
private int yearBuilt;
public Ship(String name, int yearBuilt) {
this.name = name;
this.yearBuilt = yearBuilt;
}
public String returnName() {
return this.name;
}
public int returnYear() {
return this.yearBuilt;
}
public boolean equals(Ship other) {
return false;
}
public String toString() {
return "[Name: " + this.name + ". Year built: " + this.yearBuilt + "]";
}
}
CruiseShip.java
public class CruiseShip extends Ship {
private int maxPassengers;
public CruiseShip() {
super("USS Enterprise", 2245);
this.maxPassengers = 2400;
}
public CruiseShip(String name, int yearBuilt, int maxPassengers) {
super(name, yearBuilt);
this.maxPassengers = maxPassengers;
}
public String toString() {
return "Cruise Ship" + super.toString() + ", Passengers: " + this.maxPassengers + "]";
}
}
CargoShip.java
public class CargoShip extends Ship {
private int cargoCapacity;
public CargoShip() {
super("Black Pearl", 1699);
this.cargoCapacity = 50000;
}
public CargoShip(String name, int yearBuilt, int cargoCapacity) {
super(name, yearBuilt);
this.cargoCapacity = cargoCapacity;
}
public String toString() {
return "Cargo Ship" + super.toString() + ", Tonnage: " + this.cargoCapacity + "]";
}
}
并在我的测试器文件中-ShipTester.java
public class ShipTester {
public static void main(String []args) {
//I don't know what to put over here...
}
}
我不知道要在主要方法中放什么...我确实知道我必须创建一艘船,但我不知道如何用货船,游轮等来做...
我应该有的输出:
显示船只:
船[名称:安妮女王复仇年份:1701年]
游轮[船舶[名称:USS企业年建:2245],乘客:2400]
货船[船[名称:黑珍珠建造年代:1699],吨位:50000]
游轮[船[名称:美国航海家号建造年代:2371],乘客:2800]
货船[船[名称:建造年份:1790],吨位:33100]
最佳答案
扩展到Hovercraft所说的内容,但您可能想对对象数组使用ArrayList。
Creating an Arraylist of Objects
例
ArrayList<Ship> myArray = new ArrayList();
myArray.add(new CargoShip("TheKing",1990,10000));
myArray.add(new CruiseShip("Princess",2000,5000));
等等
[编辑]忘记了您也需要打印
您使用简单的for循环进行打印,例如:
for (int i = 0; i < myArray.size(); i++) {
System.out.println(myArray.get(i).toString());
}
注意-这不是我不想跳过您的学习过程的确切答案。但这至少应该使您对可以采取的道路有所了解...