【问题标题】:Java compile missing return statement errorJava 编译缺少返回语句错误
【发布时间】:2014-08-20 06:48:19
【问题描述】:

我正在尝试学习 Java,通过闲逛和创建不同的东西,例如这个骰子示例。然而,在下面的课程中,我被困在这个失踪的回报上,但我不知道为什么。感谢所有帮助!

Test1.java:12:错误:缺少返回语句 } ^ 1 个错误

import java.util.Random;

class Char
{
    Random r = new Random();
    int nSides;

    public int Die(int sides)
    {
        this.nSides = sides;
        r = new Random();   
    }

    public int roll()
    {
        return r.nextInt(nSides + 1);
    }

    public int roll(int times)
    {
        int sum = 0;
        for (int i = 0; i < times; i++)
        {
        sum += roll();
        }
        return sum;
    }

}

【问题讨论】:

    标签: java compiler-errors return


    【解决方案1】:

    看起来您正在尝试编写一个构造函数,它自然没有返回值。 构造函数必须与它构造的类同名

    public int Die 替换为以下内容。

    public Char(int sides)
    {
        this.nSides = sides;
        r = new Random();   
    }
    

    或者,您可以将班级重命名为 Die

    public class Die {
        public Die(int sides)
        {
           this.nSides = sides;
           r = new Random();   
        }
    // Rest of your code
    }
    

    【讨论】:

      【解决方案2】:

      看起来您正在尝试创建一个名为 Die 的类,而这意味着它的构造函数。试试这个:

      import java.util.Random;
      
      class Die {
          private Random r = new Random();
          private final int nSides;
      
          public Die(int sides) {
              this.nSides = sides;
          }
      
          // rest of class omitted
      }
      

      注意事项:

      • 构造函数不声明返回类型并且命名与类相同。
      • 无需重新初始化Random 字段(已删除行)
      • 最好将nSides 声明为final(参见代码)
      • 最好让所有字段private

      【讨论】:

        【解决方案3】:

        在函数中应用返回语句:

        public int Die(int sides)
        {
            this.nSides = sides;
            r = new Random(); 
            return 0; // whatever you want to return 
        }
        

        或在死之前删除int,并使其成为void

        public void Die(int sides)
        {
            this.nSides = sides;
            r = new Random(); 
        }
        

        【讨论】:

          【解决方案4】:

          你需要说

          public Char(int sides)
          

          或者,假设您希望该类真正被称为“Die”,请将类声明更改为:

          class Die
          

          和构造函数(?)行:

          public Die(int sides)
          

          (删除“int”)。

          【讨论】:

            猜你喜欢
            • 2015-06-01
            • 1970-01-01
            • 2013-10-27
            • 1970-01-01
            • 1970-01-01
            • 2017-05-26
            • 2013-09-18
            • 2016-07-31
            • 1970-01-01
            相关资源
            最近更新 更多