2017-08-14 69 views
-5

在静态方法中声明一个变量为静态时会给出错误(编译时错误)。 我的代码是在这里: -java中静态方法中的静态变量

public class MainStatic { 

    public static void main(String[] args) { 
     System.out.println("Value of static variable is"+print(10));  
    } 
    public static void print(int number) { 
     static int x = number; 
     ++x; 
     System.out.println(x); 
    } 
} 

我得到的编译时错误: - “为参数x非法修改;只有最终被允许”。 由于静态方法不依赖于类的实例,那么为什么我无法在静态方法内声明一个静态变量? 但它是可访问的,如果我在方法中声明该类内的变量?

+0

你不需要静态。你做 ? –

+1

范围修饰符('static','public'等)的内部方法不可用。范围始终是方法。 –

+0

你的问题是什么? –

回答

0

一个静态变量属于该类,可以根据变量的访问修饰符允许任何人修改。本地方法变量只存在于方法内部(以及执行期间),并且不能由此方法之外的任何人访问。它根本没有意义。

+1

谢谢@Jack Flamp –

3

局部变量只在调用时才存在。静态不会(也不会)影响它们。

+0

如果我理解正确,那么它意味着: - 静态变量在调用方法时不起任何作用,它只会作为全局变量受到影响。 –

+0

局部变量与*类*没有关系,或者它的实例是否存在。当方法运行时,生命是完全被包含的。不必担心类。那个幸运的实例变量。 – Kayaman

+0

谢谢@Kayaman –