0

如果我在 java 方法中声明一个变量,该变量是否也可以被从声明它的方法调用的任何方法访问?

当我尝试以下操作时,function2 无法识别变量 variable1。应该是这样吗?

public static void main(String[], args)
{
  int variable1
  function2();
}
4

4 回答 4

4

当我尝试以下操作时,function2 无法识别变量 variable1。应该是这样吗?

是的。它是一个局部变量——声明它的方法的局部变量。该方法可以在同一个线程(不同的堆栈级别)和几个不同的线程上执行多次 - 该方法的每次调用都有一个单独的变量。

您应该查看Java 教程的变量部分

于 2013-11-05T17:45:00.557 回答
2

除非您将它作为参数传递给 function2,否则它不会被识别。

例如

  int variable1;
  function2(variable1);
于 2013-11-05T17:45:09.277 回答
0

不起作用,因为变量作用域在 java 中的工作方式。不过,这适用于 JavaScript。

如果您需要一个函数来获取数据,则必须将其提供给该函数。否则,将数据放在可以读取的地方。

更多信息:

http://docs.oracle.com/javase/tutorial/java/javaOO/variables.html http://www.cs.umd.edu/~clin/MoreJava/Objects/local.html

于 2013-11-05T17:50:05.533 回答
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
}
于 2013-11-05T17:44:59.630 回答