为什么我的方法应该是静态的?

Why should my method be static?

嗨,我有这段代码,我真的很困惑为什么我必须使用 lel 方法 static.The,错误是这个 "non static method cant be referred from static content"。通常当我创建方法来构造新对象或在 main 方法中操作对象时,我不会收到此错误 message.Plus,我从未将 e 声明为静态的!!。有人可以向我解释为什么会这样吗?谢谢:)

class x {

    public static void main(String[]args){

        int e= 2232;

        e= lel(e);

    }

    int lel(int k){
        return k+1;
    }
}

您可以实施两种解决方案。第一个选项是让你的 int lel(int k) 成为一个静态方法,看起来像 static int lel(int k)

您的另一个选择是声明一个新的 class x 对象,并将其用于 main 中的 lel 方法,如 MickMnemonic 在评论中所建议的那样。该代码如下所示:

e = new x().lel(e);

我认为最简单的方法是将 lel 方法设为静态,但这取决于您。

可以找到静态方法的更深入的解释here.