class StaticCode{
int age;
// static 代码块
static{
System.out.print("static ");
}
//构造代码块
{
System.out.print("55 ");
}
// 构造函数
StaticCode(int age){
this.age=age;
System.out.print(age+",");
}
void show(){
// 局部代码块 //方法中
{
int age=30;
}
System.out.print("show:"+age+",");
}
}
class StaticCodeDemo{
public static void main(String[] args){
StaticCode p1=new StaticCode(20); // 1
p1.show(); // 2
StaticCode p2=new StaticCode(20); // 3
}
}
执行结果为:static,55,20,show,55,20
分析 :
1、先执行StaticCode这个类,所以static
2、创建p1对象,执行构造代码块,55
3、执行构造函数初始化,20
4、执行p1.show(),show:20
5、 创建p2对象,执行构造代码块,55
6、执行构造函数初始化,20
总结: static 代码块随着类的加载,只加载一次。作用是初始化类。
构造代码块 --> 可以给所有对象进行初始化的。创建几个对象就调用几次,是给对象进行通用性的初始化。
构造函数 --> 给对应的对象进行针对性的初始化。
局部代码块 --> 限定函数中变量的生命周期,age=30局部代码执行完。自动释放掉了。
网友评论