Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法访问方法';在Java中,将局部变量置于方法之外_Java_Variables_Methods_Scope - Fatal编程技术网

无法访问方法';在Java中,将局部变量置于方法之外

无法访问方法';在Java中,将局部变量置于方法之外,java,variables,methods,scope,Java,Variables,Methods,Scope,我是Java新手,正在尝试访问方法之外的方法变量,但它不起作用 代码如下: 公共类方法访问{ 公共静态void减(){ INTA=10; int b=15; } 公共静态void main(字符串[]args){ //在这里,我想访问减()中的变量名a&b int c=b-a; } } 因为a和b是局部变量。 如果希望在main方法中访问它们,则需要修改代码。例如: public class methodacess { private static int a; pr

我是Java新手,正在尝试访问方法之外的方法变量,但它不起作用

代码如下:

公共类方法访问{
公共静态void减(){
INTA=10;
int b=15;
}
公共静态void main(字符串[]args){
//在这里,我想访问减()中的变量名a&b
int c=b-a;
}
}

因为
a
b
是局部变量。 如果希望在main方法中访问它们,则需要修改代码。例如:

public class methodacess {
       private static int a;
       private static int b;

       public static void minus(){   
           methodacess obj =new methodacess();
           a=10;
           b=15;    
       }   

       public static void main (String[] args){     
           int c = b - a;    
       }   
} 

方法内部定义的变量是该方法的局部变量,因此不能在外部使用它们。如果您想在外部使用它们,请在类的开头定义实例变量。

我想您可能需要用其他方法:

public class methodacess {

     public int minus(int a, int b){   
          int c = b - a;
          return c;
     }   
     public static void main (String[] args){   
          // Here youi want to call minus(10, 15) 
          int a=10;
          int b=15;
          System.out.println("Result is: " + minus(a, b))
     }   
} 

您需要将变量定义为静态类变量,以便可以从静态函数访问它们。还要注意访问修饰符,因为当变量是私有的时,您不能在任何其他类之外访问它们

public class methodacess {

   private static int a;
   private static int b;

   public static void minus(){   
      methodacess obj =new methodacess();
      a=10;
      b=15;
   }  

   public static void main (String[] args){   
      //Here i want to access variable names a & b that is in minus() 
      int c = b - a; 
   }   

} 

不,不会的。局部变量(在方法中声明)仅在方法中该方法调用的生存期内存在。你需要声明字段,是的,这些是局部变量,在它们的作用域之外是不可见的。您需要以不同的方式构造代码。顺便说一句,用大写字母开头类名(可能使用驼峰大小写)有些传统,因此您的类名应该是MethodAccess……但请注意:)