静态变量与静态方法使用

说上说:“静态变量和静态方法既可以在类的实例方法中使用又可以在静态方法中使用;实例变量和实例方法只能在实例方法中使用,不能在静态方法中使用!“ main()函数也是静态的为什么就可以调用非静态变量呢?

你要清楚什么是对象实例化,什么是变量。你举的这个例子中,int a在main的里面,是一个函数的内部变量,你认为,你一个函数中定义的变量,你这个函数难道还不可以使用吗??对不对? 这个函数就当然可以使用了。另外的情况,如果你的int a是这样的话:int a=0;public static void main (String[] args) {
System.out.println("a的数="+a);
}
就是在main之前定义,反正就是不是在main里面定义的。那么你这样使用就是不对的,因为按照规则静态的方法是不能使用非静态变量的,这条对不对??好,那么我给你解释一下,为什么不可以使用吧。第一,JAVA几乎都是面向对象的这样一种思想,所以基本上都是通过实例化对象来完成功能的。静态的方法,是不管你对象实例化与否都存在的,这个能明白吗?第二,而类中定义的属性(就是所谓的变量),是要在对象实例化之后才会存在的,这个明白吗??好的,因为上面的第二条的原因,你的静态方法不知道你的对象究竟实例化没有,所以静态方法不知道你这个变量存不存在。这个懂吗??既然,都不知道变量存不存在,那么你怎么可以随便使用呢??明白了吗?没明白接着提问哈。。。我尽量帮忙
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-12
静态变量和静态方法是属于类本身的 他不属于任何一个实例 任何一个实例都可以使用它以及改变它(如果非常量的话)main()函数是一个特殊的函数 我们称它为入口函数 它是由你的类本身拥有的 拥有它的类我们称他为主类 main()里面调用的非静态变量也必须是你实例化一个类才能使用 实际上它用到的非静态变量是你的实例的非静态变量
第2个回答  2013-11-12
书上没有说静态实例不能调用非静态变量。
第3个回答  推荐于2016-07-02
  静态变量使用:
  1、只有一个副本,实例化类,不会初始化静态变量的值。属于类所有,生命周期和网站运用程序一样长
  2、C# 不支持静态局部变量(在方法内部定义静态变量)。
  静态方法使用:
  1、静态方法不能引用非静态变量
  2、静态方法只能被重载,而不能被重写,因为静态方法不属于类的实例成员;当然也不能是Virtual和abstract类型的.
相似回答