错误:无法为最终变量赋值(int)

时间:2015-09-30 02:46:42

标签: java final

好的,我确定这很简单,但我遇到了问题而且我的想法是空白的。 =( 我知道' final'因此,变量无法改变,但我现在几乎可以理解它。 代码......

如果我拿出最后的'错误出现为"错误:缺少return语句       }"对于前两种方法。

编辑:谢谢大家的帮助,惊讶于我得到了多快的帮助! 所以我刚拿出了#final;#39;并添加了' void'前两种方法。我确定它需要一些时间才能完全理解所有内容,但这绝对有帮助。

还有第二部分,这里是我不知道该做什么的部分...... 第二部分你只需要测试第一个程序。我应该用相同的代码制作一个单独的文件吗? 如果有人可以提供很好的帮助,但如果没有那么好,我会在以后继续工作。

3 个答案:

答案 0 :(得分:1)

您将函数声明为

  public static int removeOneFromRoom (int number)
  {
     totalNumber = totalNumber-number;
  }

这里强调的是public static int,告诉编译器你的函数应该返回一个整数。但是你没有返回该函数体中的任何内容,因此编译器正确地抱怨。要么返回一些东西,要么将返回值声明为void。

答案 1 :(得分:1)

也许你错过了前两种方法的return语句。或者,如果您不需要返回任何内容,则可能需要将返回类型更改为无效。

执行这些操作会删除您的错误,但可能与您的错误有所不同。

  public static void addOneToRoom(int number)
  {
     numberInRoom = numberInRoom+number;
  }

  public static void removeOneFromRoom (int number)
  {
     totalNumber = totalNumber-number;
  }

希望这有帮助。

答案 2 :(得分:1)

使用 static final 关键字声明的变量的行为类似于常量。但是,这是什么意思 ?

  

这意味着你无法改变他们的价值观。简单来说,如果变量是一个原语,那么你不能改变它的值,但如果它是一个引用变量,那么你就不能将引用改为某个其他地址。

因此,在您的代码中,将 numberInRoom totalNumber 变量声明为 static 和< strong> 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 ,因为此类变量应由相关类的所有实例共享。请查看声明变量https://www.apichangelog.com表示

的内容