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中构造函数执行顺序的问题的更多相关文章

  1. java中代码执行顺序

    静态代码块 -- >构造代码块 --> 构造方法静态代码块:只执行一次构造代码块:每次调用构造方法都执行 http://blog.csdn.net/wuhaiwei002/article/ ...

  2. java中的执行顺序

    静态,非静态,构造,先父再子另外,静态块与静态变量的顺序取决于代码中的顺序 Comparable接口应用

  3. C#构造函数、私有构造函数、静态构造函数与构造函数执行顺序

    默认构造函数,如果没有为类指定任何构造函数,编译器会自动为类创建一个无参构造函数,用以初始化类的字段:如果为类编写了构造函数,那么编译器就不会再自动生成无参构造函数了.ps.C#不允许用户为结构定义无 ...

  4. JavaScript在页面中的执行顺序(理解声明式函数与赋值式函数) 转载

    JavaScript在页面中的执行顺序 https://blog.csdn.net/superhoy/article/details/52946277 2016年10月27日 15:38:52 阅读数 ...

  5. Unity脚本在层级面板中的执行顺序测试3

    断断续续的写了3篇,以后有时间可以做成一个系列了 前面2篇测试了GameObject的顺序,以及Awake和OnEnable的时机: Unity脚本在层级面板中的执行顺序测试1 http://www. ...

  6. Unity脚本在层级面板中的执行顺序测试4-附加整理

    测试4为一些附加内容,后续的各种tips都加在此. 前几篇测试的链接: Unity脚本在层级面板中的执行顺序测试1 http://www.cnblogs.com/hont/p/4298110.html ...

  7. 第32节:Java中-构造函数,静态方法,继承,封装,多态,包

    构造函数实例 class Cat{ // 设置私有的属性 name private String name; // 设置name的方法 public void setName(String Name) ...

  8. Java中构造函数传参数在基本数据类型和引用类型之间的区别

    Java中构造函数传参数在基本数据类型和引用类型的区别 如果构造函数中穿的参数为基本数据类型,如果在函数中没有返回值,在调用的时候不会发生改变:而如果是引用类型,改变的是存储的位置,所有不管有没有返回 ...

  9. java代码块执行顺序

    父类 public class Father { public Father() { System.out.println("父类构造PUBLIC father"); } stat ...

随机推荐

  1. IQueryable与IEnumberable的区别

    IEnumerable接口 公开枚举器,该枚举器支持在指定类型的集合上进行简单迭代.也就是说:实现了此接口的object,就可以直接使用foreach遍历此object: IQueryable 接口 ...

  2. js自动刷新页面代码

    <script language="JavaScript">function myrefresh(){window.location.reload();}setTime ...

  3. POJ 1287 Networking (最小生成树)

    Networking Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & %I64u Submit S ...

  4. JavaScript中的getBoundingClientRect()方法

    这个方法返回一个矩形对象,包含四个属性:left.top.right和bottom.分别表示元素各边与页面上边和左边的距离. getBoundClientRect()方法返回的对象中和CSS中所定义不 ...

  5. Lazy Makes Others Busy – a bad experience with DLL

    The Story: Recently, I’m working as a deployment engineer at customer site with my team members. The ...

  6. Part 89 to 91 Talking about pass the parameters in thread

    Part 89   ParameterizedThreadStart delegate Use ParameterizedThreadStart delegate to pass data to th ...

  7. 50个常用的笔试、面试sql语句

    50个常用的笔试.面试sql语句 2009-12-17 15:05   Student(S#,Sname,Sage,Ssex) 学生表Course(C#,Cname,T#) 课程表SC(S#,C#,s ...

  8. C#中数组、ArrayList和List<T>三者的发展历程

    在C#中数组,ArrayList,List使我们用的最多的类型之一.他们共同的作用都是能够存储一组对象. 那么问题来了: (1)为什么要有三个一样作用的东西呢?他们都很完美吗? (2)谁先出生,又是因 ...

  9. C# WinForm动态调用远程Web服务

    本文转自:http://blog.csdn.net/muyangjun/article/details/7930871 1.添加服务引用 2.在弹出的添加服务引用对话框地址栏中输入WebService ...

  10. python:浅析python 中__name__ = '__main__' 的作用

    有句话经典的概括了这段代码的意义: “Make a script both importable and executable” 意思就是说让你写的脚本模块既可以导入到别的模块中用,另外该模块自己也可 ...