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)
    
  • 相关阅读:
    DLUTOJ 1209 字典序和r-子集
    C++ Standard-Library Random Numbers
    后缀数组模板
    UVA 1398 Meteor
    STL Iterators
    hihocoder1187 Divisors
    51nod 子序列的个数(动态规划)
    51nod 最长单增子序列(动态规划)
    51nod 更难的矩阵取数问题(动态规划)
    51nod 多重背包问题(动态规划)
  • 原文地址:https://www.cnblogs.com/zhaoxxnbsp/p/12843236.html
Copyright © 2011-2022 走看看