JAVA中字段的初始化!!谢谢!!

[复制链接]
查看11 | 回复3 | 2011-2-25 21:18:36 | 显示全部楼层 |阅读模式
如果程序中的一个字段,既用了直接初始化,也用了静态初始化器,还用了构造器,那么这三种方法初始化字段有先后次序吗??谢谢!!

回复

使用道具 举报

千问 | 2011-2-25 21:18:36 | 显示全部楼层
先调用构造器,然后在生成实例之前调用了静态初始化,也就是说如果不生成实例的话该属性会是静态值。生成实例之后(就是new之后)如果对该属性赋值,则属性值发生了变更,变成你赋给它的值 顺序要搞清楚,静态块跟静态字段并不是类加载的时候执行。类加载的时候执行的是类的构造方法。在构造方法之后在对静态的属性进行初始化(静态块跟静态属性谁先谁后不太清楚,应该是根据程序编写的顺序吧),最后才是实例的初始化
回复

使用道具 举报

千问 | 2011-2-25 21:18:36 | 显示全部楼层
先构造,再看其他的调用顺序,
回复

使用道具 举报

千问 | 2011-2-25 21:18:36 | 显示全部楼层
静态初始化代码只在创建第一个对象的时候执行时执行,对应模块为用static标示的代码。动态初始化是其他内容了,嘎嘎,即在structure当中执行。个人理解。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行