本节把类和对象的初始化所涉及到的所有代码块阐述一边。
示例代码:
1 public class Demo { 2 private static String name; 3 private String age; 4 5 // 主函数 6 public static void main(String[] args) { 7 Demo demo = new Demo(); 8 9 } 10 11 // 构造函数 12 public Demo() { 13 System.out.println("我是构造函数,随着对象建立而运行"); 14 } 15 16 // 我是构造代码块 17 { 18 System.out.println("我是构造代码块,随着对象建立而运行,优先于对象的构造函数"); 19 20 } 21 // 我是静态代码块 22 static { 23 System.out.println("我是静态代码块,随着类加载而运行"); 24 } 25 }
新建一个Demo类,主函数中新建此类对象demo;
运行步骤:
1.Demo类加载的同时,static代码块会一起加载并执行;作用是对类初始化
2.new关键字在堆中开辟空间,分配内存地址;建立对象的特有属性。并进行默认初始化;对属性进行显示初始化。
3.对构造代码块初始化,会优先于构造函数执行,作用是对所有对象初始化;
4.紧跟着构造函数执行,作用是对相关对象初始化;
时间: 2024-10-05 13:15:09