如果我在 java 方法中声明一个变量,该变量是否也可以被从声明它的方法调用的任何方法访问?
当我尝试以下操作时,function2 无法识别变量 variable1。应该是这样吗?
public static void main(String[], args)
{
int variable1
function2();
}
当我尝试以下操作时,function2 无法识别变量 variable1。应该是这样吗?
是的。它是一个局部变量——声明它的方法的局部变量。该方法可以在同一个线程(不同的堆栈级别)和几个不同的线程上执行多次 - 该方法的每次调用都有一个单独的变量。
您应该查看Java 教程的变量部分。
除非您将它作为参数传递给 function2,否则它不会被识别。
例如
int variable1;
function2(variable1);
不起作用,因为变量作用域在 java 中的工作方式。不过,这适用于 JavaScript。
如果您需要一个函数来获取数据,则必须将其提供给该函数。否则,将数据放在可以读取的地方。
更多信息:
http://docs.oracle.com/javase/tutorial/java/javaOO/variables.html http://www.cs.umd.edu/~clin/MoreJava/Objects/local.html
您要么必须将变量设为字段,要么将其传递给函数的参数。
public static void main(String[] args) {
int variable = 0;
function2(variable);
}
public static void function2(int argument) {
//argument is = variable
}
/* or ... */
private static int variable;
public static void main(String[] args) {
variable = 0;
function2();
}
public static void function2() {
//variable is usable
}