Java基础——代码块

代码块:在类或方法中直接使用 “{ }”括起来的一段代码,表示一块代码区域。

代码块里变量属于局部变量,只在自己所在区域{ }内有效。

代码块依据位置不同分为三种形式:

  • 局部代码块:直接定义在方法内部的代码块。一般不直接使用,常结合if /for语句中使用的局部代码块。

    局部代码块程序示例:

    public class CodeBlock {
    
    	public static void main(String[] args) {
    	
    		int a=1;
    		{
    			int b=2;
    			System.out.println(a);
    			System.out.println(b);
    		}
    		System.out.println(a);
    		
    		// System.out.println(b);  //此处b无法输出
    	}
    
    }

    局部代码块程序示例运行结果:

    1
    2
    1
  • 初始化代码块(构造代码块):直接定义在类中。每次创建对象都会执行初始化代码块,每次创建对象都会调用构造器。在调用构造器之前,会先执行本类中的初始化代码块。(通过反编译后,会发现初始化代码块也作为构造器的最初语句。)000948_j5z5_3746823.png

 

    000709_szKz_3746823.png

        

        初始化码块程序示例:

  • public class CodeBlock {
    
    	{
    		System.out.println("初始化代码块##########");
    	}
    	
    	CodeBlock(){		//构造器
    		System.out.println("构造器!!!!!!!!!");
    	}
    	public static void main(String[] args) {
    	
    		new CodeBlock();
    		System.out.println("~~~~~~~~~~~");
    		new CodeBlock();
    		
    	}
    
    }
    

     初始化码块程序示例运行结果:

    初始化代码块##########
    构造器!!!!!!!!!
    ~~~~~~~~~~~
    初始化代码块##########
    构造器!!!!!!!!!

               

  • 静态代码块(使用static修饰的代码块):在主方法执行之前执行静态代码块,且执行一次。

    002138_T7A8_3746823.png

  静态代码块程序示例:

 

public class CodeBlock {

	{
		System.out.println("初始化代码块##########");
	}
	
	CodeBlock(){		//构造器
		System.out.println("构造器!!!!!!!!!");
	}
	
	static{		//静态代码块A
		System.out.println("静态代码块A:$$$$$$$$$$");
	}
	
	public static void main(String[] args) {
	
		new CodeBlock();
		System.out.println("~~~~~~~~~~~");
		new CodeBlock();
		
	}
	
	static{		//静态代码块B
		System.out.println("静态代码块B:$$$$$$$$$$");
	}

}

 

        静态代码块程序示例运行结果:

静态代码块A:$$$$$$$$$$
静态代码块B:$$$$$$$$$$
初始化代码块##########
构造器!!!!!!!!!
~~~~~~~~~~~
初始化代码块##########
构造器!!!!!!!!!

 

      

转载于:https://my.oschina.net/u/3746823/blog/1604809

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值