zoukankan      html  css  js  c++  java
  • java类的初始化和实例化

    1、面试题

    Father.java

    package org.example.classinit;
    
    public class Father {
        private int i = test();
        private static int j = method();
    
        static {
            System.out.println("Father 静态块 = (1)");
        }
    
        public Father(){
            System.out.println("Father 构造器 = (2)");
        }
    
        {
            System.out.println("Father 代码块 = (3)");
        }
    
        private int test() {
            System.out.println("Father 成员方法 test() = (4)");
            return 0;
        }
        private static int method() {
            System.out.println("Father 类方法 method() = (5)");
            return 0;
        }
    }
    
    

    Son.java

    package org.example.classinit;
    
    public class Son extends Father{
        private int i = test();
        private static int j = method();
    
        static {
            System.out.println("Son 静态块 = (6)");
        }
    
        public Son(){
            System.out.println("Son 构造器 = (7)");
        }
    
        {
            System.out.println("Son 代码块 = (8)");
        }
    
        private int test() {
            System.out.println("Son 成员方法 test() = (9)");
            return 0;
        }
        private static int method() {
            System.out.println("Son 类方法 method() = (10)");
            return 0;
        }
    }
    
    

    SonTest.java

    package org.example.classinit;
    
    
    import org.junit.Test;
    
    public class SonTest {
    
        @Test
        public void test01(){
            Son s1 = new Son();
            System.out.println("-------------");
            Son s2 = new Son();
    
        }
        
    }
    

    2、结果

    Father 类方法 method() = (5)
    Father 静态块 = (1)
    Son 类方法 method() = (10)
    Son 静态块 = (6)
    Father 成员方法 test() = (4)
    Father 代码块 = (3)
    Father 构造器 = (2)
    Son 成员方法 test() = (9)
    Son 代码块 = (8)
    Son 构造器 = (7)
    -------------
    Father 成员方法 test() = (4)
    Father 代码块 = (3)
    Father 构造器 = (2)
    Son 成员方法 test() = (9)
    Son 代码块 = (8)
    Son 构造器 = (7)
    
  • 相关阅读:
    FPGA远程更新之限制条件
    异步FIFO格雷码与空满
    异步FIFO空满设计延迟问题
    从云端到边缘 AI推动FPGA应用拓展
    异步FIFO跨时钟域亚稳态如何解决?
    FPGA该如何应对ASIC的大爆发?
    AbstractQueuedSynchronizer概述
    ssh 解决经常断开与记住密码功能
    CentOS 7 Docker安装
    Redis设计与实现笔记
  • 原文地址:https://www.cnblogs.com/zhaoxxnbsp/p/12843236.html
Copyright © 2011-2022 走看看