이해 상속 :자바 - 나는 자바에 새로 온 사람과 지금 주 동안 수강 한 다음과 같은 정보와 함께 프로그램을 완료하기 위해 요청을받은
디자인 배 클래스의 데이터 필드는 다음과 같습니다.
우주선 이름 (문자열)에 대한 데이터 필드.
우주선이 지어진 해 (int)의 데이터 필드.
생성자와 적절한 접근 자 및 변경자.
배의 이름과 빌드 된 연도를 표시하는 toString 메서드입니다.
디자인 선박 클래스를 확장하는 cruiseship와 서브 클래스
. CruiseShip 클래스는 다음을 가져야합니다.
최대 승객 수 (int)에 대한 추가 데이터 필드.
생성자와 적절한 접근 자 및 변경자.
기본 클래스의 toString 메서드를 재정의하는 toString 메서드입니다. CruiseShip 클래스의 toString 메소드에는 최대 승객 한도 인 도 포함되어야합니다.
Ship 클래스를 확장하는 CargoShip 클래스를 설계하십시오. CargoShip 클래스는 다음이 있어야합니다
톤의화물 용량 (int 형)에 대한 추가 데이터 필드.
생성자와 적절한 접근 자 및 변경자.
기본 클래스의 toString 메서드를 재정의하는 toString 메서드입니다. CargoShip 클래스의 toString 메서드에는 화물 톤도 포함되어야합니다. 적절한 클래스에서
- 두 선박이 동일한 경우 테스트 방법과 동일 포함 - 그들이이 같은 이름을 가지고있는 경우 서로 동일한 것으로 간주되어야하고, 같은 해에 건설되었다.
Ship 개체 (적어도 5 개)의 배열을 가진 프로그램 (ShipTester)에서 클래스를 보여줍니다. 배열 요소에 다양한 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
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 + "]";
}
}
내 테스터 파일에 5,- ShipTester.java
public class ShipTester {
public static void main(String []args) {
//I don't know what to put over here...
}
}
내가 main 메소드에 넣어 해야할지 모르겠어 ... 난 선박의 배열을 만들 필요가 알고하지만 난 않습니다 수행하는 방법을 모르는 내가 했어야 해요 화물선, 유람선 등등 ...
출력과 :
표시 선박 : 선박 [이름 : 퀸 앤스 복수 년도 내장 : 1701]
012 3,516,크루즈 선박 [선박 [이름 : USS 엔터프라이즈 년도 : 2245, 승객 : 2400]
화물선 [선박 [이름 : 블랙 펄 년도 건설 : 1699, 톤수 : 50000]
크루즈 선박 [선박 [이름 : USS 보이저 년도 : 2371, 승객 : 2800]
화물선 [선박 [이름 : 승리 건축 년도 : 1790], 톤수 : 33100]
힌트, 당신은 방금 대답을 말했다 : * ... 나는 배의 배열을 만들어야 만한다. * –
'Ship [] ships = new Ship [5]; 그리고 배'[0] = ....'. 당신은 이것을 할 수 있습니다, 나는 확신합니다, 그냥 가면서 어떻게되는지보십시오. –
또한'Ship' 클래스에서'equals' 메소드가 올바르지 않습니다. 요구 사항에 따라'yearBuilt'와'name'을 테스트해야합니다. –