java中静态方法调用非静态变量的问题

tianzishuode4 2009-11-06 09:15:40
think in java中有一处讲到尽管没有“显式地使用static关键字,构造器实际上也是静态方法。”
但是静态方法不是不能对非静态字段进行引用的吗?
但是我试过了好像可以呀。
这是为什么呢?
code:

class StaticArea{
int i;
StaticArea(){
i=3;
}
}
public class TestStatic {
public static void main(String[] args){
StaticArea sa=new StaticArea();
System.out.println(sa.i);
}
}

求解释...
...全文
366 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianzishuode4 2009-11-12
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 zangxt 的回复:]
构造器怎么也不可能是静态方法。
[/Quote]
是啊,在Douglas的《Java Rules》里面明确地写了构造器是非static的,看来他们2个需要一次很好的交流
ZangXT 2009-11-06
  • 打赏
  • 举报
回复
构造器怎么也不可能是静态方法。
ZangXT 2009-11-06
  • 打赏
  • 举报
回复
thinking in java这地方很扯淡
loveofmylife 2009-11-06
  • 打赏
  • 举报
回复
尽管没有显式地使用static关键字,构造器实际上也是静态方法
主要看后面的描述,其实和说private methods是final的那段一样,都是说的意义,而不是结构
So the first time an object of type Dog is created, or the first time a

static method or static field of class Dog is accessed, the Java interpreter must

locate Dog.class, which it does by searching through the classpath.
amdgaming 2009-11-06
  • 打赏
  • 举报
回复
你new 的 啊 当然没有问题了。。。
tianzishuode4 2009-11-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 swandragon 的回复:]
看错了
[/Quote]
......其实是我的错,上引号应该往前移动4个字.......
swandragon 2009-11-06
  • 打赏
  • 举报
回复
看错了
swandragon 2009-11-06
  • 打赏
  • 举报
回复
显式地使用static关键字,构造器实际上也是静态方法
你的static在哪?

62,614

社区成员

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

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