java为什么定义的变量在main中不能用?

如题所述

这叫做“静态方法不能调用非静态变量”,因为,非静态变量时依赖于对象存在的,而静态方法不依赖于对象,可以使用类名直接调用。一个不依赖与对象的方法,调用一个依赖于对象存在的变量当然不行了。追问

那为什么java中的main函数要定义为static?

追答

首先,java里面叫做方法,不叫函数。其次,main方法是所有java application的入口。加上static也是他默认的写法,当然你也可以把它去掉,但是那样就不是入口了,它就成了一个普通的方法。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-18
你好
因为main是static修饰的静态方法,只能访问静态变量,所以你可以用static修饰变量a,
希望对你有帮助追问

那为什么java中的main函数要定义为static?

追答

main方法是程序的入口,在此入口之前不会产生任何对象,所以如果main方法是非static的成员方法,jvm是无法调用的,就进不了入口,那么程序也无法运行。而static的main方法可以不需要产生对象而调用。

本回答被提问者采纳
第2个回答  2013-11-18
好好补补基础知识

因为static方法,变量 无需实例化就可以使用
main方法是static声明的
而你那个a的变量是实例变量 (顾名思义就是必须实例化才可以使用)
报错是因为 你的编译器的检查约束
加个static就可以使用了追问

那为什么java中的main函数要定义为static?

第3个回答  2015-10-12
main是static修饰的静态方法,只能访问静态变量,定义变量前面加上static修饰词就ok了
第4个回答  2013-11-19
因为静态方法main必须调用静态的东西,包括静态成员,而你的int a 不是静态的所以报错,可以吧int a 改成 static int a;追问

为什么java中的main函数要定义为static?

相似回答