JAVA 构造代码块与局部代码块
JAVA 构造代码块与局部代码块
目录
- JAVA 构造代码块与局部代码块
-
- 构造代码块
- 局部代码块
形式:{ 代码… }
构造代码块
构造代码块的特点
位置: 在类的内部,在方法的外部
作用: 用于抽取构造方法中的共性代码
执行时机: 每次调用构造方法前都会调用构造代码块
注意事项: 构造代码块优先于构造方法加载
/
* 构造代码块:{}
*1.位置:类里方法外
* 2.执行时机:每次创建对象时,都会执行构造代码块,并且优先于构造方法执行
* 3:作用:用于提取所有构造方法的共性功能
*/
package cn.tedu.oop2;
/本类用于测试代码块*/
public class TestBlock {public static void main(String[] args) {
// System.out.println("今天特别冷,注意保暖");Pig p = new Pig();Pig p2 =new Pig();Pig p3 = new Pig(666);Pig p4 =new Pig("xxxx");}}
//1.创建一个小猪类用来测试
class Pig{//2.定义属性String food;//食物int age;//年龄//5.创建本类的构造代码块//4.提供本类的无参构造/* 构造代码块:{}*1.位置:类里方法外* 2.执行时机:每次创建对象时,都会执行构造代码块,并且优先于构造方法执行* 3:作用:用于提取所有构造方法的共性功能*/{System.out.println("我是一个构造代码块");System.out.println("咱可是黑猪肉222~");}//4.提供本类的无参构造与含参构造public Pig(){System.out.println("无参构造");}public Pig(int n){System.out.println("含参构造1");}public Pig(String n){System.out.println("含参构造2");}//3.定义普通方法public void eat(){System.out.println("小猪爱吃菜叶子");}
}
局部代码块
位置: 在方法里面的代码块
作用: 通常用于控制变量的作用范围,出了花括号就失效
注意事项: 变量的作用范围越小越好,成员变量会存在线程安全的问题
练习:测试代码块的加载顺序
执行顺序:构造代码块->构造方法->普通方法->局部代码块
- 1.当创建对象时,会触发构造函数
- 2.创建对象时,也会触发构造代码块,并且构造代码块优先于构造方法执行
- 3.我们创建好对象后,才能通过对象调用普通方法
- 4.如果普通方法里有局部代码块,才会触发对应的局部代码块