java对象初始化顺序验证示例
2018-10-12 13:59
519 查看
public class Derive extends Base
{
private Member m1 = new Member("Member 1");
{
System.out.println("Initial Block()");
}public Derive() {
System.out.println("Derive()");
}private Member m2 = new Member("Member 2");
private int i = getInt();private int getInt()
{
System.out.println("getInt()");
return 2;
}public static void main(String[] args)
{
new Derive();
}
}class Base
{
public Base()
{
System.out.println("Base()");
}
}class Member
{
public Member(String m)
{
System.out.println("Member() "+m);
}
}
/*程序输出:
Base()
Member() Member 1
Initial Block()
Member() Member 2
getInt()
Derive()
*/
得出结论如下:不考虑静态成员的初始化,调用一个对象的构造函数时,程序先调用父类的构造函数(可以通过super关键字指定父类的构造函数,否则默认调用无参的构造函数,并且需要在子类的构造函数的第一行调用),之后静态成员变量的初始化函数和静态初始化块则按照在代码当中的顺序执行,成员变量如果没有指定值的话则赋予默认值,即基本数据类型为0或false等,对象则为null;最后调用自身构造函数。
您可能感兴趣的文章:
相关文章推荐
- java对象初始化顺序的简单验证
- java中类/对象的初始化顺序以及静态代码块的使用
- Java 对象初始化顺序
- Java 对象初始化顺序
- java对象初始化顺序
- JAVA对象的初始化顺序
- Java 类和对象的初始化过程及初始化顺序
- java 类的实例 new一个对象初始化顺序
- Java对象初始化顺序
- 简单测试java里一个对象的初始化是按怎样的顺序执行的
- Java中静态代码块及对象的初始化顺序
- java类的初始化和对象的创建顺序
- java的继承关系中对象的加载和初始化顺序
- java 创建对象的四种方式、java对象初始化顺序
- Java中对象的初始化顺序
- java程序在执行过程中,类,对象以及它们成员加载、初始化的顺序如下:
- java对象初始化顺序(含测试代码)
- Java对象初始化顺序
- 从一个实例看java,new一个对象时的初始化顺序
- Java 对象初始化顺序 执行顺序