我是新來的Java,現在已經服用一個療程的幾個星期,並已要求完成計劃包含以下信息:的Java - 理解繼承
設計的船舶類具有以下數據字段:
船舶名稱(字符串)的數據字段。
該船建造年份的數據字段(int)。
構造函數和適當的訪問器和增變器。
一個toString方法,用於顯示船名和建造年份。
設計擴展Ship類的CruiseShip子類。 CruiseShip類應具有以下內容:
乘客最大數量(一個int)的額外數據字段。
構造函數和適當的訪問器和增變器。
重寫toString方法的基類中的toString方法。 CruiseShip類的toString方法還應該包括最大乘客數限制 。
設計一個擴展Ship類的CargoShip類。貨物類別應具有以下內容:
貨運噸位(一個int)的額外數據字段。
構造函數和適當的訪問器和增變器。
重寫在基類toString方法甲toString方法。貨運艙的toString方法還應該包括貨物噸位 。
在適當類包括equals方法來測試,如果兩艘船都是平等的 - 他們應該被認爲是相等的,如果他們有 相同的名稱和建於同一年。
演示程序中的(ShipTester),其具有船舶的對象(它們中的至少5)的陣列的類。將各種Ship,CruiseShip, 和CargoShip對象分配給陣列元素(您可以對 對象和數據進行硬編碼)並打印出初始發貨配置。顯示 ,您可以在船舶的取樣 上同時使用訪問器和增變器方法(同樣,如果您喜歡 ,則可以在此硬編碼方法參數)。
我明白了什麼的問題是問的基礎,我也做了以下內容:
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
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...
}
}
我不知道要放什麼東西在main方法......我知道我要創建船舶的數組,但我不知道怎麼做,與貨船,遊船等...
輸出我應該有:
顯示船舶: 船[名稱:安妮女王復仇號年內置:1701]
郵輪[船[名稱:企業號航空母艦建造年份:2245]乘客:2400]
貨船[船[名稱:黑珍珠年份:1699],噸位:50000]
克魯斯船[船[名稱:USS航海年份:2371]乘客:2800]
貨船[船[名稱:勝利建成年份:1790],噸位:33100]
提示,你剛纔說的答案:* ...我必須創建一個船隻陣列... * –
'船舶[]船=新船[5];'然後分配'船[0] = ....'。你可以做到這一點,我敢肯定,只要給它一下,看看會發生什麼。 –
另外,您的'等號'方法在您的'Ship'類中不正確。它需要根據您的要求測試'yearBuilt'和'name'。 –