问答详情
源自:8-9 Java 中的 static 使用之静态方法

静态方法中声明一个(非)静态变量的问题

我发现在静态方法中声明一个非静态变量,并赋值后的此静态方法,也能在另一个静态方法中通过类直接调用。是因为我声明的是局部变量,所以对另一个调用此变量所在方法的方法并没任何影响吗?还有,我貌似并不能在静态方法中声明一个静态变量是为什么?

提问者:小小小小小柯丶 2018-02-04 21:34

个回答

  • Hsinwong
    2018-02-05 14:54:29
    已采纳

    局部变量的作用范围是从声明开始到所在语句块(“{”“}”构成一个语句块)的结束

    public static void foo() {
        if (...) {
            ...
            int a; // 局部变量a作用范围开始
            ...
        } // 局部变量a作用范围结束
        
        //此处a已经不存在
    }
    
    public static void foo1() {
        foo();
        //此处a也不存在
    }

    静态变量只能在类中声明,可以在方法中调用和赋值

  • 随随便便啊
    2018-02-05 11:34:00

    因为方法是静态的