java初始化块
来源:互联网 发布:百度网盘直链系统源码 编辑:程序博客网 时间:2024/05/12 21:57
java的初始化块可以算作类中继属性、方法、内部类的第4类成员。主要用于完成属性的初始化。
而属性的初始化主要分成3个阶段
- 调用构造函数前
- 调用构造函数时
- 调用构造函数后
2,3两点很好理解,基本上就是在构造对象的过程中对对象的属性进行初始化,或者在对象构造完成后,通过set方法进行修改。
其实,第一个阶段有分为3个子阶段
默认的初始化
class Student{private int id;private String name;public Student() {super();System.out.println("--->无参构造器");}public Student(int id, String name) {super();this.id = id;this.name = name;System.out.println("--->有参构造器");}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic String toString() {return "Student [id=" + id + ", name=" + name + "]";}}
//默认的初始化@Testpublic void test1(){Student s = new Student();System.out.println(s);}则结果如下:
显示的初始化方式
其他地方不变,类属性后直接进行初始化
private int id = 1;private String name = "wanghao";结果如下:
代码块初始化
其他地方不变,属性和方法之间增加代码块
<span style="white-space:pre"></span>private int id = 1;private String name = "wanghao";{id = 3;name = "lalala";System.out.println("--->代码块1");}{id = 4;name = "吼吼";System.out.println("--->代码块2");}代码块需要注意如下几点:
- 初始化代码块的执行是先于构造器的
- 属性默认、显示的初始化顺序要依据两者书写的顺序,一般情况下都是属性写在前
- 多个初始化块之间按顺序执行
则结果如下
静态代码块
- 里面可以有输出语句
- 随着类的加载而加载,而且只被加载一次
- 多个静态代码块之间按照顺序结构执行
- 静态代码块的执行要早于非静态代码块的执行。
- 静态的代码块中只能执行静态的结构(类属性,类方法)
static{System.out.println("--->静态代码块1");}{id = 3;name = "lalala";System.out.println("--->代码块1");}{id = 4;name = "吼吼";System.out.println("--->代码块2");}
结果如下
0 0
- java静态初始化块、实例初始化块
- Java中的初始化块
- Java中的初始化块
- Java中的初始化块
- Java:初始化块
- Java中的初始化块
- Java的初始化块
- java中初始化块
- java 初始化块笔记
- Java静态初始化块
- java初始化块
- Java 静态初始化块
- java 初始化块
- Java中的初始化块
- java 静态初始化块
- java 静态初始化块
- java初始化块
- 【Java】初始化块
- 内容可编辑且随内容自增长的div
- ZOJ2835 Magic Square【幻方验证】
- 图论06—Dijkstra算法(优化)
- 一个丝滑的全屏滑动返回手势
- 完成一个YUV文件播放器
- java初始化块
- Error hnk2005:exist already defined in msvcrt.lib(MSVCR100.dll)_LIBCMTD.lib 解决方案
- How to fix “System program problem detected” error on Ubuntu
- Android学习系列之(三)Activity的基本使用
- poj 3468 A Simple Problem with Integers(线段树区间修改)
- Linux下32位和64位不同数据类型字段长度
- HDU5411CRB and Puzzle(矩阵快速幂)
- 626 intersection set
- HDU 5398 GCD TREE LCT维护贪心