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)
    
  • 相关阅读:
    Easyui datagrid 修改分页组件的分页提示信息为中文
    Easyui datagrid 实现表格记录拖拽
    Java:内部类
    算法导论:Trie字典树
    算法导论:找零钱问题
    lintcode:组成最大的数
    lintcode:验证二叉查找树
    lintcode:将二叉查找树转换成双链表
    lintcode:二叉树的路径和
    lintcode:字符串置换
  • 原文地址:https://www.cnblogs.com/zhaoxxnbsp/p/12843236.html
Copyright © 2011-2022 走看看