5.1JAVA基础复习——JAVA中的静态代码块、构造代码块、构造函数、局部代码块区别...

本文详细解析了Java中的不同类型的代码块,包括构造代码块、局部代码块和静态代码块的作用与区别,并通过示例代码展示了它们在类初始化过程中的执行顺序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

构造代码块:
  在类中定义可以给所有对象进行初始化。
局部代码块:
  在方法中定义属性的生命周期。
静态代码块:
  在类中定义用于给类调用时属性的初始化

构造函数与构造代码块的区别:
  构造函数是给对应的对象进行针对性的初始化。
  构造代码块是给所有对象进行初始化

代码如下:

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);
    }
}

 

转载于:https://www.cnblogs.com/hcl22/p/6374752.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值