2014-12-11 50 views
1

我的程序有兩個類,一個掃描名爲Flights.csv的文件,並使用該信息構造Flight對象的ArrayList,另一個類掃描名爲Airports.csv的文件並創建一個ArrayList從這個機場對象。我想將我的飛行物體的數組列表移動到我的機場課程中,以便我可以比較機場從機場城市開始的城市,並列出哪些航班會從哪些機場起飛。將對象ArrayList移動​​到另一個類

下面是機場類

import java.util.Scanner; 
import java.io.*; 
import java.util.ArrayList; 
import java.util.StringTokenizer; 
public class Airport{ 
    String name; 
    double latitude; 
    double longitude; 
    int conTime; 
    String city; 
    static ArrayList<Airport> Airports = new ArrayList<Airport>(); 
public Airport(String nmst, double lat, double lon, int del, String cst) { 
    name = nmst; 
    latitude = lat; 
    longitude = lon; 
    conTime = del; 
    city = cst; 
    Airports.add(this); 
    } 

構造而這裏的飛行類的構造函數

public class Flight { 
String flightNum; 
String cityFrom; 
String cityTo; 
String departTime; 
String arriveTime; 
String price; 
String seats; 
String brand; 
static ArrayList<Flight> Flights = new ArrayList<Flight>(); 
public Flight(String flights, String cityF, String cityT, String departT, String arriveT, 
String cost, String space, String name) { 

flightNum = flights; 
price = cost; 
cityFrom = cityF; 
cityTo = cityT; 
departTime = departT; 
arriveTime = arriveT; 
seats = space; 
brand = name; 
Flights.add(this); 
} 

你如何獲得這樣一個ArrayList到另一個類?

+0

創建一個'getter()'方法? – 2014-12-11 01:03:50

回答

2

爲什麼要在類Airport中創建一個Airport的ArrayList並在類Flight中創建一個FlightList的ArrayList?

如果您希望機場能夠查看航班的完整列表,您可以將Flight的ArrayList添加到機場類中。

class Airport 
{ 
    //other variables 
    ArrayList<Flight> flightList; 
} 

您可以通過增加航班列表到機場對象:

  1. 機場構造OR
  2. 機場二傳手(setFlights(ArrayList的flightList))OR
  3. 機場增加新航班的方法

爲了能夠檢索從機場對象航班列表中,你需要一個吸氣在類機場:

public ArrayList<Flight> getFlights() 
{ 
    return flightList; 
} 

一個完整的例子:

添加通過1.機場製造商

public static void main(String[] args) 
{ 
    ArrayList<Flight> flightList = new ArrayList<Flight>(); 
    flightList.add(new Flight(...)); //The ... within the braces depends on your Flight constructor 
    flightList.add(new Flight(...)); //The ... within the braces depends on your Flight constructor 
    flightList.add(new Flight(...)); //The ... within the braces depends on your Flight constructor 

    Airport airport = new Airport(flightList); //Now airport has a list of flights  
} 

添加通過2.機場setter方法(存取器)

//Within your Airport class 
public void setFlight(ArrayList<Flight> flightList) 
{ 
    this.flightList = flightList; 
} 

通過3添加。在機場的方法,其增加了新的航班

如果你不想得到通過構造飛行,還有就是你可能要增加新的航班一個接一個機會的話,你可以創建另一個addFlight(Flight newFlight)方法:

public void addFlight(Flight newFlight) 
{ 
    flightList.add(newFlight); 
} 

如果你想知道使用getter和setter的。我們正在使用它,因爲您的flightList將是private。爲了訪問private成員,我們需要從「public」方法獲得「幫助」。這些給我們訪問private成員的方法稱爲getter/setter,或者更好地知道爲訪問器/增變器

+0

真棒解釋 – 2014-12-11 01:14:00

+0

請如果你可以添加getter和setter的概念到你的答案 – 2014-12-11 01:15:14

+0

@KickButtowski你的意思是你想讓我解釋getter&setter? – user3437460 2014-12-11 01:16:58

相關問題