java构造顺序_Java中构造函数执行顺序的问题

1,  先执行内部静态对象的构造函数,如果有多个按定义的先后顺序执行;而且静态类的构造函数只会被执行一次,只在其第一个对象创建时调用,即便是创建了同一个类的多个对象,例如main()函数里b1,b2创建了同一个类的两个对象,但是grandmaMotherClass的构造函数只被执行了一次

2,  再执行父类的构造函数(c++中如果有多个,可按照左右先后顺序执行)

3,  再执行内部普通对象的构造函数

4,  最后执行该类本身的构造函数class grandpaClass{ //

public grandpaClass(){

System.out.println("1912年 爷爷 出生了");

}

}

class fatherClass extends grandpaClass{

public fatherClass(){

System.out.println("1956年 爸爸 出生了");

}

}

class grandmaMotherClass{

public grandmaMotherClass(){

System.out.println("奶奶的妈妈 是 1890年出生的");

}

}

class gandmaClass{

static int year = 0;

static grandmaMotherClassnnmm = new grandmaMotherClass();

public gandmaClass(){

year = 1911;

System.out.println(year + "年 奶奶 出生了");

}

public gandmaClass(int count){

year += count;

System.out.println(year + "年 奶奶的妹妹 出生了");

}

}

class motherClass{

public motherClass(){

System.out.println("1957年 妈妈 出生了");

}

}

public class javaclass extends fatherClass{

/**

* @param args

*/

motherClass b = new motherClass();;

static gandmaClass b1 = new gandmaClass();

static gandmaClass b2 = new gandmaClass(2);

public javaclass(){

System.out.println("1981年 我 出生了");

}

public static void main(String[] args) {

// TODO Auto-generatedmethod stub

System.out.println("mainfunction is called");

javaclass my = new javaclass();

}

}执行结果如下:

奶奶的妈妈 是 1890年出生的

1911年 奶奶 出生了

1913年 奶奶的妹妹 出生了

main function is called

1912年 爷爷 出生了

1956年 爸爸 出生了

1957年 妈妈 出生了

1981年 我 出生了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值