zoukankan      html  css  js  c++  java
  • 02动手动脑

    首先第一个动手动脑:

     可以看出Foo类里面有一个 Foo函数,还带着参数,如果类提供一个字定义构造方法,将导致系统不再提供默认构造方法。

    第二个动手动脑:

    先附上PPt里面的代码

    package GOGO;
    public class InitializeBlockClass {
     {
      field = 200;
     }
     public int field = 100;
     public void InitializeBlock(int value) {
      this.field = value;
     }
     public void InitializeBlock() {
      
     }
        public static void main(String[] args) {
         InitializeBlockClass obj = new InitializeBlockClass();
         System.out.println(obj.field);
         obj = new InitializeBlockClass(300);
         System.out.println(300);
         System.out.print(obj.field);
        }
    }

    坦白说我不知道为什么要这个样子写代码,而且我这里还不能运行

     第三个动手动脑,是要总结出静态初始化块的执行顺序,

    {
     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("Java初始化顺序演示");
      System.out.println("执行Leaf的构造器");
     }
    }
    public class TestStaticInitializeBlock
    {
     public static void main(String[] args)
     {
      new Leaf();
      
     }
    }
    这里是源代码

    这里是程序运行结果,从结果中可以看出显示静态初始化块先执行,然后是按照顺序从父类开始依次执行。

    这里有一个有趣的问题,那就是怎么在静态方法中怎么访问类的实例成员。

    那就是把静态方法的参数设置为类的实例,这样通过参数传递的方式就可以访问实例的成员了

  • 相关阅读:
    输入框只能输入正数且保留小数后2位数字,正则
    vscode安装ESlint配置
    kubreretes && docker 模块
    python3安装sqlite3库
    dokcerfile 制作Msql镜像
    前端模板
    Python SMTP发送邮件
    k8s-api
    openpyxl
    k8s mysql主从
  • 原文地址:https://www.cnblogs.com/chaogehahaha/p/13796748.html
Copyright © 2011-2022 走看看