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)
    
  • 相关阅读:
    Docker入门
    15个Docker基本命令及用法
    Docker系列
    docker
    Docker 常用命令
    查看用户列表在Linux
    Spring boot Mybatis
    CountDownLatch和CyclicBarrier 专题
    Spring Boot MyBatis 连接数据库
    Spring Boot MyBatis 通用Mapper插件集成 good
  • 原文地址:https://www.cnblogs.com/zhaoxxnbsp/p/12843236.html
Copyright © 2011-2022 走看看