java类对象的初始化顺序
2017-10-30 23:31
169 查看
类对象的初始化顺序
1.static成员变量默认初始化
2.static块初始化
3.实例成员变量默认初始化
4.实例块初始化
5.构造函数
或
1.static块初始化
2.static成员变量默认初始化
3.实例块初始化
4.实例成员变量默认初始化
5.构造函数
代码测试:
测试用例1结果:
测试用例2结果:
1.static成员变量默认初始化
2.static块初始化
3.实例成员变量默认初始化
4.实例块初始化
5.构造函数
或
1.static块初始化
2.static成员变量默认初始化
3.实例块初始化
4.实例成员变量默认初始化
5.构造函数
代码测试:
class Date{ private int year; private int month; private int day; //Date静态初始化块 static{ System.out.println("Date static init block!"); } //Date实例初始化块 { System.out.println("Date instance init block!"); this.year=year; this.month=month; this.day=day; } //Data自定义构造函数 public Date(int y,int m,int d){ System.out.println("Date(int, int ,int)"); this.year=y; this.month=m; this.day=d; } } class Staff{ private String name; private int age; private String sex; private static int count;//定义成static成员 ,此时它的内存从堆变到方法区 //private Date date; //测试用例1: private Date date=new Date(2017,1,7); //测试用例2: //private static Date date=new Date(2017,1,7); //Staff静态初始化块 static{ System.out.println("Staff static init block!"); count=0; } //Staff实例初始化块 { System.out.println("Staff instance init block!"); this.name = "default"; this.age = 0; this.sex = "default"; count++; } //Staff默认构造函数 public Staff(){ System.out.println("Staff(String, int, String, int, int, int)"); } //Staff自定义构造函数 public Staff(String name, int age, String sex,int y,int m,int d) { System.out.println("Staff(String, int, String, int, int, int)"); //date =new Date(y,m,d); this.name = name; this.age = age; this.sex = sex; } public String toString() { return "Staff [name=" + name + ", age=" + age + ", sex=" + sex + ", date=" + date + "]"; } } public class TestObjectDemo { public static void main(String[] args) { Staff p1=new Staff("李敏镐",32,"男",1987,5,18); } }
测试用例1结果:
测试用例2结果:
相关文章推荐
- Java类及对象初始化的顺序
- Java类和对象初始化顺序
- Java类和对象的初始化顺序
- Java类和对象的初始化顺序
- java类的初始化和对象的创建顺序
- JAVA类属性和对象属性的初始化顺序
- java类的加载顺序,父类和子类初始化的顺序和重写所遇到的上塑造型
- Java基础巩固:类和对象的初始化顺序
- 转!!关于java类初始化顺序
- 关于java类初始化的顺序
- java类中元素初始化顺序详解
- Java类成员变量的初始化顺序
- 通过java字节码分析学习对象初始化顺序
- Java中初始化对象的顺序,静态代码块的用法以及Static的用法详解
- Java类及对象的初始化
- java类初始化顺序
- java类的初始化顺序
- Java中对象初始化顺序的详细介绍
- 对象初始化语块执行顺序
- 从一个实例看java,new一个对象时的初始化顺序