java - 从静态上下文访问非静态方法

标签 java methods access-modifiers

我对此有点困惑,我浏览此处的建议答案并没有立即产生适合我的上下文的结果。

我的问题很基础。让我们假设我有一个类似这样的方法。

private int someFunction(int x, int y){
    return (x+y+5)
} 

但我想从 main (public static void main(String args[]) ) 调用这个函数。我该怎么做呢?

如果您认为有教程在这种情况下对我有帮助,我也将不胜感激。

最佳答案

此函数不需要访问任何成员变量,因此您可以将该方法声明为静态的:

private static int someFunction(int x, int y) {
        ^^^^^^
    return (x+y+5)
} 

这将允许您从 main 调用它,使用 someFunction(arg1, arg2)YourClass.someFunction(arg1, arg2).


如果方法确实需要访问成员变量(和/或 this 引用),则不能将方法声明为静态方法。在这种情况下,您必须创建一个包含该方法的类的实例才能调用它:

new YourClass().someFunction(0, 1);

或者(如果您以后需要重用该实例)

YourClass x = new YourClass();
x.sumFunction(0, 1);

关于java - 从静态上下文访问非静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7188338/

相关文章:

JAVA:从文本文件中获取特定字符串的内容

java - 在 if else 循环中使用 try-catch

c# - C# 中 "internal"关键字的实际用途

delphi - Delphi 中 "strict private"和 "protected"访问修饰符之间的区别?

java - JPA - 可以在不提供可选参数的情况下调用存储过程吗?

java - 使用 Hibernate 映射整数列表

java - 如何从 Java 运行 Microsoft Access 宏

syntax - 为什么 Go 方法接收类型不能是接口(interface)?

python - 在方法内访问方法内的变量

Java : private method vs final class