首页 > 代码库 > 普通代码块、构造块、静态代码块、构造方法浅析

普通代码块、构造块、静态代码块、构造方法浅析

1、普通代码块:直接在一个方法中或语句中出现的{}被称为普通代码块。

   相同类型的代码块执行顺序为,先定义先执行。

2、构造块:直接在类中定义的且没有加static关键字的代码块{}称为构造代码块。

    构造块在创建对象时被执行,每次创建对象都会被执行,且构造块的执行顺序

    优先于类构造函数。

3.静态代码块:在java类中使用static关键字声明的代码块称为静态代码块。静态

  代码块主要用于初始化类,为类的静态属性初始化。有如下特定:

   1)静态代码块不能存在任何方法体内

   2)静态代码块不能直接访问实例变量和实例方法,需通过类的实例对象来访问。

       这与静态方法是一样的

   3)jvm在加载类时,先会执行静态代码块,所以静态代码块优先于主方法执行。

       如果类中包含多个静态代码块,则先定义先执行。每个静态代码块只会执行一次。

4.无论是普通代码块,构造块,还是静态代码块内的语句,都可以定义变量、调用

  其他方法,使用各种循环语句和控制语句等。

//==============下面示例==============

 ====类Code====

class  code{

{                                                     //1.构造块

system.out.println("code的构造块");

}

static {                                           //2.静态构造块

system.out.println("code的静态构造块");

}

public Code(){                               // 3.构造方法

system.out.println("code的构造方法");

}

}

 ====类Codeblock====

public class Codeblock{

{                                                     //1.构造块

system.out.println("Codeblock的构造块");

}

static {                                           //2.静态构造块

System.out.println("Codeblock的静态构造块");

}

public Codeblock(){                               // 3.构造方法

system.out.println("Codeblock的构造方法");

}

public satic void main(String args[]){

System.out.println("Codeblock的主方法");

new Code();

new Code();

new Codeblock();

new Codeblock();

}

}

========运行结果========

Codeblock的静态方法

Codeblock主方法

Code的静态方法

Code的构造块

Code的构造方法

Code的构造块

Code的构造方法

Codeblock的构造块

Codeblock的构造方法

Codeblock的构造块

Codeblock的构造方法

请按任意键继续 . . . .

 

普通代码块、构造块、静态代码块、构造方法浅析