java中静态方法是不能向对象实施操作的方法.我的理解怎么不是这样?

huazi123654 2007-07-20 06:06:56
public class test
{
int a=10;
pulblic static void main(String [] args)
{
test test=new test();
System.out.print(test.a);
}
}
/*我在静态方法里对对象进行了操作了,还访问了他了实例域。我的理解不知道是怎么回事,肯请大师指点!!!

谢谢!!!*/
...全文
251 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangkjzmcc 2007-07-21
  • 打赏
  • 举报
回复
得出“静态方法不能直接访问非静态成员”这种说法的依据在于,
静态method被调用时没有传入this指针作为参数,所以就无法访问this.a, 但是在你的代码中访问的是test.a,因为test所引用的Object你已经创建了,所以你当然就可以访问test.a了。所以理解这个问题的关键就是this指针的问题
candy123360 2007-07-20
  • 打赏
  • 举报
回复
楼上说的对,main方法中不可以直接访问非静态的变量,可以把a声明成静态的
晨星 2007-07-20
  • 打赏
  • 举报
回复
你那个test对象是main方法局部的,也就是它自己的,当然可以了。
所谓“静态方法不能直接访问非静态成员”,意思是指,你不可以写这种代码:
public class test
{
int a=10;
pulblic static void main(String [] args)
{
System.out.print(a);
}
}

62,623

社区成员

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

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