• 代码块小知识


    代码块介绍:
    代码块又称为初始化块,属于类中的成员也是类的一部分,类似于方法,将逻辑语句封装在方法体中,通过"{ 括号 }"包围起来

    但不同的是,没有方法名、没有返回值、没有参数、只有方法体,而且是不用通过对象或类显式调用,而是加载类时,或创建对象时隐式调用

    语法:
    {
    代码块
    }
    staitc[修饰符]{
    代码块
    }

    注意:
    1. 修饰符 可选,但也只能写static
    2. 代码块分为两类,使用static 修饰的叫静态代码块,没有static修饰的,叫普通代码块/非静态代码块
    3. 逻辑语句可以为任何逻辑语句(输入,输出,方法调用,循环,判断等)
    4. 结尾时 “;” 可以写也可以省略

    好处:
    1. 相当于另一种形式的构造器(对构造器的补充机制),可以做初始化的操作
    2. 如果多个构造器中存在重复的语句,可以剪切到初始化块中,提高代码的简易性,可读性

    代码演示
    创建Cartoon类,定义成员变量,定义构造器,创建静态/非静态代码块,重写toString方法
    在这里插入图片描述
    声明Cartoon对象,并分别调用Cartoon类中的两个构造器
    在这里插入图片描述
    输出结果:
    如下显示
    静态代码块的语句只会调用一次,不管加载多个方法也只会显示一次
    非静态代码块则是方法调用一次,就会显示一次
    在这里插入图片描述

    如果创建一个子类对象时存在继承关系,它们的静态代码块,静态属性初始化普通代码块,普通属性初始化,构造方法的调用顺序如下:
    1.父类的静态代码块和静态属性(优先级一致,按定义顺序执行)
    2.子类的静态代码块和静态属性(优先级一致,按定义顺序执行)
    3.父类的普通代码块和普通属性初始化(优先级一致,按定义顺序执行)
    4.父类的构造方法
    5.子类的普通代码块和普通属性初始化(优先级一致,按定义顺序执行)

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    卸载vs方法
    亚信面试题
    python基于PHP+MySQL的学生宿舍管理系统
    背会了常见的几个线程池用法,结果被问翻了
    进程概念[下]
    Redis 数据类型
    【机器学习项目实战10例】(五):基于随机森林的假新闻检测项目
    CMSC5707-高级人工智能之音频信号特征提取
    Java设计模式之备忘录模式
    20220620 面试复盘
  • 原文地址:https://blog.csdn.net/weixin_55086241/article/details/126764403