Java 中可以通过初始化块进行数据赋值。
在类的声明中,可以包含多个初始化块,当创建类的实例时,就会依次执行这些代码块。如果使用 static 修饰初始化块,就称为静态初始化块。
- 注意:静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。
- 代码:
public class HelloWorld { String name; // 声明变量name String sex; // 声明变量sex static int age;// 声明静态变量age // 构造方法 public HelloWorld() { System.out.println("通过构造方法初始化name"); name = "tom"; } // 初始化块 { System.out.println("通过初始化块初始化sex"); sex = "男"; } // 静态初始化块 static{ System.out.println("通过静态初始化块初始化age"); age = 20; } public void show() { System.out.println("姓名:" + name + ",性别:" + sex + ",年龄:" + age); } public static void main(String[] args) { // 创建对象 HelloWorld hello = new HelloWorld(); // 调用对象的show方法 hello.show(); HelloWorld hello2 = new HelloWorld(); } }
-
结果:
通过静态初始化块初始化age
通过初始化块初始化sex
通过构造方法初始化name
姓名:tom,性别:男,年龄:20
通过初始化块初始化sex
通过构造方法初始化name
- 结论:通过输出结果,我们可以看到,程序运行时静态初始化块最先被执行,然后执行普通初始化块,最后才执行构造方法。由于静态初始化块只在类加载时执行一次,所以当再次创建对象 hello2 时并未执行静态初始化块。
相关推荐
这里我们将深入探讨两种类型的初始化块:静态初始化块(Static Initializer Block)和对象初始化块(Instance Initializer Block)。这两种初始化块在创建类实例或加载类时分别扮演着不同的角色。 **静态初始化块**...
在提供的文件"9.static静态初始化快"中,可能包含了关于如何定义和使用静态初始化块的示例代码,这将帮助初学者更好地理解这个概念。通过查看和分析这些代码,你可以进一步了解静态初始化块的实际应用和效果。学习这...
根据是否带有 `static` 关键字,初始化块分为两种类型:普通初始化块(非静态初始化块)和静态初始化块。 1. 普通初始化块(非静态初始化块) 普通初始化块在创建对象时会被隐式调用,并且在执行构造器之前运行。...
静态块,也被称为静态初始化器,是在类加载时自动执行的一段代码,用于初始化类的静态变量或执行一次性的设置工作。静态块可以包含任意的Java语句,并且会在类的任何实例被创建之前执行。与静态方法不同,静态块不是...
* 初始化时使用作用域运算符来标明它所属类,因此,静态数据成员是类的成员,而不是对象的成员。 3. 类里的 static const 和 const static 成员初始化 在学习 static 成员初始化时,我们发现了网上有很多关于 ...
System.out.println("父类--静态初始化块"); } // 初始化块 { System.out.println(p_Field); System.out.println("父类--初始化块"); } // 构造器 public Parent() { System.out.println(...
Java编程语言中,静态块(static block)和初始化块(instance initialization block)是两种特殊的代码块,它们在程序运行的不同阶段被执行,对于类和对象的初始化有着重要作用。同时,`main`方法是Java程序的入口...
### Java 类中静态域、块,非静态域、块,构造函数的初始化顺序 #### 一、概述 在 Java 编程语言中,类的初始化顺序对于理解程序的行为至关重要。特别是当涉及到静态域(静态变量)、非静态域(实例变量)、静态块...
1. 首先,执行父类的静态初始化块,打印出 "父类--静态变量" 和 "父类--静态初始化块"。 2. 接着,执行子类的静态初始化块,打印出 "子类--静态变量" 和 "子类--静态初始化块"。 3. 然后,创建子类实例,首先执行...
Java中的静态变量(static变量)是在类加载时初始化的,而不是在对象创建时。静态变量属于类,而不属于任何特定的对象,因此它们是共享的,所有类实例都可以访问。了解静态变量的初始化顺序对于理解和避免潜在的编程...
Java中的对象初始化流程是编程实践中一个非常重要的概念,它涉及到类加载、静态初始化块、实例初始化块、构造器等多个方面。下面将详细解释这个过程。 首先,对象初始化流程的起点是程序的入口点,即`main`方法。当...
3. **静态初始化块(Static Initialization Blocks)**:在类加载时执行,仅执行一次。 4. **实例初始化块(Instance Initialization Blocks)**:在每个对象创建时执行。 5. **构造方法(Constructors)**:用于...
Java中静态初始化块的执行顺序 Java是一种面向对象的编程语言,静态初始化块是Java中的一个重要...通过本文的介绍,希望大家能够更好地理解Java中静态初始化块的执行顺序,并能够在实际开发中正确地使用静态初始化块。
静态初始化块(static initializer block)是在类加载时执行的,它用于初始化类的静态变量。与构造方法不同,静态初始化块只执行一次。这与实例初始化块(instance initializer block)不同,后者在每次创建类的实例...
- 静态初始化块是在类加载时执行的,且只执行一次,主要用于初始化类的静态变量。 - 静态初始化块不能用来初始化非静态成员,因为它的执行早于类的实例创建。 3. **封装**: - 封装是面向对象编程的三大特性之一...
静态初始化通过`static`关键字标记,可以用于声明静态变量、静态方法或静态代码块。 #### 二、静态初始化的过程 1. **静态初始化的时机**: - 当类首次被加载到JVM中时。 - 当第一次访问该类的静态成员(字段或...
3. **静态初始化块与非静态初始化块的区别** #### 1. 静态成员的初始化 在Java中,静态成员(包括静态变量和静态方法)在任何类的实例创建之前都会被初始化。这意味着无论是否创建了该类的对象,静态成员都将在...
子类 --静态初始化块 "); 34. } 35. 36. // 初始化块 37. { 38. System.out.println(s_Field); 39. System.out.println(" 子类 --初始化块 "); 40. } 41. 42. // 构造器 43. public SubClass() { 44. System.out....
首先,全局变量的初始化分为两个阶段:静态初始化(static initialization)和动态初始化(dynamic initialization)。静态初始化发生在程序加载时,主要针对那些可以用常量表达的初始化,例如零初始化(zero ...