Day08代码块之局部代码块与构造代码块

284 阅读1分钟

局部代码块 存在于方法体中 作用是给局部变量赋值,或者直接定义局部变量


public class D1 {
	
	public void name() {
		
		int a = 10;
		
		
//		定义在方法体中被大括号包裹的称为局部代码块
		{	
			a = 50;
			int b = 40;
			System.out.println(a);//50
			System.out.println(b);//40
		}
		
		System.out.println(a);//50   不报错的原因是局部代码块里面的局部变量赋值且永久赋值给了全局变量  全局变量随方法执行完毕消失
//		System.out.println(b); 报错,因为变量b出不了局部代码块 代码块执行完毕就消失了
	}

	
	public static void main(String[] args) {
		D1 d1 = new D1();
		d1.name();
	}
	

}

构造代码块 定义在属性位置【类中方法外】的代码块 作用是给全局变量赋值

当new对象的时候构造代码块已经执行了

public class Test1 {
	int age;
	String name;
	
	
//	测试构造代码块是否最先执行
public Test1() {
		super();
		System.out.println("空参构造执行");
		
	}



//	此处为构造代码块
	{
		age = 223;
		name = "李大钊";
		System.out.println("构造代码块执行");
	}
	

测试类 此处不明白Test1里面的两条输出语句怎么执行的晕死

	```Java
	public class Test2 {

	public static void main(String[] args) {
		
		Test1 T = new Test1();//一旦创建对象构造代码块就执行了,且每创建一次对象构造代码块执行一次
		System.out.println(T.age);
		System.out.println(T.name);
		
		
	}

}