zoukankan      html  css  js  c++  java
  • 综合: Java 对象初始化过程

    class Fu
    {
        Fu()
        {
            show();
        }
        void show()
        {
            System.out.println("xixi");
        }
    }
    
    class Zi extends Fu
    {
        int num = 9;
    
        // 构造代码块
        {
            System.out.println("constructor code..." + num);
            num = 10;
        }
    
        // 构造函数
        Zi()
        {
            super();
            // 显示初始化
            // 构造代码块初始化
            System.out.println("zi constructor..." + num);
        }
    
        void show()
        {
            System.out.println("show..." + num);
        }
    }
    
    class Test
    {
        public static void main(String[] args)
        {
            new Zi();
        }
    }
    
    // 输出结果:
    // show...0
    // constructor code...9
    // zi constructor...10
    

    流程如下图所示:

    // 示例二:
    class A {
    
        static {
            System.out.print("1");
        }
    
        public A() {
            System.out.print("2");
        }
    }
    
    class B extends A{
    
        static {
            System.out.print("a");
        }
    
        public B() {
            System.out.print("b");
        }
    }
    
    public class Hello {
    
        public static void main(String[] args) {
            A ab = new B();
            ab = new B();
        }
    
    }
    
    // 执行结果: 1a2b2b
    // 创建对象时构造器的调用顺序是:先初始化静态成员,然后调用父类构造器,再初始化非静态成员,最后调用自身构造器。
    


    _参考资料_ - [JavaSE 基础视频](https://www.bilibili.com/video/av3096713/index_16.html#page=18) - [Java 面试题](http://blog.csdn.net/jackfrued/article/details/44921941)
  • 相关阅读:
    dubbo官方文档笔记
    maven权威指南读书笔记
    ArrayList实现
    通过json把int[]转成Integer[]
    二分查找,希尔排序,欧几里得,斐波那契
    js快捷键设置
    java字符串和时间转换
    希尔排序动画
    vue render
    前端性能优化,算法
  • 原文地址:https://www.cnblogs.com/linkworld/p/7445704.html
Copyright © 2011-2022 走看看