【Java】代码块(这可能是你看过的最全的代码块解析了)

目录

代码块基本介绍

代码块基本语法

代码块注意细节

1. 代码块分类详解

2. 类什么时候被加载

3. 普通代码块的执行与否

4. 创建一个对象时,在一个类中的调用顺序

5. 构造器隐含的秘密

6. 创建一个子类对象时(继承关系),它们的语句调用顺序

7. 两类代码块的调用条件


代码块基本介绍

代码化块又称为初始化块,属于类中的成员,类似于方法,将逻辑语句封装在方法体中,通过{ }包围起来。但其和方法不同,没有方法名、返回、参数,只有方法体,且不用通过对象或类显式调用,而是在加载类时或创建对象时被隐式调用。

代码块基本语法

【修饰符】{

     代码

};

注意:

1. 修饰符可写可不写,写的话只能写static。

2. 有static的叫静态代码块,没有的叫普通代码块。

3. 逻辑语句可以为任何逻辑语句。(输入、输出、循环、方法调用、判断等)

4. { }最后的;可写可不写。

代码块注意细节

1. 代码块分类详解

    static代码块也叫静态代码块,作用是对类进行初始化,而且它随着类的加载而执行,并且只会执行一次。如果是普通代码块,则创建一个对象就执行一次。

2. 类什么时候被加载

1)创建对象实例时(new)。

2)创建子类对象实例,父类也会被加载。

3)使用类的静态成员时(静态属性,静态方法)。

3. 普通代码块的执行与否

    普通的代码块,在创建对象实例时,会被隐式的调用,被创建一次就会调用一次。

    如果只是使用类的静态成员时,普通代码并不会执行。

4. 创建一个对象时,在一个类中的调用顺序

1)先调用静态代码块和静态属性初始化,它们两个优先级一样,如果代码中同时存在,则按照它们的定义顺序来输出。

 2)再调用普通的代码块和普通属性的初始化,它们两个优先级一样,如果代码中同时存在,则也按照它们的定义顺序来输出。

3)最后才调用构造器。

5. 构造器隐含的秘密

构造器的最前面其实隐含了super()和调用普通代码块。有super()就代表如果有父类就会先调用父类的东西,然后再调用本类的普通代码块。

6. 创建一个子类对象时(继承关系),它们的语句调用顺序

7. 两类代码块的调用条件

     静态代码块只能直接调用静态成员(静态属性和静态方法),普通代码块可以调用任意成员。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值