簡體   English   中英

錯誤:無法為最終變量 (int) 賦值

[英]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;
  }

希望這可以幫助。

使用staticfinal關鍵字聲明的變量的行為類似於常量。 但是,這是什么意思 ?

這意味着您無法更改它們的值。 簡單來說,如果變量是一個原始變量,那么你不能改變它的值,但如果它是一個引用變量,那么你不能改變對其他地址的引用。

因此,在你的代碼,聲明numberInRoomtotalNumber變量, staticfinal是錯誤的

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變量嗎,因為這些變量應由相關類的所有實例共享。 請看看將變量聲明為staticfinal意味着什么

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM