2014-12-03 44 views
0

我有兩個構造函數我想用來區分同一個數組中的兩種類型的對象,儘管「類型不匹配」。所以我知道我必須以不同的方式聲明數組,我只是不知道該怎麼做。如何在同一個二維數組中使用兩個構造函數? Java

對於數組中的前三個位置,我想使用Pilots類,而對於其他Passenger類。

public class Project_Space 
{ 
    public static void main(String[] args) 
    { 
// 2D Array of Passengers objects- the Passengers class is in the Passengers.java file 
//Pilot objects are constructed from Pilots.java file 

Passengers[][] Members ; 

    int num_flights= 6; //create the "x" bound/size of the array 

    int num_passengers= 9;  //create the "y" bound/size of the array 

    Members = new Passengers[num_flights][num_passengers]; //define the size of the array 6flights/9Passengers 

    //The Members array at index 0 is the first flight 

//Members[0][0] = new Pilots(1,-1,"","","",0); //This spot in the array is for the Flight number in the first spot. Everything else are place holders for data that doesn't pertain to the company 

Members[0][1] = new Pilots(1,"1877963200","Amadeus","Durrutti","Buckminster Cornwallis","1288211435", 11); //This spot in the array is for the first passenger of flight #1 

Members[0][2] = new Pilots(2,"6054350085","Sirius","Sassafrass","Ali Bababa","1776812631", 9); 

Members[0][3] = new Passengers(1,"7065253333","Amy","Hartman","Betty Sue","7708889999", 3, 50000,"0554055405540554"); 

Members[0][4] = new Passengers(2,"7545251337","Amanda","Zion","Beatrice Twix","7448656577", 4, 2000,"0554055405541111"); 

Members[0][5] = new Passengers(3,"8904448899","Janet","Graves","Neal Wade","4445556666", 5, 3000, "9031029266161432"); 

Members[0][6] = new Passengers(4,"8902234567","Kristen","Pickering","Christopher Soto","5685461208", 6, 51500, "0985028135114275"); 

Members[0][7] = new Passengers(5,"5000893778","Julianna","Estrada","Jill Hansen","2770779833", 7, 0, "0213595590286251"); 

Members[0][8] = new Passengers(6,"2080670437","Regena","Mckenzie","Vicki Cook","6224215759", 8, 250, "8204699533830238"); 

回答

1

這是OOP的一個很好的例子。

如果飛行員和乘客都是同一個基類的子類,這將工作正常。例如,這兩個類可能包含類似的字段,如名稱和ID。

聲明具有這些字段以及這兩個類都包含的其他常用方法的基類Person。然後,你就可以到數組聲明爲Person[][] Members;

public class Person { 

    String firstName,lastName; 
    int id; 

    //constructors, getter and setter methods 

} 

然後乘客和駕駛員可以從兩個人繼承這樣的:

public class Pilot extends Person { 
    int totalHoursLogged; 
    String airline; 
    int salary; 

    //constructors and methods that differentiate Pilots from Passengers. 

} 
+0

非常感謝您的詳細解釋,我會實施它,讓我們知道如何回到我的電腦。一旦我拿到代表,我也會讓你高興。再次感謝芽。 – 2014-12-03 00:27:17

+0

這是一個編程類的項目嗎?快樂編碼:) – Thorn 2014-12-03 00:30:45

+0

是的,它是一個編程課。你的解釋是完美的,只是讓我有點適應一切。再次感謝你! – 2014-12-03 02:25:49

0

創建Object類的陣列或定義一個父類PilotsPassengers,然後創建超類的數組。您將能夠將任何子類對象添加到父類數組。

+0

謝謝你,我知道我很接近我只是找不到任何例子! =]一旦我到達我可以upvote你得到它。 – 2014-12-03 00:23:45

相關問題