【问题标题】:static variable inside static method in javajava中静态方法中的静态变量
【发布时间】:2017-08-14 11:20:32
【问题描述】:

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

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 的非法修饰符;只允许使用 final”。 由于静态方法不依赖于类的实例,那么为什么我不能在静态方法中声明静态变量? 但是如果我在方法中声明类内部的变量,它是可以访问的?

【问题讨论】:

  • 那里不需要静态。你呢?
  • 在方法内部,范围修饰符(staticpublic 等)不可用。范围始终是方法。
  • 你的问题是什么?
  • 我想知道为什么静态方法中不允许静态变量声明?
  • @shankarDayalupadhyay Java 中的静态基本上意味着“属于一个类(而不是一个实例)”。因此,属于该类的变量应该直接在类主体内声明,而不是在方法内。 Java 不支持静态局部变量。

标签: java static static-methods


【解决方案1】:

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

【讨论】:

  • 如果我理解正确,那么这意味着:- 静态变量在调用方法时不起任何作用,它只会作为全局变量受到影响。
  • 局部变量与或它的实例是否存在无关。当方法运行时,它的生命完全被包含在内。不用担心上课。那个幸运的实例变量。
【解决方案2】:

静态变量属于类,任何人都可以根据变量的访问修饰符进行修改。本地方法变量仅存在于方法中(以及在其执行期间),并且该方法之外的任何人都无法访问。这根本没有意义。

【讨论】:

    猜你喜欢
    • 2011-05-30
    • 1970-01-01
    • 2012-06-24
    • 1970-01-01
    • 2015-02-19
    • 2012-01-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多