Java中的代码块

   Java中的代码块概述

    代码块(code block)是指一对{}括起来的若干条简单的Java语句,确定了变量的作用域。
    使用代码块(有时称为复合语句或块)可以在Java程序结构中原本只能放置一条简单语句的地方放置多条语句
    如if语句:
       int i=0;
       int j=9;
       if(i>0) i++;
       if(j<10){
        j+=i;
        i++;
        j--;
        }

    代码块可简单的分为局部代码块、构造代码块、静态代码块。

1)局部代码块

       在方法中的代码块。

       作用:确定了代码块中变量的生命周期。

    public class Block {
  public static void main(String[] args) {
	
    int i=0;
    int j=0;
	{  //局部代码块
	int x=5;
	int y=6;
	i=x+y;
	}
	//   j=x+y;   这条语句不成例,因为x,y的作用域仅在代码块中
	System.out.println("i="+i);
	//System.out.println(x+"  "+y);  代码块被执行完后,x,y会被清
      }
   }
显示:i=11
2)构造代码块
        在类的成员位置处。
        作用:可以将多个构造方法中的相同的语句放到构造代码块中,对对象进行初始化。
         *在每次执行构造方法之前,先执行构造代码块。
class CodeBlock{
	  int x;
	  int y;
	  char z;
	  {
		  System.out.println("构造代码块");
	  }
	  CodeBlock(){
		  int d=10;
                 //	System.out.println("构造代码块");
	  }
	  CodeBlock(int x){
                //	System.out.println("构造代码块");
		  x=10;
	  }
   }

	public class BlockDemo {
	public static void main(String[] args) {
	CodeBlock c=new CodeBlock();
	CodeBlock c2=new CodeBlock(0);
	}

    }
显示:构造代码块
     构造代码块
  3)静态代码块
         也在类的成员位置,被static关键字修饰。
         作用:一般情况给类进行初始化。
         *静态代码块只能被执行一次。
 
class CodeStatic{
    int x;
        int y;
     char z;
   static {//静态代码块并且只执行一次
        System.out.println("静态代码块");
   }
    CodeStatic(){//无参构造
    }    
  }
   class Atest{
    public static void main(String[] args) {
        CodeStatic r=new CodeStatic();
        CodeStatic r2=new CodeStatic();
    }
  }
显示:静态代码块
     这是无参构造方法
     这是无参构造方法
 注意:在代码块中是可以嵌套代码块的。代码块括起来的都是语句,不能定义方法。
    面试题:
         构造代码块,构造方法,静态代码的优先级?
     答:    静态代码块-->构造代码块-->构造方法

 代码演示:
class CodeStatic{

    {//构造代码块
        System.out.println("构造代码块");
    }
 static {//静态代码块
        System.out.println("静态代码块");
  }
    CodeStatic(){//无参构造
        System.out.println("构造方法");
    }    
  }
 public  class BlockDemo2{
    public static void main(String[] args) {
        CodeStatic r=new CodeStatic();
    
    }
  }
 显示: 静态代码块
       构造代码块
       构造方法







猜你喜欢

转载自blog.csdn.net/of_mine/article/details/79994718