【Java基础】代码块
1.代码块说明
一对花括号表示,仅可以使用static修饰,可以用来对类或对象进行初始化。
-
静态代码块:static修饰
- 随着类的加载而执行,只执行一次,有多个时,按顺序执行。
- 无法调用非静态结构。
-
非静态代码块
- 每次创建对象时都会执行一次,且优先于构造器执行,有多个时,按顺序执行。
- 可以调用静态结构,非静态结构。
2.使用
以下类中有静态属性name和非静态属性age。
public class CodeBlock { private static String name; private int age; { name = "芜湖"; age = 18; System.out.println("代码块:"+name+","+age); } static { name = "张三"; //age = 20; 报错,静态代码块中不能使用非静态结构 System.out.println("静态代码块:"+name); } public static void main(String[] args) { System.out.println("main方法"); CodeBlock codeBlock1 = new CodeBlock(); CodeBlock codeBlock2 = new CodeBlock(); } }
执行main方法输出以下结果。
静态代码块:张三 main方法 代码块:芜湖,18 代码块:芜湖,18
PS:创建子类对象时,涉及到父类、子类中代码块、构造器的加载顺序。
由父及子,静态先行
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本