我对 Java 很陌生,对编程也比较陌生。我有 3 个相互连接的类(class)。
第 1 类:飞行
public class Flight {
private int flightNumber;
Passenger passenger1 = null; // two objects?
Passenger passenger2 = null;
private int confirmedPassengers = 0;
Passenger bagsChecked;
//private boolean bagsLoaded;
public Flight(int fn, int cf){
flightNumber = fn;
//passenger1 = p1;
//passenger2 = p2;
confirmedPassengers = cf;
//bagsChecked = bc;
}
public boolean addPassenger(Passenger p){
if (confirmedPassengers == 0){
passenger1= p;
confirmedPassengers+=1;
System.out.println("P1 has been added.");
return true;
}
if (confirmedPassengers == 1){
passenger2 = p;
confirmedPassengers+=1;
System.out.println("P2 has been added");
return true;
}
else{
System.out.println("This passenger was not added because the capacity is full.");
return false;
}
}
}
2 类:乘客
public class Passenger {
private String name;
Flight flight;
private int bagsChecked;
private String confirmationNumber;
public Passenger(String n, Flight f, int b, String cn){
name = n;
flight = f;
bagsChecked = b;
confirmationNumber = cn;
}
public boolean hasConfirmation(){
if (confirmationNumber != null) {
return true;
}
else{
return false;
}
}
}
第 3 类:信息亭:
public class Kiosk {
private int kioskNumber;
public Kiosk (int k){
kioskNumber = k;
}
public void checkIn(Passenger p){
if (p.hasConfirmation() == true) {
addPassenger(p); // trying to add Passenger here
System.out.println("Passenger " + p.getName() + ""+ "added in at Kiosk1 ");
}
}
}
我正在尝试添加 Passenger
至Flight
当乘客在 Kiosk
办理登机手续时。我如何使用addPassenger
Flight
中的方法添加Passenger
至Kiosk
?
最佳答案
在Kiosk.checkIn()
中:
p.flight.addPassenger(p);
一些建议:
当你有一个集合(比如 passanger1 和 passanger2)时,你可能想要使用数组或更好的某种形式的 collection就像ArrayList
:
ArrayList<Passanger> passangers = new ArrayList<Passanger>(2);
passangers.add(p);
System.out.println(passangers.size());
公共(public)数据成员也不是很好。在需要的地方创建 setter 和 getter,因此上面的代码应该看起来像这样(在实现 Passanger.getFlight()
之后:
p.getFlight().addPassenger(p);
关于Java 语法方法和类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12636313/