代码块

代码块分类:

1.普通代码块

2.构造代码块

3.静态代码块

4.同步代码块

代码块不能独立运行,须要依赖于其他配置,格式是:{ //代码块 }。

1.普通代码块

普通代码块,在方法名后(或方法体内)用一对"{}"括起来的数据块,并通过方法调用。

package cn.com.daimakuai;
/**
 * PuTongDaiMaiKuai
 *2017-2-13上午9:27:02
 *@描述:普通代码块
 */
public class PuTongDaiMaiKuai {
	public static void main(String[] args) {
		/**"{}"括起来的普通代码块;这里的变量x=100作用范围从"{"开始"}"结束,所以与下面的变量x=200互不影响,
		 * 如果将下面的变量放在普通代码前面将编译错误,因为main的代码块范围比较大
		 */
		{
			int x = 100;
			System.out.println("普通代码块:"+x);
		}
		
		int x = 200;
		System.out.println("main方法:"+x);
	}
	
	/**
	 *  结果输出:
		普通代码块:100
		main方法:200
	 */
}

		

 2.构造代码块

构造代码块:在类中直接定义的,没有任何前缀、后缀以及修饰符的代码块。

构造代码块和构造方法一样都是在对象生成时被调用,但调用时机比构造方法早,所以构造代码块可以用来初始化成员变量。如果一个类中有多个构造方法,这些构造方法都需要初始化成员变量,那么可以把每个构造方法中相同的代码部分抽取出来,集中一起放在构造代码块中,利用构造代码块来初始化共有的成员变量,减少重复代码。

package cn.com.daimakuai;

/**
 * ConstroctDaimakuai
 * @2017-2-13上午10:02:55
 * @描述:构造代码块
 */
public class ConstroctDaimakuai {

	public static void main(String[] args) {
		Person p1 = new Person();
		System.out.println("*******************");
		Person p2 = new Person("mimi");
	}
}

// Person类
class Person {

	private int x;
	private String name;

	// 构造代码块
	{
		System.out.println("构造代码块执行-------");
		// 对类的成员变量x进行初始化,如果不放置在代码块中,要达到同样效果,需要分别出现在2个构造方法中。
		x = 100;
	}

	// 无参构造方法
	Person() {
		System.out.println("构造方法执行-------");
		name = "mimi";
		show();
	}

	// 有参构造方法
	Person(String name) {
		System.out.println("构造方法执行-------");
		this.name = name;
		show();
	}

	/**
	 * show方法
	 */
	private void show() {
		System.out.println("welcome!" + name);
		System.out.println("x=" + x);
	}
	
	/**结果输出:
	构造代码块执行-------
	构造方法执行-------
	welcome!mimi
	x=100
	*******************
	构造代码块执行-------
	构造方法执行-------
	welcome!mimi
	x=100
	*/
}

3.静态代码块

静态代码块:static修饰并用"{}括起来的代码块。

特点:用来初始化静态成员变量,最先执行(随着类的加载而加载),只执行一次。

package cn.com.daimakuai;
/**
 * Staticdaimakuai
 *2017-2-13上午10:45:49
 *@描述:静态代码块
 */
public class Staticdaimakuai {
	public static void main(String[] args) {
		System.out.println("main方法执行-------");
		System.out.println("***创建第1个对象***");
		new Staticdaimakuai();
		System.out.println("***创建第2个对象***");
		new Staticdaimakuai();
		System.out.println("***创建第3个对象***");
		new Staticdaimakuai();
	}
	//静态代码块
	static{
		System.out.println("静态代码块执行-------");
	}
	//构造方法
	Staticdaimakuai(){
		System.out.println("构造方法执行------");
	}
	//构造代码块
	{
		System.out.println("构造代码块执行------");
	}
	
	/**  结果输出:
	  静态代码块执行-------
	  main方法执行-------
	  ***创建第1个对象***
	  构造代码块执行------
	  构造方法执行------
	  ***创建第2个对象***
	  构造代码块执行------
	  构造方法执行------
	  ***创建第3个对象***
	  构造代码块执行------
	  构造方法执行------
	*/
	 
}

4.同步代码块

同步代码块:运用在多线程方面。

 

  

 

转载于:https://www.cnblogs.com/huyuyu/p/6392554.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值