admin管理员组

文章数量:1794759

Java中的代码块

Java中的代码块

目录

一、代码块的概念和分类

二、普通代码块

三、构造块

四、静态块

五、注意事项 


一、代码块的概念和分类

概念:使用{}定义的一段代码称为代码块。

分类:根据代码块定义的位置以及关键字,可分为以下四种:

(1)普通代码块

(2)构造块

(3)静态块

(4)同步代码块

二、普通代码块

概念:普通代码块就是定义在方法中的代码块,也叫本地代码块。

这种用法一般比较少见。

三、构造块

概念:定义在类中的代码块(不加修饰符),又称为实例代码块。

作用:一般用于初始化实例成员变量。

实例代码块内部也可以初始化静态成员变量,但一般不这么做。 

四、静态块

概念:使用static定义的代码块称为静态块,也叫静态代码块。

作用:一般用于初始化静态成员变量。

静态代码块内部也可以初始化实例成员变量,但一般不这么做。 

五、注意事项  class Student{ public String name; public int age; public static String school; public Student(String name, int age) { this.name = name; this.age = age; System.out.println("两个参数的构造方法"); } static { System.out.println("第一个静态代码块"); } { this.age = 18; this.name = "张三"; //this.school = "家里蹲大学"; System.out.println("实例代码块"); } static { Student.school = "家里蹲大学"; System.out.println("第二个静态代码块"); //Student student = new Student(); //student.name = "李四";//一般不这么做 } }

(1)静态代码块不管生成多少个对象,它也只会执行一次。

 当我们实例化3个对象时,可以发现,静态代码块仅执行了一次,并且可以得出下面一条结论:

(2)代码的执行顺序为:静态代码块→实例代码块→构造方法,并且和代码块的定义顺序无关。

如果有多个实例代码块,则根据它们的定义顺序来先后执行;如果有多个静态代码块,在编译代码时,编译器会按照定义的顺序依次合并。

(3)实例代码块只有在创建对象时才会执行。

 同步代码块暂时还没学到哈~

本文标签: 代码java