2012-09-19 39 views
-2

原值比方说,我有这样的代码如何访问变量

public static long number; 
public static void main(String args[]) { 
    String str1 = args[0]; 
    System.out.println("str1 is = " + str1); 
    long number = Long.parseLong(str1); 
    System.out.println("number value is = " + number); 
} 

public static void test1(){ 
    System.out.println("number value inside test1 is = " + number); 
} 

说我通过12345作为参数,所以我的O/P将

str1 is 12345 
number value is 12345 
number value inside test1 is 0 

我要的是能够在test1方法内访问arg [0](用户自变量)或原始数值(12345)。请帮我做。谢谢。!

+0

'test1'可能是一个方法,如果它只有括号:'TEST1()'... – alfasin

回答

3

将您的课程级别number设置为解析后的值str1。目前,您设置了一个没有超出主方法范围的本地字段。

用途:代替

number = Long.parseLong(str1); 

long number = Long.parseLong(str1); 
+0

@ user1629109 - 火神是正确的。当你说'long number = Long.parseLong(str1);'在main()内部时,你创建了一个* NEW,DIFFERENT *“number”,所以你的全局“number”永远不会被分配。 – paulsm4

0

对于你要么需要使用全局变量,或者您需要的值传递给test1功能。

您尝试使用全局变量,但在初始化它时不需要在其前面有类型,因为它随后变为本地。因此,只需使用:

number = Long.parseLong(str1); 

这里是你的代码时,它传递的价值test1

public static void main(String args[]) { 
    String str1 = args[0]; 
    System.out.println("str1 is = "+str1); 
    long number = Long.parseLong(str1); 
    System.out.println("number value is = "+number); 
} 

public static void test1(long number){ 
    System.out.println("number value inside test1 is = "+number); 
} 

然后你只需要使用

test1(number); 

某处你main()方法内。

0

long number = Long.parseLong(str1);

做上述你声明命名number另一个变量。

这样做是为了访问Class variable(即静态字段。)

number = Long.parseLong(str1);