掌握java中的三种代码块的定义及使用

来源:互联网 发布:mysql打开文件 编辑:程序博客网 时间:2024/05/21 00:17




代码块概念

代码块本身并不是一个很难理解的概念,实际上之前也一直在使用。所谓代码块是指使用“{}”括起来的一段代码,根据位置不同,代码块可以分为四种:普通代码块、构造块、静态代码块、同步代码块,其中同步代码块本书将在多线程部分进行讲解,本章先来观察其他三种代码块。

普通代码块


直接定义在方法中的代码块称为普通代码块。

public class CodeDemo01{
 public static void main(String args[]){
  {  // 普通代码块
   int x = 30 ; // 就属于一个局部变量
   System.out.println("普通代码块--> x = " + x) ;
  }
  int x = 100 ;  // 与局部变量名称相同
  System.out.println("代码块之外--> x = " + x) ;
 }
};

运行结果:

C:\Documents and Settings\Administrator\桌面\java>java CodeDemo01
普通代码块 --> x = 30
代码块之外 --> x = 100

构造块:


将代码块直接定义在类中,则称为构造代码块。

class Demo{
 { // 直接在类中编写代码块,称为构造块
  System.out.println("1、构造块。") ;
 }
 public Demo(){ // 定义构造方法
  System.out.println("2、构造方法。") ;
 }
};
public class CodeDemo02{
 public static void main(String args[]){
  new Demo() ;  // 实例化对象
  new Demo() ;  // 实例化对象
  new Demo() ;  // 实例化对象
 }
};

运行结果:

C:\Documents and Settings\Administrator\桌面\java>java CodeDemo02
1、构造块。
2、构造方法。
1、构造块。
2、构造方法。
1、构造块。
2、构造方法。

构造块优先于构造方法执行,且执行多次,只要一有实例化对象产生,就执行构造块中的内容。

静态代码块:


直接使用static关键字声明就称为静态代码块.

class Demo{
 { // 直接在类中编写代码块,称为构造块
  System.out.println("1、构造块。") ;
 }
 static{ // 使用static,称为静态代码块
  System.out.println("0、静态代码块") ;
 }
 public Demo(){ // 定义构造方法
  System.out.println("2、构造方法。") ;
 }
};
public class CodeDemo03{
 static{  // 在主方法所在的类中定义静态块
  System.out.println("在主方法所在类中定义的代码块") ;
 }
 public static void main(String args[]){
  new Demo() ;  // 实例化对象
  new Demo() ;  // 实例化对象
  new Demo() ;  // 实例化对象
 }
};

运行结果:

C:\Documents and Settings\Administrator\桌面\java>java CodeDemo03
在主方法所在类中定义的代码块
0、静态代码块
1、构造块。
2、构造方法。
1、构造块。
2、构造方法。
1、构造块。
2、构造方法。

静态块优先于主方法执行,如果在普通类中定义的静态块,优先于构造块执行,不管不多少个实例化对象产生,静态代码块只执行一次,静态代码块的主要功能就是为静态发生初始化。

 

1 0