返回类型必需/无法从具有void结果类型的方法返回值

时间:2017-03-29 17:20:18

标签: java

我是初学者,你能告诉我我做错了什么吗?为什么我不能正确使用这些方法?

IDE显示:需要返回类型/无法从具有void结果类型

的方法返回值

`public class Human

{
    public int Age = 0;
    public int Weight = 0;
    public int Height = 0;
    private String name = "";
    boolean isMale;
}

public getAge()
{
    return Age;
}
public getWeight()
{
    return Weight;
}
public getHeight()
{
    return Height;
}
public Human(int Age, int Weight, int Height, String name, boolean 
isMale)
{

}      `

3 个答案:

答案 0 :(得分:1)

到目前为止工作很棒,你只是缺少方法的返回类型语句。您的方法应写成如下:

class Human {
    private int Age = 0;
    private int Weight = 0;
    private int Height = 0;
    private String name = "";
    private boolean isMale;

    public int getAge() {
        return Age;
    }

    public int getWeight() {
        return Weight;
    }

    public int getHeight() {
        return Height;
    }

    public Human(int Age, int Weight, int Height, String name, boolean isMale) {
        this.Age = Age;
        this.Weight = Weight;
        this.Height = Height;
        this.name = name;
        this.isMale = isMale;

        //returns nothing
    }
}

请注意,每种方法都有某种返回类型。由于getAge()返回Age(您在上面指定为int类型),因此需要显式地在方法声明语句中输入要返回的int。如果您要返回String或Boolean等,也是如此。

然而,最后一个方法(Human())是一个构造函数,在实例化一个新的Human对象时会被调用:

Human myHuman = new Human(31, 155, 68, "Bob", true);

请注意,在上面的代码块中,我按照构造函数中的顺序传递值,构造函数根据传递的内容设置对象的属性。根据你的问题,这里最重要的是,它不会返回任何东西(除了新对象......另一次讨论)。

一般来说,如果您没有返回任何内容,请在返回类型中输入void。就像在Main函数中一样。

我想指出的最后一件事是使用public和private来表示你的属性和方法。一般来说,您可以将属性设置为private,然后使您的公共get / set方法返回或更改这些属性。这是将来要注意的事情。

希望有所帮助!如果您有其他问题或需要澄清,请随时给我留言。

答案 1 :(得分:0)

您需要为要返回值的每个函数指定一个返回类型。 例如:

public int getAge()
{
    return Age;
}
public int getWeight()
{
    return Weight;
}
public int getHeight()
{
    return Height;
}

答案 2 :(得分:0)

您需要在每个方法修饰符后指定返回值。
例如,
 public int getAge() { return age;}