• java课后作业3


    1、动手动脑

     

     由于类中定义了需要参数的构造方法,导致系统不再提供默认的构造方法。

    2、java字段初始化

       

    运行结果

    100

    300

    java字段在初始化时先按照对应的构造方法执行。若构造方法中没有对变量进行初始化,对于变量定义时初始化和初始化块,排在后面的会覆盖在前面的。

    3、动手动脑

    静态初始化块的执行顺序

    源码

    public class Root1
    {
       public static void main(String[] args)
       {
          new Leaf();
      
       }
    }
    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("Java初始化顺序演示");
          System.out.println("执行Leaf的构造器");
       }
    }
     
     运行结果
    Root的静态初始化块
    Mid的静态初始化块
    Leaf的静态初始化块
    Root的普通初始化块
    Root的无参数的构造器
    Mid的普通初始化块
    Mid的无参数的构造器
    Mid的带参数构造器,其参数值:Java初始化顺序演示
    Leaf的普通初始化块
    执行Leaf的构造器
     
     

    规律

    (1)静态初始化块只执行一次(2)创建子类型的对象时,也会导致父类型的静态初始化块的执行

    4、

     

     直接在静态方法中初始化含有实例对象的类会报错


    public class statics {
       int x=1;
       static int y=2;
       public static void method()
       {
          int a=new statics();
          System.out.println();
       }
    }

    采用如下方法进行调用


    public class statics {
       int x=1;
       static int y=2;
       public static void main(String[] args)
       {
          System.out.println(new statics().x);
          System.out.println();
       }
    }

  • 相关阅读:
    【思维导图】渗透测试流程
    Imperva WAF使用笔记
    elk查询语法
    Linux入侵检测常用命令
    前端工作面试问题
    看看如何面试前端工程师:Github很重要
    编程面试的10大算法概念汇总
    菜鸟介绍达到什么样的标准才能是大公司要的前端
    开发资源总结 (持续整理中)
    超级全的前端学习资料
  • 原文地址:https://www.cnblogs.com/songxinai/p/11684169.html
Copyright © 2020-2023  润新知