A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 liuelxiwd 于 2013-5-14 12:24 编辑

比如main方法中要调用全局变量 int a;就会提示错误,貌似new一个对象后,Test test = new Test(); 然后就可以用test.a来调用了,为什么呢?

7 个回复

倒序浏览
这个int a是全局变量吗?
回复 使用道具 举报
王靖远 发表于 2013-5-14 11:02
这个int a是全局变量吗?

对,我举的例子
回复 使用道具 举报
liuelxiwd 发表于 2013-5-14 11:07
对,我举的例子

全局变量应该是public static final修饰吧。而且全局变量是要在静态代码块中初始化。
回复 使用道具 举报
王靖远 发表于 2013-5-14 11:11
全局变量应该是public static final修饰吧。而且全局变量是要在静态代码块中初始化。 ...

不是,只要在类中定义的变量都是全局变量,方法体中定义的变量叫局部变量
回复 使用道具 举报
被静态修饰的东西是属于类的。
优先于对象存在。同样也优先于全局变量存在。
你用一个存在的东西,去访问不存在的。
肯定有问题啊。。。
不理解,加我QQ私聊。

楼主注意结贴。。呵呵。。
回复 使用道具 举报
静态方法和变量,只要程序加载了类的字节码,不用创建任何实例对象就会被分配空间,他们就可以直接通过类访问;而类中的全局变量属于对象,只有对象被创建了,才会被分配空间。如果静态方法访问非静态方法或者变量,如果该类对象没创建,那么这个非静态方法或者变量就不存在,试图访问不存在的方法或者变量当然是错误的。
回复 使用道具 举报
一直不明白怎么结贴,晕,所以一直不敢发帖
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马