我有点困惑,浏览了这里推荐的答案,没有立即适用于我的情况。
我的问题很基础。假设我有一个方法像这样。
private int someFunction(int x, int y){
return (x+y+5)
}
但我希望能够从主函数(public static void main(String args[])
)中调用这个函数。我该如何做到这一点?
如果有教程可以帮助我解决这个问题,我会非常感激。
我有点困惑,浏览了这里推荐的答案,没有立即适用于我的情况。
我的问题很基础。假设我有一个方法像这样。
private int someFunction(int x, int y){
return (x+y+5)
}
但我希望能够从主函数(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);
要调用实例方法,您需要拥有该方法所属类的一个实例。
在您的情况下,
new MyClass().someFunction(5,6);
由于您的方法someFunction
不是静态的,因此您将无法从静态上下文即main()中调用此方法。
1. 因此,您可以使someFunction
static private someFunction ()
2. 或者可以在 main() 中创建一个对象并调用 someFunction,如下:
A a = new A();
a.someFunction(4, 5);
你必须先创建实例。根据定义,实例方法(非静态方法)无法从静态上下文中访问。
因此,例如,如果你有一个包含someFunction()
和main(String[] args)
的MyApp类,请在你的主方法中执行以下操作:
new MyApp().someFunction(1, 2);
基本上,您只能从对象[类的实例]调用非静态方法,而不是从类本身调用。
如果您有点困惑,请查看Sun Java教程,了解对象和类之间的区别 - 这是一个非常重要的概念!
如果函数不引用任何局部变量,则可以将其设置为静态,或者创建类的实例以在本地调用它。