Java中构造函数执行顺序的问题
来源:互联网 发布:seo网站内部优化 编辑:程序博客网 时间:2024/04/29 09:10
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年 我 出生了
- Java中构造函数执行顺序的问题
- Java中构造函数执行顺序的问题
- Java中构造函数的执行顺序
- Java中构造函数、构造代码块、静态代码块等的执行顺序问题
- 转来的:java中静态块和构造函数的执行顺序问题
- java 中代码块、构造函数的执行顺序
- Java中 构造函数与初始化块的执行顺序
- Java中构造函数、static块、{}块的执行顺序
- C++中构造函数的执行顺序
- C++中构造函数的执行顺序
- C++中构造函数的执行顺序
- C++中构造函数的执行顺序
- C++中构造函数的执行顺序
- C++中构造函数的执行顺序
- JAVA 继承 构造函数的执行顺序
- java构造函数的执行顺序
- JAVA 继承 构造函数的执行顺序
- 【java】构造函数的继承执行顺序
- 弹性域学习
- Android版本及版本代号对照
- SOA架构下如何解决服务与服务使用者之间的关系?
- phpMyadmin最大执行时间修改
- C#当前月天数
- Java中构造函数执行顺序的问题
- ListView的右边滚动滑块启用方法
- TCP 滑动窗口协议
- String,StringBuilder与StringBuffer和String 的区别
- strcmp函数的实现
- hive函数 regexp_extract实践
- 怎样快速搜索自己所需的资料?
- javascript 截取get参数
- 弹性域学习——说明性弹性域