失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Java中普通代码块 构造代码块 静态代码块区别

Java中普通代码块 构造代码块 静态代码块区别

时间:2022-02-19 11:04:39

相关推荐

Java中普通代码块 构造代码块 静态代码块区别

Java中普通代码块,构造代码块,静态代码块区别及代码

示例

//执行顺序:(优先级从高到低。)静态代码块>mian方法

>构造代码块>构造方法。

其中静态代码块只执行一次。构造代码块在每次创建对象

是都会执行。

1普通代码块

复制代码

1//普通代码块:在方法或语句中出现的{}就称为普通代

码块。普通代码块和一般的语句执行顺序由他们在代码中

出现的次序决定--“先出现先执行”

2publicclassCodeBlock01{

3publicstaticvoidmain(String[]args){

4

5{

6intx=3;

7System.out.println("1,普通代码块内

的变量x="+x);

8}

9

10intx=1;

11System.out.println("主方法内的变量

x="+x);

12

13{

14inty=7;

15System.out.println("2,普通代码块

内的变量y="+y);

16}

17}

18}

19

20/*

21运行结果:

221,普通代码块内的变量x=3

23主方法内的变量x=1

242,普通代码块内的变量y=7

25*/

26

复制代码

2构造代码块

复制代码

//构造块:直接在类中定义且没有加static关键字的代码

块称为{}构造代码块。构造代码块在创建对象时被调用,

每次创建对象都会被调用,并且构造代码块的执行次序优

先于类构造函数。

publicclassCodeBlock02{

{

System.out.println("第一代码块");

}

publicCodeBlock02(){

System.out.println("构造方法");

}

{

System.out.println("第二构造块");

}

publicstaticvoidmain(String[]args){

newCodeBlock02();

newCodeBlock02();

newCodeBlock02();

}

}

/*

*

执行结果:

第一代码块

第二构造块

构造方法

第一代码块

第二构造块

构造方法

第一代码块

第二构造块

构造方法

*/

复制代码

3静态代码块

复制代码

//静态代码块:在java中使用static关键字声明的代码块。

静态块用于初始化类,为类的属性初始化。每个静态代码

块只会执行一次。由于JVM在加载类时会执行静态代码块,

所以静态代码块先于主方法执行。

//如果类中包含多个静态代码块,那么将按照"先定义的代

码先执行,后定义的代码后执行"。

//注意:1静态代码块不能存在于任何方法体内。2静态

代码块不能直接访问静态实例变量和实例方法,需要通过

类的实例对象来访问。

classCode{

{

System.out.println("Code的构造块");

}

static{

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

}

publicCode(){

System.out.println("Code的构造方法");

}

}

publicclassCodeBlock03{

{

System.out.println("CodeBlock03的构造块");

}

static{

System.out.println("CodeBlock03的静态代码块

");

}

publicCodeBlock03(){

System.out.println("CodeBlock03的构造

方法");

}

publicstaticvoidmain(String[]args){

System.out.println("CodeBlock03的主方法

");

newCode();

newCode();

newCodeBlock03();

newCodeBlock03();

}

}

/*

CodeBlock03的静态代码块

CodeBlock03的主方法

Code的静态代码块

Code的构造块

Code的构造方法

Code的构造块

Code的构造方法

CodeBlock03的构造块

CodeBlock03的构造方法

CodeBlock03的构造块

CodeBlock03的构造方法

*/

如果觉得《Java中普通代码块 构造代码块 静态代码块区别》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。