当Java创建一个对象时,系统先为该对象的所有实例属性分配内存(前提是该类已
经被加载过了),接着程序开始对这些实例属性执行初始化,其初始化顺序是:先执行初
始化块或声明属性时指定的初始值,再执行构造器里指定的初始值。
> > 5.9.3静态初始化块 如果定义初始化块时使用了static修饰符,则这个初始化块就变成了静态初始化块,也被称为类初始化块。静态初始化块是类相关的,系统将在类初始化阶段执行静态初始块,而不是在创建对象时才执行。因此静态初始化块总是比普通初始化块先执行。 静态初始化块是类相关的,用于对整个类进行初始化处理,通常用于对类属性执行初始化处理。静态初始化块不能对实例属性进行初始化处理.
*注意静态初始化块也被称为类初始化块,也属于类的静态成负,同样需要遵循静态成员不能访问非静态成员的规则,因此静态初始化决不能访问非静态成员,包括不能访问实例属性和实例方法.
相关文章
- 定义图书类Book,具有属性账号id,铭name.作者author和价格price,在创建图书对象时要求通过构造器进行创建,- -次性将四个属性全部赋值
- Kotlin学习(四)—— 类与对象(类的声明,属性初始化问题,构造器)
- javascript面向对象精要第四章构造函数和原型对象整理精要
- C#语法糖之第二篇: 参数默认值和命名参数 对象初始化器与集合初始化器
- 编写Java程序,模拟简单的计算器。 定义名为Number的类,其中有两个整型数据成员n1和n2,应声明为私有。编写构造方法,赋予n1和n2初始值,再为该类定义加(addition)、减(subtration)、乘(multiplication)、除(division)等公有成员方法,分别对两个成员变量执行加、减、乘、除的运算。 在main方法中创建Number类的对象,调用各个方法,并显示计算结
- JavaScript之面向对象学习六原型模式创建对象的问题,组合使用构造函数模式和原型模式创建对象
- C#高级知识点概要(3) - 特性、自动属性、对象集合初始化器、扩展方法、Lambda表达式和Linq查询
- 疯狂java学习笔记之面向对象(六) - 构造器重载、方法重载和方法重写
- 【JavaScript】19_面向对象中的方法和构造函数
- 黑马程序员_Java基础_面向对象,封装,继承,单例设计模式,构造函数,构造代码块