啥也不说直接看代码
package com.hiyo.Class;
/**
* Java基础知识9:Code Blocks代码块
* Author:hiyo585
* Time:2021年9月10日
* 用{}括起来的一段代码
* 分成:普通代码块,构造块,静态代码块,同步代码块
*/
class CodeBlocks{
public CodeBlocks(){ //定义构造方法
System.out.println("类的构造方法");
}
{//定义构造块:构造代码块是直接写在类中的代码块
System.out.println("类中的构造块。");
}
/*
构造块会优于构造方法执行
每一次实例化对象的时候都会执行构造块中的代码,会执行多次
*/
static { //静态构造块
System.out.println("codeblocks类中的静态构造块");
}
/*
静态代码块优先于主方法执行,而在类中定义的静态代码块会优先于构造块执行,
而且不管有多少个对象产生,静态代码块只执行一次
*/
}
public class CodeBlockDemo {
public static void main(String[] args) {
//普通代码块
{
int x = 100 ;
System.out.println("普通代码块-->x=" + x);
}//主要作用是进行程序的分割
int x = 200 ;
System.out.println("普通代码块外部-->x" + x);
CodeBlocks cbs = new CodeBlocks() ;
CodeBlocks cbs1 = new CodeBlocks() ;
/*static {
System.out.println("主方法中的静态代码块");
}
//此处错误?
*/
}
}
/*
普通代码块-->x=100
普通代码块外部-->x200
codeblocks类中的静态构造块
类中的构造块。
类的构造方法
类中的构造块。
类的构造方法
*/