CodeBlock 基本使用

173 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

@TOC

基本介绍

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

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

基本语法

[修饰符]{
	代码
}

注意:

  • ​ 修饰符可选,要写的话,也只能写static
  • 代码块分为两类,使用static修饰符的叫静态代码块没有static修饰的叫普通代码块
  • 逻辑语句可以为任何逻辑语句
  • ;号可以写上,也可以省略

使用:把一些相同的语句,放入一个代码块中即可,这样当我们不管调用那个构造器,创建对象,都会调用代码块的内容

静态成员变量和静态代码块(static{})只有在类被调用的时候才会初始化。

解释:

  • 这里是指在运行时真正被使用到才会被初始化,如果是在编译时被使用到,但在运行时没有使用到也不会被初始化,比如上面的case5。

静态内部类只有当被外部类调用到的时候才会初始化。

解释:

  • 这里也是指在运行时,也就是说不在于你在编辑器中有没有写调用的代码,而是你写的这段调用代码运行时是否会被真正执行到。在只使用了外部类,但是没有使用内部类的情况下,内部类里面的东西不会被初始化。

电影案例

看电影案例演示普通代码块作用、static静态代码块作用

/**
 * @Description: 测试类 测试 DodeBlock  使用
 * @auther:Li Ya Hui
 * @Time:2021年4月22日上午8:20:50
 */
public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		movie m1 = new movie("你好,李焕英!");
		movie m2 = new movie("送你一朵小红花",100);
		movie m3 = new movie("唐探三",200,"陈思成");
		
	}

}

class movie
{
	private String filmname;//电影名
	private int price; //票单价
	private String driector;//导演
	{//一些必须的代码块,相同的代码块
		System.out.println("...................................................................");
		System.out.println("电影开始了...");
		System.out.println("广告开始了...");
	}
	//优先级最高
	static{		
		System.out.println();
		System.out.println("河北软件豪华电影MAX厅");
		System.out.println();
	}
	
	//只构造电影名
	public movie(String filmname) {
		this.filmname=filmname;
		System.out.println(filmname+"电影正式开始!");
	}
	
	
	//构造电影名,票单价
	public movie(String filmname, int price) {
		this.filmname = filmname;
		this.price = price;
		System.out.println(filmname+"电影正式开始!");
	}


	//构造电影名,票单价,导演
	public movie(String filmname, int price, String driector) {
		this.filmname = filmname;
		this.price = price;
		this.driector = driector;
		System.out.println(filmname+"电影正式开始!");
	}
	
	
}