2015-10-13 83 views
0

我正在學習範圍和嵌套類。我創建了一個嵌套類,並在課堂級創建了int money變量;然而,當我嘗試重新定義變量的嵌套類,它發送令牌「錢」這個錯誤 語法錯誤,VariableDeclaratorId後預計此令牌類變量語法錯誤

package taopablot; 

public class Scope { 
private int money = 5; 

class mySecondDragon { 
    money=5; 
    public void mySecondDragon() 
    { 
     System.out.println(money); 
    } 
} 

} 
+0

變量貨幣不是內部類的屬性,所以你不能修改它的值在方法外面 – Ibraheem

回答

0
class mySecondDragon { 
    money=5; // #2 
    public void mySecondDragon() 
    { 
     System.out.println(money); 
    } 
}; 

看行不2.你有隱藏頂級類貨幣變量,這是很好的,但它缺少一種類型。可能

int money =5; 

如果你不想隱藏,只是想分配一些值給頂級類變量,那就不應該這樣。該語句在構造函數,方法或任何其他塊中。在目前的狀態,這是一種孤兒的聲明。

-1

我認爲你需要創建一套和獲得金錢的方法。

void setMoney(int amount){ 
money = amount; 
} 
void getMoney(){ 
return money; 
} 

更新的代碼應該是這樣的:

public class Scope { 
private int money = 5; 

void setMoney(int amount){ 
money = amount; 
} 

void getMoney(){ 
return money; 
} 

class mySecondDragon { 
Scope.setMoney(5); 
public void mySecondDragon() 
{ 
    System.out.println(Scope.getMoney()); 
} 
} 

} 
-1

試試這個:

public class Scope { 
    private int money = 0; 

    class mySecondDragon { 

     void mySecondDragon() { 
      money = 5; 
      System.out.println(money); 

     } 
    } 

    public static void main(String... args) { 
     Scope st = new Scope(); 
     Scope.mySecondDragon fl = st.new mySecondDragon(); 
     fl.mySecondDragon(); 
    } 

} 
0

,如果你正試圖將類塊內而外的方法設置字段,如你在爲內部課程賺錢,那麼你可以使用初始化塊

{ money = 5; } 

但是,如果你想重新定義內部類的領域資金,那麼你需要聲明它。