java,静态方法为什么不能调用类成员?

如题!... 如题! 展开
 我来答
我是胡磊
2009-10-09 · TA获得超过1.5万个赞
知道大有可为答主
回答量:1495
采纳率:0%
帮助的人:774万
展开全部
你想想,假如你用静态方法调用非静态变量,当类没有初始化的时候就可以使用静态方法,但是这个时候,非静态变量还未产生呢. 编译都会报错的 .
这么说吧,静态的对象,在内存中实默认实例化的,在加载的时候就会存放到内存中。
也就是可以直接调用而不需要手动实例化。

理解这个就不难理解楼主说的问题了。
首先内部的静态类他是不能直接被实例化的。你必须实例化外部类才能实例化它。而外部类不是默认加载的,他只有在手动实例化之后才有内存分配。

这时问题出现了。既然静态对象是默认加载,那么静态内部类应该先于外部类被加载到内存中。

那么这是又和我们之前的一个结论相反(首先内部的静态类他是不能直接被实例化的。你必须实例化外部类才能实例化它。)所以这种写法是错误的。
freish
2009-10-09 · TA获得超过2878个赞
知道大有可为答主
回答量:3153
采纳率:0%
帮助的人:2698万
展开全部
类成员只有在new一个对象的时候才存在

static方法不需要new对象就可以调用,那么在static方法里面怎么可以使用一个还不存在的成员呢?!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pujia12345
2009-10-09 · TA获得超过3680个赞
知道大有可为答主
回答量:3456
采纳率:0%
帮助的人:2979万
展开全部
静态方法生命周期在类被载入内存,这时对象都没有创建,怎么能调用普通的方法、成员,只有调用static成员 static方法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式