如果我在java方法中声明一个变量,那么该变量是否也可以从声明它的方法中调用的任何方法访问?
当我尝试以下操作时,function2无法识别变量variable1。应该是这样的吗?
public static void main(String[], args)
{
int variable1
function2();
}
答案 0 :(得分:4)
当我尝试以下操作时,function2无法识别变量variable1。应该是这样的吗?
是。它是一个 local 变量 - 它声明的方法的本地变量。该方法可以在同一个线程(不同的堆栈级别)和几个不同的线程上执行多次 - 每次调用该方法都有一个单独的变量。
答案 1 :(得分:2)
除非您将其作为参数传递给function2,否则无法识别。
E.g。
int variable1;
function2(variable1);
答案 2 :(得分:0)
你要么必须让变量成为一个字段,要么通过函数的参数传递它。
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
}
答案 3 :(得分:0)
不起作用,因为变量作用域在java中的工作方式。不过,这可以在JavaScript中使用。
如果需要函数来获取数据,则必须将其提供给函数。否则,将数据放在可以读取的地方。
更多信息:
http://docs.oracle.com/javase/tutorial/java/javaOO/variables.html http://www.cs.umd.edu/~clin/MoreJava/Objects/local.html