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

时间:2013-11-05 17:43:19

标签: java scope

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

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

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

4 个答案:

答案 0 :(得分:4)

  

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

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

您应该查看Variables section of the Java tutorial

答案 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