建议36(2):使用构造代码块精炼程序

建议(1)中提到一个疑问。

为什么会有代码块?

现在理解是,代码就是用来实现某个功能,而将相关代码集合在一起构成代码块无非是更好的实现某个功能,或者更方便使用。
现在来详细理解下四种代码块的功能。
普通代码块:方法内定义的代码块为普通代码块,将实现某个功能的代码集合在一起,方便查阅。
静态代码块:用static关键字声明类的代码块,主要用来为静态变量初始化。
同步代码块:用synchronized关键字声明的代码块,主要是用来防止多线程同时操作同一数据结构。
构造代码块:类中定义的代码块称为构造代码块,它的特性是在执行类构造函数时首先执行它,这样我们就可以在构造代码块中设计对应的代码,以便每次执行构造函数时都执行它。
例如:
class ConstructorTest
{
	//构造代码块
	{
		System.out.println("构造代码块");
	};
	
	public ConstructorTest()
	{
		System.out.println("无参构造函数");	
	}
	
	public ConstructorTest(String s)
	{
		System.out.println("带参构造函数");	
	}	
}

等效于:

class ConstructorTest
{	
	public ConstructorTest()
	{
		{
			System.out.println("构造代码块");
		};
		System.out.println("无参构造函数");	
	}
	
	public ConstructorTest(String s)
	{
		{
			System.out.println("构造代码块");
		};
		System.out.println("带参构造函数");	
	}	
}
秦哥总结构造代码块的两个特性:在执行每个构造函数时都运行和在构造函数时首先执行。充分利用这两个特性不仅可以减少代码量,还可以让程序变得更容易阅读。特别是,在特性情况下当所有构造函数都要实现一定逻辑时(构造函数尽量不含有逻辑处理),可以编辑多个代码块来实现,每个代码块处理一个业务逻辑,按照逻辑先后顺序来编写代码块。

你可能感兴趣的:(建议36(2):使用构造代码块精炼程序)