当前位置: 首页 > news >正文

代码块01-Java

代码块01

  • 一、介绍
  • 二、语法
  • 三、好处
    • 举例
  • 四、使用细节

一、介绍

代码化块又称为初始化块,属于类中的成员[即是类的一部分],类似于方法,将逻辑语句封装在方法体中,通过包围起来。

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

二、语法

	[修饰符] {代码};注意:修饰符可选,要写的话,也只能写static
  1. 修饰符可选,要写的话,也只能写static。
  2. 代码块分为两类,使用static修饰的叫静态代码块,没有static修饰的,叫普通代码块。
  3. 逻辑语句可以为任何逻辑语句(输入、输出、方法调用、循环、判断等)
  4. 分号 ; 号可以写上,也可以省略。

三、好处

  1. 相当于另外一种形式的构造器(对构造器的补充机制),可以做初始化的操作。
  2. 如果多个构造器中都有重复的语句,可以抽取到初始化块中,提高代码的重用性
  3. 代码块调用的顺序优先于构造器

举例

代码块的快速入门 CodeBlock01.java

class Movie {private String name;private double price;private String director;//  三个构造器->构成重载public Movie(String name) {System.out.println("电影屏幕打开……");System.out.println("广告开始……");System.out.println("电影正式开始……");this.name = name;}public Movie(String name, double price) {System.out.println("电影屏幕打开……");System.out.println("广告开始……");System.out.println("电影正式开始……");this.name = name;this.price = price;}public Movie(String name, double price, String director) {System.out.println("电影屏幕打开……");System.out.println("广告开始……");System.out.println("电影正式开始……");this.name = name;this.price = price;this.director = director;}
}

可以看到在每一个构造器中都有同样的代码
把相同的语句放在一个代码块中即可

    {System.out.println("电影屏幕打开……");System.out.println("广告开始……");System.out.println("电影正式开始……");}//这样不管调用哪一个构造器创建对象,都会先调用代码块public Movie(String name) {System.out.println("public Movie(String name)");this.name = name;}public Movie(String name, double price) {System.out.println("public Movie(String name, double price)");this.name = name;this.price = price;}public Movie(String name, double price, String director) {System.out.println("public Movie(String name, double price, String director)");this.name = name;this.price = price;this.director = director;}

在这里插入图片描述

(1) 不管调用哪个构造器创建对象,都会先调用代码块
(2) 代码块调用的顺序优先于构造器

四、使用细节

见上篇

本笔记是对韩顺平老师的Java课程做出的梳理。方便本人和观看者进行复习。
课程请见: https://www.bilibili.com/video/BV1fh411y7R8/?spm_id_from=333.999.0.0&vd_source=ceab44fb5c1365a19cb488ab650bab03

相关文章:

  • MySQL递归查询:洞悉数据的层层关联
  • flutter编译和构建鸿蒙应用程序(windows环境)
  • 卸载软件最最最彻底的工具——Uninstall Tool
  • 项目启动出现白屏问题需要刷新后才能显示解决方案
  • 通付盾Web3专题 | SharkTeam:起底朝鲜APT组织Lazarus Group,攻击手法及洗钱模式
  • 代码随想录算法训练营第五十三天|1143. 最长公共子序列、1035.不相交的线、53.最大子数组和
  • 实用高效 无人机光伏巡检系统助力电站可持续发展
  • 【代码随想录刷题】Day18 二叉树05
  • 【开源】基于Vue和SpringBoot的食品生产管理系统
  • 黑马点评Redis笔记
  • word因导入mathtype不能使用复制粘贴(ctrl+c, ctrl+v)快捷键的解决方法
  • oracle数据库巡检常见脚本-系列二
  • 注意力机制(Q,K,V)基本概念
  • Redis当中的BitMap,实现github打卡功能
  • NX二次开发UF_CURVE_create_arc_3tangent 函数介绍
  • @jsonView过滤属性
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • Create React App 使用
  • Hexo+码云+git快速搭建免费的静态Blog
  • React-redux的原理以及使用
  • Theano - 导数
  • 给新手的新浪微博 SDK 集成教程【一】
  • 如何在 Tornado 中实现 Middleware
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 异步
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • #单片机(TB6600驱动42步进电机)
  • ( 用例图)定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现
  • (2015)JS ES6 必知的十个 特性
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (三十五)大数据实战——Superset可视化平台搭建
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • .Net 中Partitioner static与dynamic的性能对比
  • .NET开发不可不知、不可不用的辅助类(一)
  • .Net转Java自学之路—基础巩固篇十三(集合)
  • @select 怎么写存储过程_你知道select语句和update语句分别是怎么执行的吗?
  • [ Linux 长征路第五篇 ] make/Makefile Linux项目自动化创建工具
  • [16/N]论得趣
  • [8-23]知识梳理:文件系统、Bash基础特性、目录管理、文件管理、文本查看编辑处理...
  • [dfs] 图案计数
  • [go] 迭代器模式
  • [IE编程] WebBrowser控件中设置页面的缩放
  • [JDK工具-2] javap 类文件解析工具-帮助理解class文件,了解Java编译器机制
  • [linux] git lfs install 安装lfs
  • [Markdown] 02 简单应用 第二弹
  • [MICROSAR Adaptive] --- Hello Adaptive World
  • [one_demo_2]使用正则表达式过滤字符串
  • [ORM]register db Ping `default`, Error 1130: Host '' is not allow connect to this MySQL server
  • [THUWC 2017]在美妙的数学王国中畅游