Java中的代码块

来源:互联网 发布:mac拖文件 编辑:程序博客网 时间:2024/05/05 22:37

1、代码块分类

1/1在某个方法内,或某个语句内,出现一对大括号,大括号内的就是代码块,可用于限定变量的作用域

 

1/2构造代码块(定义在类体中)

       1/2/2 在实例化对象时执行,构造代码块和构造方法同时存在时,优先执行构造代码块,再执行构造方法。其作用同构造方法,用于初始化数据成员,或做一些先期的工作

1/2/3构造代码块虽然和构造方法作用相同,但是构造代码块不能传递参数,而构造方法可以

1/3静态代码块(定义在类体中)

1/3/1在代码块前加static关键字。

1/3/2当第一次实例化此类对象时,会被执行一次,之后将不再被执行。

1/3/3构造方法、普通代码块、静态代码块、方法代码块同时存在是的执行顺序:

静态代码块-->普通代码块-->构造方法-->方法内的代码块

1/3/4静态代码块只能访问静态成员

 

classDaiMaKuai

{

publicstatic void main(String[] args)

{

Testtest = new Test();

test.fun();

System.out.println("****************************");

Testtest2 = new Test();

test2.fun();

System.out.println("****************************");

Testtest3 = new Test();

test3.fun();

}

}

 

classTest

{

inti;

Stringstr;

 

//构造代码块优先于构造方法执行

Test(){

i= 60;

str= "Hi World!";

System.out.println(i+ " " + str);

}

 

{

//代码块可用于初始化成员变量,或者执行一些初期工作

i= 10;

str= "HelloWorld!";

System.out.println(i+ " " + str);

}

 

static{

System.out.println("静态代码块");

}

 

publicvoid fun(){

{

//此处不能再使用this使用成员变量

/*this.i= i;

this.Str= str;*/

 

inti = 23;

Stringstr = "ABCDEF";

System.out.println(i+ " " + str);

}

}

}

 

静态代码块

10HelloWorld!

60Hi World!

23ABCDEF

****************************

10HelloWorld!

60Hi World!

23ABCDEF

****************************

10HelloWorld!

60Hi World!

23ABCDEF

0 0