问答详情
源自:8-7 Java 中的 static 使用之静态变量

静态变量和成员变量的区别太难理解了。

静态变量和成员变量区别好绕啊,前面2课讲的手机定义一个屏幕,内存,cpu之类的就叫成员变量, 而且语法是float xx=x可以是正确语句,而到了这里如果是 float xx=x,不在前面加static就会出错,仔细比较后发现就是因为public static void main(String[] args)这句话,如果没有这句话,定义一个变量怎么都正确,在接下来的语句中随便怎么调用这个变量,但是如果有了这句话后定义一个变量,如果在这话前面就要加static,在后面就不能加static,不然也出错,在这句话后面怎么定义一个变量都也是正确的,看来还是基础概念之类的东西没有搞懂。

提问者:老王学java 2016-11-12 16:39

个回答

  • 历飞雨
    2016-11-19 13:10:14

    你说没有public static void main(String[] args)这句话定义变量就会出错。首先,在2课的时候变量是定义在主函数部分了,public static void main(String[] args)这句话是定义在内函数部分了,是在内函数调用的方法执行了主体中的变量。而这句话是程序运行的起点,不只是变量问题,其他方面也需要有这句话的。

    后面你说到静态变量的顺序问题,这个我也不会了

    成员变量和静态变量的区别

    1. 生命周期的不同

      成员变量随着对象的创建而存在,随着对象被收回而释放

      静态变量随着类的加载而存在,随着类的消失而消失

    2. 调用方式的不同

      成员变量只能被对象调用

      静态变量可被对象和类名调用


  • pocky00000
    2016-11-12 17:14:33

    在静态方法里面只能调用静态变量,而public static void main(String[] args)这句话表示main方法是一个静态方法,因此内部只能调用静态变量了,如果是public void main(String[] args)应该就可以调用所有成员变量了