首页 > 其他分享 >2023.09.26 动手动脑

2023.09.26 动手动脑

时间:2023-09-28 23:13:15浏览次数:31  
标签:2023.09 26 Leaf 初始化 动脑 System Mid println out

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("Java初始化顺序演示");
        System.out.println("执行Leaf的构造器");
    }

}

public class TestStaticInitializeBlock
{
    public static void main(String[] args) 
    {
        new Leaf();
        

    }
}
复制代码

运行结果:

Root的静态初始化块

Mid的静态初始化块

Leaf的静态初始化块

Root的普通初始化块

Root的无参数的构造器

Mid的普通初始化块

Mid的无参数的构造器

Mid的带参数构造器,其参数值:Java初始化顺序演示

Leaf的普通初始化块

执行Leaf的构造器

 可以看出在静态初始化块是先于其他构造块的进行的,在声明类时静态初始化块就已经在内存中,所以在构造时最先调用

标签:2023.09,26,Leaf,初始化,动脑,System,Mid,println,out
From: https://www.cnblogs.com/dmx-03/p/17736636.html

相关文章

  • 226. 翻转二叉树
    给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。示例1:输入:root=[4,2,7,1,3,6,9]输出:[4,7,2,9,6,3,1]示例2:输入:root=[2,1,3]输出:[2,3,1]示例3:输入:root=[]输出:[]第一眼想到了递归/***Definitionforabinarytreenode.*structTreeNode{*......
  • 2023年9月28日(动手动脑)
    PublicclassTese{pulicstaticvoifmain(String[]args){Fooobj1=newFoo();}classFoo{intvalue;publicFoo(intinitValue){value=initValue;}}}以上代码在编译时会出现错误,原因是因为如果类提供了一个自定义的构造方法,将导致系统不再提高默认构造方法。而对......
  • 每日总结——9.26(周二)
    学习工作描述同事都走了,一个人在这边,就简单地重新整理了一下Furion框架的笔记总结与反思没有自制力,马上就要回家了,心思都往外面飞走了明日计划收拾东西,回,,,家,,,了,,,......
  • 2023.9.28动手动脑
    1.此代码有什么问题 建造构造类的构造函数,再调用时需要输入传入参数,不能再调用原始类的默认构造。2.静态方法中只允许访问静态数据,那么,如何在静态方法中访问类的实例成员(即没有附加static关键字的字段或方法)?在静态方法中访问类的实例成员(非静态字段或方法),需要通过实例化类对......
  • LED驱动芯片同步降压AP3266高效率IC
    产品描述AP3266是高效率、外围简单、内置功率管的同步降压恒流芯片,适用于4-40V输入的降压LED恒流驱动芯片。输出最大功率可达40W,最大电流3.6A。AP3266可通过调节OVP端口的分压电阻,设定输出空载电压保护,避免高压空载上电瞬间烧坏LED灯。AP3266工作频率固定在130KHZ,......
  • 9.26雅礼致郁赛
    总结难难难难难!!!0+0+35=35(呃呃呃呃这都能得第五T1大概是提高组第三题(......
  • P2602 [ZJOI2010] 数字计数&HDU 2089 (数位dp)
    luoguHDU最近在复习数位dp数位dp,就是在一些计数问题的时候按照一位一位的顺序依次计算,通常可以采用记忆化搜索的方式这两道题就是很典型的数位dp数位dp通常要记录是不是顶着上限,有没有前导零,到了哪一位以及一些特殊的条件要求。数位dp通常要把某个区间的问题转变成两个区间......
  • 9.26 周二总结
    以下这段代码是我在进行四则运算程序编写中所学到的处理四则运算判断的方法,内容如下importjava.util.Stack;publicclassArithmeticExpressionEvaluator{  publicstaticvoidmain(String[]args){    Stringexpression="11/(5*2)"; //替换为你的......
  • 2023.09.27
     今天主要进行了四则运算FileReaderf=null;//创建文件读取对象BufferedReaderf1=null;//创建字符流读取对象Filefile=newFile("src//err_list.txt");try{f=newFileReader(file);f1=newBufferedReader(f);......
  • 2023/9/26 动手动脑
    自己构造函数传入参数,在用该类时用传入参数静态方法中只允许访问静态数据,那么,如何在静态方法中访问类的实例成员(即没有附加static关键字的字段或方法)?classMyClass{privateintnumber;//实例字段publicstaticvoidmain(String[]args){MyClassmyOb......