2017-06-22 67 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); 
} 

}