无法访问java外部的方法变量

时间:2016-01-13 08:18:32

标签: java variables methods scope

我是java的新手,我正在尝试访问外部的方法变量,但它不起作用。代码如下,

public class methodacess {

   public static void minus(){   
      methodacess obj =new methodacess();
      int a=10;
      int 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; 
   }   

} 

提前感谢!

4 个答案:

答案 0 :(得分:2)

因为ab是局部变量。 如果要在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;    
       }   
} 

答案 1 :(得分:2)

方法中定义的变量是该方法的本地变量,因此您不能在外部使用它们。如果要在外部使用它们,请在类的开头定义全局变量。

答案 2 :(得分:2)

我认为你可能想以其他方式做到这一点:

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))
     }   
} 

答案 3 :(得分:1)

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

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; 
   }   

}