面向对象-代码块
1.局部代码块
1.1格式
在方法中写一对大括号即可
public class Demo {
public static void main(String[] args) {
int a=10;
//下面是一个局部代码块
{
int b=20;
}
}
}
1.2应用场景
使用后进行内存回收,使用后及时被销毁
2.构造代码块
2.1 格式
public Person() {
System.out.println("无参构造");
}
2.2 调用时机
构造代码块会在调用构造方法的时候执行,并且在构造方法之前进行执行
public Person(int age, String name) {
this.age = age;
this.name = name;
System.out.println("有参构造");
}
public Person() {
System.out.println("无参构造");
}
{
System.out.println("这是构造代码块");
}
2.3 应用场景
用来抽取构造方法中的重复代码,提高代码的复用性
int age;
String name;
public Person(int age, String name) {
// this.age=0;
this.age = age;
this.name = name;
System.out.println("有参构造");
}
public Person() {
// this.age=0;
System.out.println("无参构造");
}
{
this.age=0; //
System.out.println("这是构造代码块");
}
3.静态代码块
3.1 静态代码块
在类方法中外部直接写一对大括号,在括号前用static修饰
static int num;
String name;
static int staticNum;
//静态代码块
static{
System.out.println("静态代码块");
//因为 静态代码块只会被执行一次 对静态成员变量进行初始化
Student.staticNum=1;
}
//构造代码块
{
System.out.println("构造代码块");
}
3.2 调用时机
在类被加载时执行,同一个类在程序运行中只会被加载一次,所有只会执行一次;
3.3 应用场景
用来给 类当中的静态成员进行初始化
static int staticNum;
//静态代码块
static{
System.out.println("静态代码块");
//因为 静态代码块只会被执行一次 对静态成员变量进行初始化
Student.staticNum=1;
}