java - 从 main 方法调用方法

标签 java methods static program-entry-point

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

允许的版本;

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进行静态引用”错误。我的问题是;在这两个代码块中,完成了相同的事情,但是它们之间有什么区别?

最佳答案

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

关于java - 从 main 方法调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34465502/

相关文章:

java - HTTP header 结束

c++ - 什么时候适合使用虚方法?

android - 无法对非静态方法 getAssets() 进行静态引用 - 在 fragment 中播放音频时遇到问题

c# - 更改静态变量的值是不好的做法吗?

javascript - Node.js Mongoose 静态函数没有被调用

java - 使用 Java 通过 HTTP 请求获取位短 url 重定向到的 url

java - 将表从 Postgres 数据库(在服务器上)导出到 java 中的 csv 文件(在本地)

jvm - Java java.lang.Integer类中的代码注释 'HD, Figure'是什么意思?

java - 没有找到对象时如何处理返回值

python - 为 DataFrames 创建我自己的方法(python)