zoukankan      html  css  js  c++  java
  • 练习题------代码块

    class Root {
      static {
        System.out.println("Root的静态初始化块");
      }
    
      {
        System.out.println("Root的普通初始化块");
      }
    
      public Root() {
        System.out.println("Root的无参数的构造器");
      }
    }
    
    class Mid extends Root {
      static {
        System.out.println("Mid的静态初始化块");
      }
    
      {
        System.out.println("Mid的普通初始化块");
      }
    
      public Mid() {
        System.out.println("Mid的无参数的构造器");
      }
    
      public Mid(String msg) {
        // 通过this调用同一类中重载的构造器
        this();
        System.out.println("Mid的带参数构造器,其参数值:" + msg);
      }
    }
    
    class Leaf extends Mid {
      static {
        System.out.println("Leaf的静态初始化块");
      }
    
      {
        System.out.println("Leaf的普通初始化块");
      }
    
      public Leaf() {
        // 通过super调用父类中有一个字符串参数的构造器
        super("尚硅谷");
        System.out.println("Leaf的构造器");
      }
    }
    
    public class LeafTest {
      public static void main(String[] args) {
        new Leaf();
      }
    }
    

      其中LeafTest  测试类中进行测试    创建Leaf类的对象 由于存在继承关系,创建对象的顺序   Root--->  Mid ---->Leaf   ,静态代码块随着类的加载而执行 非静态代码块是创建对象的时候而执行的,所以执行代码,输出的效果为:

    Root的静态初始化块
    Mid的静态初始化块
    Leaf的静态初始化块
    Root的普通初始化块
    Root的无参数的构造器
    Mid的普通初始化块
    Mid的无参数的构造器
    Mid的带参数构造器,其参数值:尚硅谷
    Leaf的普通初始化块
    Leaf的构造器

  • 相关阅读:
    Python 内存泄露 内存回收机制
    decimal 格式化
    iis 6 配置PHP
    按照 in (....) 里面的顺序进行排序
    设计模式之 访问者模式
    与数据库的列信息有关
    win32 IFolderView2::GetCurrentFolderFlags的使用
    MySQL防止重复插入相同记录 insert if not exists
    c++扩展Python(未验证)
    c++ 获取桌面图标的坐标与名称
  • 原文地址:https://www.cnblogs.com/lxsfve/p/13274941.html
Copyright © 2011-2022 走看看