zoukankan      html  css  js  c++  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年 我 出生了
  • 相关阅读:
    【hive】null值判断
    【hive】where使用注意的问题
    【hive】关于浮点数比较的问题
    【hive】在alter修改元数据的时候报错 mismatched input 'xxxxx' expecting KW_EXCHANGE
    破解诅咒心法
    泡妞心法
    awk高级
    排除故障的总结
    机房运维相关面试题
    统计流入流出流量
  • 原文地址:https://www.cnblogs.com/hdk1993/p/4867303.html
Copyright © 2011-2022 走看看