代码块 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); 超出范围
}
}

 

 

 

 

posted @ 2020-10-14 20:07  Liang-shi  阅读(161)  评论(0)    收藏  举报