2016-03-03 15 views
-1

對象數組和靜態/非靜態方法。在其他類(對象數組和靜態/非靜態方法)中使用邏輯表達式的對象數組的私有屬性

class Foititis  //Dimiourgeia twn antikeimenwn typou foititis 
    { 
     private String onoma, epitheto; 
     private short AriMit, EtosEis; 
     public Foititis (String on, String ep, short AM, short EE) 
      { 
       onoma = on; 
       epitheto = ep; 
       AriMit = AM; 
       EtosEis = EE; 
      } 

     public String getEpwnymo()  //Prosbash sto epitheto apo tis alles klaseis 
      { 
       return epitheto; 
      } 
     public String toString() 
      { 
       String emf; 
       emf = "--------------------" + "\n"; 
       emf = "Onoma" + onoma + "\n"; 
       emf = "Epwnymo" + epitheto + "\n"; 
       emf = "Arithmos Mitrwoy" + AriMit + "\n"; 
       emf = "Etos Eisagwnis" + EtosEis + "\n"; 
       emf = "--------------------"; 
       return emf; 
      } 


    } 

class MyUtils01  //Anazitisi Me Epwnymo, Seiriaki Anazitisi 
    { 
     public static int AnazitisiMeEpwnymo(Foititis[] a, String key) 
      { 
       boolean flag = false; 
       int j = 0; 
       return -1; 
       while (!flag && j < a.length) 
        { 
         if (a[j].getEpwnymo.equals(key)) 
          { 
           flag = true; 
           return j; 
          } 
         j += 1; 
        } 
      } 
    } 

在這個程序中,我有一個數組(名爲pinakas)並將其發送到方法的類「MyUtils01」的「AnazitisiMeEpwnymo」,並重新命名爲「A」(爲了被使用)。該數組是一個「Foititis」類型的對象數組。所以我想從「MyUtils01」類訪問屬於「epitheto」的屬性,這是私有的,這就是爲什麼我試圖使用get方法,但我得到一條消息error

預先感謝您,我知道我的線程可能會在另一個帖子中以某種方式被覆蓋,但是沒有(從我發現的)那裏沒有使用數組對象,也沒有嘗試調用上面的方法。

回答

2

你錯過了一些括號

a[j].getEpwnymo().equals(key) 
       ^^ 

a[j].getEpwnymo.equals(key) 
+0

噢,我不知道,我需要他們即使在那裏,因爲(對我來說)這種類型的調用方法沒有的看起來像「傳統」一樣。但是現在我錯過了return語句,這是編譯錯誤。 –

+0

另外,我得到一個編譯錯誤,我的if語句無法訪問,所以我將它從 'if(pinakas1 [j] .getEpwnymo()。equals(key))'更改爲 'if(pinakas1 [j]。 getEpwnymo()。equals(key)== true)'現在被接受。這是爲什麼?不是「等於」應該是一個布爾語句?所以如果它返回true,如果不會被執行,那麼它不會。 –

相關問題