5.1JAVA基础复习——JAVA中的静态代码块、构造代码块、构造函数、局部代码块区别
构造代码块:
在类中定义可以给所有对象进行初始化。
局部代码块:
在方法中定义属性的生命周期。
静态代码块:
在类中定义用于给类调用时属性的初始化
构造函数与构造代码块的区别:
构造函数是给对应的对象进行针对性的初始化。
构造代码块是给所有对象进行初始化
代码如下:
public class Demo { private static int age; private static String name; //静态代码块:给类的属性进行初始化 static{ age = 10; name = "旺财"; } //构造代码块:给所有的对象初始化定义在类中方法外。 { show(); } public Demo(int age,String name){//有参构造函数 Demo.age =age; Demo.name = name; } public Demo(){//无参构造函数 } public void show(){ //普通函数 //局部代码块:定义属性的生命周期 { char sex = '男';//变量sex出了{}后就会被销毁 System.out.println("sex="+sex); } Demo.name = "张三"; } public static void main(String[] args) { /*当有静态代码块构造代码块构造函数时程序执行流程 * 1.类被调用或创建实例时会执行静态代码块进行初始化执行后age=10 name=旺财。 * 2.创建实例会执行构造代码块调用show方法执行后sex = 男 ,age不变,name = 张三。 * 3.调用有参构造函数传入参数执行后age = 50,name=姚明。 * 执行顺序为: * 1、静态代码块 :给类的属性进行初始化。 * 2、构造代码块:给所有的对象进行初始化。 * 3、有参或无惨构造(根据实例来定):给指定的对象进行初始化。 * 结果为:sex=男 注意这个是在构造代码块中输出的 * 50 姚明 * */ Demo d = new Demo(50,"姚明"); System.out.println(d.age+"\t"+d.name); } }