代码块01-Java
代码块01
- 一、介绍
- 二、语法
- 三、好处
- 举例
- 四、使用细节
一、介绍
代码化块又称为初始化块,属于类中的成员[即是类的一部分],类似于方法,将逻辑语句封装在方法体中,通过包围起来。
但和方法不同,没有方法名,没有返回,没有参数,只有方法体,而且不用通过对象或类显式调用,而是加载类时,或创建对象时隐式调用。
二、语法
[修饰符] {代码};注意:修饰符可选,要写的话,也只能写static。
- 修饰符可选,要写的话,也只能写static。
- 代码块分为两类,使用static修饰的叫静态代码块,没有static修饰的,叫普通代码块。
- 逻辑语句可以为任何逻辑语句(输入、输出、方法调用、循环、判断等)
- 分号 ; 号可以写上,也可以省略。
三、好处
- 相当于另外一种形式的构造器(对构造器的补充机制),可以做初始化的操作。
- 如果多个构造器中都有重复的语句,可以抽取到初始化块中,提高代码的重用性
- 代码块调用的顺序优先于构造器
举例
代码块的快速入门 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