首页 > 编程语言 >Java - 26 代码块

Java - 26 代码块

时间:2024-10-31 15:59:02浏览次数:1  
标签:26 调用 Java name 静态 子类 代码 String

Java - 26 代码块

[修饰符 static]{
  代码  
};

类似于方法,没有方法名,没有返回,没有参数

不用通过对象或类 显式调用,而是在加载类 或 创建对象时 隐式调用

普通代码块

好处

构造器的补充机制(减少代码重复冗余),可以做初始化操作

/* 不管调用哪个构造器创建对象,都会先调用代码块的内容 */
class Movie{
    private String name;
    private String director;
    
    {
        System.out.println("电影开始了");
    }
    
    public Movie(String name){
        this.name = name;
    }
    public Movie(String name, String director){
        this.name = name;
        this.director = director;
    }
}

细节

  1. 静态代码块 随着类的加载而执行只会执行一次

​ 普通代码块 每创建一个对象 (new, 和类加载无关) 就执行一次

类什么时候被加载

  • 创建对象实例 (new)

  • 创建子类对象实例,父类也会被加载

  • 使用类的静态成员

  1. 创建一个对象在一个类调用优先级

① 静态代码和静态属性初始化(如果多个,按定义的顺序调用)

A a = new A(); // (1)"getN1 被调用"; (2)"A 静态代码块01"

class A{
    private static int n1 = getN1();
    
    static{
        System.out.println("A 静态代码块01");
    }
    
    public static int getN1(){
        System.out.println("getN1 被调用");
        return 100;
    }
}

② 普通代码块和普通属性初始化(如果多个,按定义的顺序调用)

③ 构造器

  1. 构造器 最前面隐含了 super() 和 调用普通代码块

  2. 创建子类对象时,调用顺序

① 父类的静态代码块和静态属性

② 子类的静态代码块和静态属性

③ 父类的普通代码块和普通属性初始化

④ 父类的构造方法

⑤ 子类的普通代码块和普通属性初始化

⑥ 子类的构造方法

  1. 静态代码块只能调用静态成员,普通代码块可以调用任意成员

标签:26,调用,Java,name,静态,子类,代码,String
From: https://www.cnblogs.com/wxrwajiez/p/18518102

相关文章

  • Java - 25 main方法
    Java-25main方法main方法是虚拟机调用的publicstaticvoidmain(String[]args)java虚拟机需要调用类的main方法,所以该方法的访问权限必须是publicjava虚拟机在执行main()方法时不必创建对象,所以是staticargs数组保存执行java命令时传递给运行的类的参数......
  • Java - 24 类变量和类方法
    Java-24类变量和类方法类变量(静态变量)非静态变量=普通变量=实例变量classMain{publicstaticvoidmain(String[]args){Childc1=newChild("wu");c1.join();c1.count++;Childc2=newChild("xin");c......
  • 代码大全2阅读笔记
    代码大全2阅读笔记在当今数字化时代,软件技术日新月异,软件开发的复杂性和规模也在不断增加。为了提升自己在软件开发领域的专业素养和实践能力,我选择阅读《代码大全2》这本书。其全面涵盖软件构建各个方面的内容,吸引我深入探索,期望从中获取宝贵的知识和经验,以更好地应对软件开发......
  • 代码大全阅读笔记
    代码大全2阅读笔记在深入探索软件开发领域的过程中,我邂逅了《代码大全2》这本书。它犹如一座知识的宝库,涵盖了软件构建从基础到高级的各个层面,吸引着我去挖掘其中的智慧。随着软件行业的迅猛发展,项目的复杂度和规模不断提升,我深知提升自身软件开发能力的紧迫性和重要性。而这本......
  • 总结 JavaScript 中8种数组常用的操作 API,array.push,pop,shift,unshift,slice,splice
    前言JavaScript中数组是一个重要的数据结构,它相比于字符串有更多的方法,在一些算法题中我们经常需要将字符串转化为数组,使用数组里面的API进行操作。本篇文章总结了JavaScript中有许多数组常用的操作API,以下是一些常见的操作及其示例:1.push():在数组末尾添加一个或多个元素,并......
  • AP5126 是一款 PWM 工作模式,高效率、外围简单、内置功率管,适用于 12-80V 输入的高精
    高性能摩托车灯降压恒流ic全亮/半亮/循环模式短路保护AP5126产品描述AP5126是一款PWM工作模式,高效率、外围简单、内置功率管,适用于12-80V输入的高精度降压LED恒流驱动芯片。输出最大功率可达15W,最大电流1.2A。AP5126可实现全亮/半亮功能切换,通过MODE切换:全亮/半亮/......
  • <项目代码>YOLOv8 钢索缺陷检测<目标检测>
     YOLOv8是一种单阶段(one-stage)检测算法,它将目标检测问题转化为一个回归问题,能够在一次前向传播过程中同时完成目标的分类和定位任务。相较于两阶段检测算法(如FasterR-CNN),YOLOv8具有更高的检测速度和实时性。1.数据集介绍数据集详情可以参考博主写的文章<数据集>钢索缺陷检测......
  • 什么是无代码?无代码开发平台又是什么?
    无代码是近几年兴起,然后才逐渐出现在大众视野当中。但它最早出现在2014年,由著名研究机构ForresterResearch正式提出,后来经过市场承认以及市场认可阶段,逐步地推出无代码产品和平台,无代码技术开始蓬勃发展,众多供应商们推出,企业开始使用无代码技术加速应用开发与数字化转型,再到后面与......
  • 网安人必备的知识库/漏洞库/代码审计/SRC漏洞挖掘/攻防演练应急响应
    免责声明:本文仅用于技术学习和讨论。请勿使用本文所提供的内容及相关技术从事非法活动,若利用本文提供的内容或工具造成任何直接或间接的后果及损失,均由使用者本人负责,所产生的一切不良后果均与文章作者及本账号无关。再次说明文章所涉及内容,仅供安全研究与教学之用,由于传播、利......
  • java计算机毕业设计儿童思德教育网(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景在现代社会,随着信息技术的飞速发展,互联网已经深入到人们生活的各个方面。儿童的成长和教育也受到了互联网的深刻影响。传统的儿童思德教育方式往......