2017-06-22 70 views
-7

的值,我得到這個代碼示例的Java如何從不同類

public class Plane { 
private String id; 
private Flight flight; 
private int seats; 

public int getSeats() { 
    return seats; 
} 

} 

public class Flight { 
private String id; 
private Set<Passenger> passengers; 
private Set<Employee> crew; 
private String destination; 
private int flighTime; // minutes past Midnight 
private int flightDuration; // in minutes 
} 

現在我想實現飛行的方法,Add1Passenger,所以我需要仰望飛機,如果有免費座位(座位數量少於Flight的乘客數量),但我不知道該怎麼做。還是有更好的解決方案?

+4

你有沒有考慮過谷歌上搜索逐字您的標題?粗略搜索除了關於此問題的許多其他資源之外,還單獨顯示了此網站上的無數重複內容。聽起來你錯過了面向對象編程的一些基礎知識。這不是你可以指望我們教你的東西。你需要拿起一個教程或其他介紹性材料。在再次詢問之前,請閱讀[如何提出一個好問題?](https://stackoverflow.com/help/how-to-ask) – tnw

+0

您可以使用POJO類並使用setter和getter方法初始化值。 – user1918566

回答

1

您應該爲您的Plane類添加一個getter方法,它是公共的。

public class Plane { 
    private String id; 
    private Flight flight; 
    private int seats; 

    public int getSeats(){ 
     return seats; 
    } 
} 

編輯

您可以讓飛機是飛行的特性,並通過在通過構造函數。所以,現在你有飛機與飛行相關的

public class Flight { 
    private String id; 
    private Set<Passenger> passengers; 
    private Set<Employee> crew; 
    private String destination; 
    private int flighTime; // minutes past Midnight 
    private int flightDuration; // in minutes 
    private Plane aircraft; // the aircraft assigned to the flight 

    public Flight(Plane airplane){ 
     aircraft = airplane; 
    } 

    public Boolean addPassenger(Passenger passenger){ 
     if(aircraft.getSeats() > passengers.size()){ 
      passenges.add(passenger); 
      return true; 
     } 
     return false; 
    } 
} 

從理論上講,你可以走在平面作爲參數傳遞給addPassenger的其他路線,但一個能有這樣的一個平面的不同實例可以傳遞的參數進入航班,反之亦然,如果你通過飛機飛往飛機對象,你可以在飛機上有不同的航班,如果這是一個合法的業務需求,這可能是好的,但如果航班有不同的目的地,這是沒有意義的。

+0

是的,但是這個getter無法從Flight類中獲得,因爲這個類不知道Plane類的任何內容,所以也許Add1Passenger方法應該是Plane方法? – J1rka

+0

@ J1rka你有GOT拿起一個基本的教程。這是不可能的,你只是不知道如何做一些基本的面向對象編程。 – tnw

+0

爲什麼飛行班不知道飛機班?你有乘客,乘務人員的目的地等等。乘客將乘坐什麼飛機?你怎麼能有一個航班的飛機的所有細節,除了你要飛的飛機? –

0

在這裏你是U還可以使第三類,你同時存儲類,你要時刻Inicialize新對象在構造函數中不要忘記

public class Plane { 
private String id; 
private Flight flight; 
private int seats; 

Plane(Flight flight) { 
    this.flight = flight; 
} 
public void addPasagerToFlight() { 
    if (this.seats > flight.getPassagers()) { 
     flight.addPasagerToFlight(); 
    } 
    } 
    } 

public class Flight { 
private String id; 
private Set<Passenger> passengers; 
private Set<Employee> crew; 
private String destination; 
private int flighTime; // minutes past Midnight 
private int flightDuration; // in minutes 

// for example use LinkedList ArrayList HashSet .... 
public void addPasagerToFlight(Passenger pas) { 
    this.passengers.add(pas); 
} 

}