问答详情
源自:8-10 Java 中的 static 使用之静态初始化块

static使用之静态初始化块练习题

static int age;

static{

 age=20;

}

public void show(){

 System.out.println(+age);

};

show()是普通方法为什么可以直接调用静态成员变量age???

提问者:Habit_formation 2016-03-06 17:49

个回答

  • aliang702
    2016-03-06 18:04:27
    已采纳

    静态初始化块只在类加载时执行,且只会执行一次,而静态变量age实在静态初始化块中初始化的,而调用show方法的时候age已经被初始化了,所以可以使用age的值

  • 小LOVE宇
    2016-03-06 18:13:02

    你好:
     
         普通方法当然可以调用静态成员了,实例化过程我就不赘述了,楼上已经说得很好了。
     我想你混淆的地方是静态成员和静态方法相关的制约了。
     静态方法可以访问静态成员,但不可以访问成员变量(原因是在实例化静态方法的时候该成员变量还没有进行实例化,如果非要使用成员变量话的需要进行对象实例化再行使用成员变量)。
     ……
      SO,我简单分析你的问题是把静态方法和普通方法访问成员变量相关知识点混淆了。
      
      希望我的回答可以帮助到你朋友,更多优质答复请与留言,谢谢!