2014-05-06 27 views
-2

我想要做T什麼是調用port.getferry.getname()調用變量;但是當我試圖編譯它表明我試圖從一個子類

「找不到符號k = port.getferry.getname();

符號:變量getferry

位置:一類口岸」

我只是不知道做什麼,我試圖從私有的變量更改爲保護或p ublic但沒有什麼變化,這是一小片我的計劃,所以我不給你compliced PROGRAMM,

class tp{ 

    public static void main(String args[]){ 
     Port[] port=new Port[1]; 
     String k,limenas; 
     Ferry[] ferry=new Ferry[1]; 
     String name=UserInput.getString(); 
     ferry[1]=new Ferry(name); 
     port[1]=new Port(limenas,ferry[1]); 
     k=port[1].getferry.getname(); 
    } 

} 

class Port{ 
    private String limenas; 
    public Ferry ferry; 
    Port(String li,Ferry ferry){ 
     limenas=li; 
     this.ferry=ferry; 
    } 
    public String getlimenas(){ 
     return limenas; 
    } 
    public Ferry getferry(){ 
     return ferry; 
    } 
} 

class Ferry extends Vessel{ 
    Ferry(String name){ 
     super(name); 
    } 
} 

class Vessel{ 
    private String name; 
    Vessel(String n){ 
     name=n; 
    } 
    public String getname(){ 
     return name; 
    } 
} 
+2

在我的主程序中嘗試使用port.getferry()。getname() –

+0

我有一個Port數組,這個工作會再次出現嗎? – user3609483

+0

看到我的答案 –

回答

2

的問題是,您要調用的方法沒有括號。

port.getferry(); //will return a ferry object. 

ferry.getname(); //will return the name of the ferry object. 

要它們鏈,你應該嘗試:

port.getferry().getname(); 

這將返回輪渡對象,並從它那裏得到的名稱,返回的字符串。

,如果你有口對象的數組,這也將工作,你可以調用

port[1].getferry().getname() 

,它會得到在數組引用1港口輪渡,如上所述,提供端口的名稱你的端口數組。

0

最終你會遇到你的數組問題。

Java數組開始於0

Port [] port = new Port [1]; //長度的陣列1和

K =端口[1] ...會得到一個例外的ArrayIndexOutOfBounds

端口[0]有效時,端口[1]不是。