1、普通代码块
即定义在方法中的代码块:
public class Main{
public static void main(String[] args) {
{
//直接使用{}定义普通方法块
int x=10;
System.out.println("x1="+x);
}
int x=100;
System.out.println("x2="+x);
}
}
运行结果:
x1=10
x2=100
2、构造代码块
构造代码块:定义在类中的代码块(不加修饰符)。也叫:实例代码块。构造代码块一般用于初始化实例成员变量。
class Person{
private String name;
private int age;
private String sex;
public Person() {
System.out.println("I am Person init()!");
}
//实例代码块
{
this.name="yinger";
this.age=20;
this.sex="gril";
System.out.println("I am instance init()!");
}
public void show() {
System.out.println("I am "+name+",my age is"+age+";I am a "+sex);
}
}
public class Main{
public static void main(String[] args) {
Person p1=new Person();
p1.show();
}
}
运行结果:
I am instance init()!
I am Person init()!
I am yinger,my age is20;I am a gril
注意!!!
实例代码块优先于构造函数执行
3、静态块
使用static定义的代码块。一般用于初始化静态成员属性!
class Person{
private String name;
private int age;
private String sex;
private static int count=0;//静态成员变量
public Person() {
System.out.println("I am Person init()!");
}
//实例代码块
{
this.name="yinger";
this.age=20;
this.sex="gril";
System.out.println("I am instance init()!");
}
//静态代码块
static {
count=10;//只能访问静态数据成员
System.out.println("I am static inie()!");
}
public void show() {
System.out.println("I am "+name+",my age is"+age+";I am a "+sex);
}
}
public class Main{
public static void main(String[] args) {
Person p1=new Person();
p1.show();
}
}
运行结果:
I am static inie()!
I am instance init()!
I am Person init()!
I am yinger,my age is20;I am a gril
注意!!!
1、静态代码块不管生成多少个对象,其只会执行一次,且是最先执行的。
2、静态代码块执行完毕后, 实例代码块(构造块)执行,再然后是构造函数执行。