1 回答

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超3個(gè)贊
首先,您誤解了如何正確使用 asObject僅getParameters適用于當(dāng)前對象,它不會(huì)搜索您創(chuàng)建的所有對象。如果要查找特定對象,則必須使用 aCollection來跟蹤所有對象。
此外,您不應(yīng)使用變量名來存儲(chǔ)信息,而應(yīng)將該信息作為整數(shù)存儲(chǔ)在對象內(nèi)部。
這是修改后的Flight類:
class Flight {
private String departures;
private String arrival;
private int price;
private int flightNum;
public Flight(String departures, String arrival, int price, int flightNum){
this.departures = departures;
this.arrival = arrival;
this.price = price;
this.flightNum = flightNum;
}
public String getParameters(){
return "Lot z "+this.departures+" do "+this.arrival+" kosztuje "+this.price;
}
public String getDepartures() {
return departures;
}
public String getArrival() {
return arrival;
}
public int getPrice() {
return price;
}
public int getFlightNum() {
return flightNum;
}
public void setDepartures(String departures) {
this.departures = departures;
}
public void setArrival(String arrival) {
this.arrival = arrival;
}
public void setPrice(int price) {
this.price = price;
}
public void setFlightNum(int flightNum) {
this.flightNum = flightNum;
}
}
請注意,我添加了新參數(shù),并使用標(biāo)準(zhǔn)的 getter 和 setter 來訪問flightNum所有類變量。private
現(xiàn)在這里是修改后的Airlines類,它使用 anArrayList來存儲(chǔ)Flights:
class Airlines {
public static void main(String args[]) throws Exception{
ArrayList<Flight> flights = new ArrayList<>();
flights.add(new Flight("Moskwa", "Londyn", 140, 524));
flights.add(new Flight("Warszawa", "Wroclaw", 60, 135));
flights.add(new Flight("Frankfurt", "Rzym", 95, 141));
Scanner flightNumber = new Scanner(System.in);
System.out.println("Enter code of your flight: ");
int flightNumber_go = Integer.valueOf(flightNumber.nextLine());
Flight currentFlight = findFlight(flights, flightNumber_go);
System.out.println(currentFlight.getParameters());
}
public static Flight findFlight(ArrayList<Flight> flights, int flightNum) {
for (Flight f : flights) {
if (f.getFlightNum() == flightNum) {
return f;
}
}
//If no flights are found
return null;
}
}
我添加了一個(gè)static名為的方法findFlight,該方法將ArrayList您flightNumber想要查找的作為參數(shù),并返回相應(yīng)的Flight. 這是使用一個(gè)簡單的增強(qiáng)for循環(huán)完成的。null如果未找到航班,該方法將返回,可以修改它以返回您想要的默認(rèn)情況下的任何內(nèi)容。
示例運(yùn)行:
輸入您的航班代碼:
135
從華沙到弗羅茨瓦夫的航班費(fèi)用為 60
注意: 在您的情況下,使用 aMap將密鑰存儲(chǔ)為航班號和 asFlight值可能是有意義的,以確保密鑰是唯一的,然后您本身就不需要flightNumber了Object。這ArrayList只是一種方法。
添加回答
舉報(bào)