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

转载于:https://my.oschina.net/thinkerfan/blog/112171

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值