从主方法调用方法



当我直接从主方法调用方法时,这是不允许的。但是,当我从类的构造函数调用相同的方法时,这是允许的。

允许的版本;

public class App {
Integer firstVariable;
Integer secondVariable;
public static void main(String[] args) {
    App obj = new App(3, 2);
}
public App(Integer firstVariable, Integer secondVariable) {
    this.firstVariable = firstVariable;
    this.secondVariable = secondVariable;
    this.calculate(firstVariable, secondVariable);
}
public int calculate(int a, int b) {
    int result = a + b;
    return result;
}
}

不允许的版本;

public class App {
Integer firstVariable;
Integer secondVariable;
public static void main(String[] args) {
    App obj = new App(3, 2);
    obj.calculate(firstVariable, secondVariable);
}
public App(Integer firstVariable, Integer secondVariable) {
    this.firstVariable = firstVariable;
    this.secondVariable = secondVariable;
}
public int calculate(int a, int b) {
    int result = a + b;
    return result;
}
}

我知道这是"无法对非静态字段firstVariable进行静态引用"错误。我的问题是;在两个代码块中,都做了相同的事情,但它们之间的区别是什么?

问题不在于您的方法。问题是,您的变量(您试图传递的参数)是从静态上下文中引用的。

相关内容

  • 没有找到相关文章

最新更新