在一个类里成员变量的用法

Z343012090 2017-04-06 09:06:06
在一个类里成员变量的作用域是整个类吧,为什么要声明为STATIC时才能直接调用呢?比如下面的例子,
public class HelloWorld {
static int a=2;

public static void main(String []args) {
System.out.println("a="+a);
}
}
如果我把STATIC去掉,就输出不了2,显示错误,
...全文
114 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
galiniur0u 2017-04-07
  • 打赏
  • 举报
回复
由于main函数为静态函数,在程序编译过程中会去查找函数内的变量的地址是否能够访问,而一个非static的类内成员变量在这时候是没有实际的地址的,导致无法引用而报错。因此,在任何情况下想要调用其他类里的成员变量,都需要把这个变量变为static。或者实例出这个类,在通过这个实例来引用这个非static的变量。一个类里的非静态函数之前相互引用是不需要new的。
Z343012090 2017-04-06
  • 打赏
  • 举报
回复
如果我同一个类里的非静态方法调用另一个非静态方法,需要NEW吗?
一个智子 2017-04-06
  • 打赏
  • 举报
回复
因为main方法是static静态的,在静态方法中不能调用非静态,所以必须加static

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧