本文主要是介绍理解static与非static部分的实例化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1. static属性的实例化过程
查看编译文件就会发现,static块会在最开始自动加上static属性值的初始化内容,顺序是按照书写依次执行,再然后是static块本身的内容。
a)先调用父类的static{}
b) static{
static属性值A 赋值操作
static属性值B 赋值操作
static块本身的赋值操作
}
2.非static 属性的实例化过程
查看编译文件会发现,所有的构造器都会在最开始自动加上非static的属性值以及普通块的内容,顺序是先非static属性值依次执行,再然后是普通块的内容,最后是构造器本身的内容。
Constructor(){
super(******)
非static属性值A 赋值操作
非static属性值B 赋值操作
}
Constructor(String a){
static属性值A 赋值操作
非static属性值A 赋值操作
非static属性值B 赋值操作
}
3. 以非static属性为例,解释了为什么前一个属性值A在赋值操作的的时候如果引用B则此时B是null。注意:如果B是final的并且是直接赋值,那么A同样可以引用到B被赋值后的值。
static同理。
这篇关于理解static与非static部分的实例化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!