代码块 java
代码块
一段代码 {。。。。} 被括起来
代码块分3种
代码位置不同,名字和作用域都不同
1.构造代码块 (类里方法外)--成员位置 作用:提取构造方法的共性 触发的节点:new时
2.局部代码块(方法里) -- 局部位置 作用:控制变量的作用范围 触发的节点:调用方法时
3.静态代码块(类里方法外)--成员位置 作用:初始化项目 触发的节点:类加载就会执行 static{.....}
执行顺序:静态代码块>构造代码块 > 构造方法 >局部代码块
创建对象发生几件事? -- 先执行构造代码块,在执行构造代码
public class C3 {
public static void main(String[] args) {
new Teachaer();
new Teachaer("tony");
new Teachaer(20).show();//调用show方法
}
}
class Teachaer{
//静态代码块 --静态资源只加载一次 + 随着类加载就加载了
static{
System.out.println("静态代码块");
}
//构造代码块 --new时触发,执行构造方法时;每次new构造方法时都会触发代码块
{
int age = 0;//抽取共性代码
System.out.println("构造代码块");
}
public Teachaer(){
//int age = 0;//相同的代码
System.out.println("???");
}
public Teachaer(String n){
//int age = 0;//相同的代码
System.out.println("???");
}
public Teachaer(int a){
//int age = 0;//相同的代码
System.out.println("????");
}
//构造方法
public Demo(){
System.out.printlnt("构造方法")
}
//局部代码块 ---方法里 作用控制作用范围 +被调用才触发
public void show(){
int x = 1;
{
int no = 10;
System.out.println(no);
System.out.println(x);//里面可以调用外面的变量
System.out.println("局部代码块");
}
//System.out.println(no); 超出范围
}
}
浙公网安备 33010602011771号