[英]error: cannot assign a value to final variable (int)
好的,我確定這很簡單,但是我遇到了問題並且我的大腦一片空白。 =(我知道'final'是這樣的,所以變量不能改變,但這幾乎是我現在能弄清楚的。代碼......
如果我取出'final',前兩種方法的錯誤會顯示為“錯誤:缺少返回語句}”。
編輯:謝謝大家的幫助,令人驚訝的是我得到幫助的速度有多快! 所以我只是去掉了 'final' 並在前兩種方法中添加了 'void'。 我相信完全理解所有內容需要一些時間,但它絕對有幫助。
有第二部分,這是我不知道該怎么做的部分......第二部分你只需要測試第一個程序。 我應該用相同的代碼制作一個單獨的文件嗎? 如果有人可以提供很大幫助,但如果不是很好,我稍后會處理它。
您將函數聲明為
public static int removeOneFromRoom (int number)
{
totalNumber = totalNumber-number;
}
這里的重點是 public static int,它告訴編譯器你的函數應該返回一個整數。 但是,您不會在該函數體中返回任何內容,因此編譯器正確地抱怨。 要么返回一些東西,要么將返回值聲明為 void。
也許您缺少前兩種方法的 return 語句。 或者,如果您不需要返回任何內容,您可能希望將返回類型更改為 void。
執行這些操作將消除您的錯誤,但它可能與您需要的有所不同。
public static void addOneToRoom(int number)
{
numberInRoom = numberInRoom+number;
}
public static void removeOneFromRoom (int number)
{
totalNumber = totalNumber-number;
}
希望這可以幫助。
使用static
和final
關鍵字聲明的變量的行為類似於常量。 但是,這是什么意思 ?
這意味着您無法更改它們的值。 簡單來說,如果變量是一個原始變量,那么你不能改變它的值,但如果它是一個引用變量,那么你不能改變對其他地址的引用。
因此,在你的代碼,聲明numberInRoom
和totalNumber
變量, static
和final
是錯誤的
public static int numberInRoom=3;
public static int totalNumber=30;
public static int addOneToRoom(int number)
{
numberInRoom = numberInRoom+number;
}
public static int removeOneFromRoom (int number)
{
totalNumber = totalNumber-number;
}
您確定要將這些變量聲明為static
變量嗎,因為這些變量應由相關類的所有實例共享。 請看看將變量聲明為static
和final
意味着什么
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.