请教几个概念方面的问题,弄懂马上揭贴!
1,今天看了程序员蔡学镛专栏,有一个疑问就是,“……上述的instancemethod1()内部可以出现instancefiled。如果某class的class method或instance method 欲使用到某instance的instance field,就必须在前面冠上instance名称,例如obj.classfield”//对于instance field不是不能被class method访问吗?
2,对于instance field可以在constructor中初始化,class field可以通过static initializer中进行。一个class如果没有定义constructor,那么编译器回制造一个default constructor给你。static initializer是一个类似constructor的method,称为staticnitializer,它是通过
static{
//……
}
来执行的。
//我想问的就是就我所知道的在类中很少有看到staticnitializer的方法,是不是想constructor一样编译器会生成一个默认的,如果有是什么样的?
再就是,constructor与staticnitializer都是用于初始化的,但是constructor是在生成对象的时候才执行的,那staticnitializer是什么时候执行的,我对“类加载的时候”不是很理解?
如果我既有constructor也有直接用int a=3类似的方法进行了初始化,都是进行初始话,那在建立对象的时候先执行哪个初始话呢?