验证程序:
/**
*
*/
package com.test;
/**
* @author Administrator
*
*/
class Prare {
public static String pra_stic="父类--static";
public String pra="父类-not static";
static{
//静态初始化
System.out.println(pra_stic);
System.out.println("父类静态初始化");
}
{
//初始化
System.out.println(pra);
System.out.println("父类初始化");
}
public Prare(){
System.out.println("父类构造器");
}
}
public class Sun extends Prare{
public static String pra_stic="子类--static";
public String pra="子类-not static";
static{
//静态初始化
System.out.println(pra_stic);
System.out.println("子类静态初始化");
}
{
//初始化
System.out.println(pra);
System.out.println("子类初始化");
}
public Sun(){
System.out.println("子类构造器");
}
public static void main(String[] args) {
new Sun();
}
}
输出结果:
父类--static
父类静态初始化
子类--static
子类静态初始化
父类-not static
父类初始化
父类构造器
子类-not static
子类初始化
子类构造器
说明:
运行时先执行父类的静态初始化,在执行子类的静态初始化,在执行父类的变量初始化,在执行父类的构造方法,在执行子类的变量初始化最后执行子类的构造方法
分享到:
相关推荐
System.out.println("父类--静态初始化块"); } // 初始化块 { System.out.println(p_Field); System.out.println("父类--初始化块"); } // 构造器 public Parent() { System.out.println(...
- 静态初始化块(static{}):如果类中存在静态初始化块,该块的代码会在类加载后的准备阶段执行,用于初始化静态变量或执行其他静态设置任务。 - 静态变量的赋值:接着,静态变量会被赋予它们的初始值,这可以是...
1. 首先,执行父类的静态初始化块,打印出 "父类--静态变量" 和 "父类--静态初始化块"。 2. 接着,执行子类的静态初始化块,打印出 "子类--静态变量" 和 "子类--静态初始化块"。 3. 然后,创建子类实例,首先执行...
总之,Java类继承初始化顺序涉及到静态和非静态初始化块、构造器的调用以及方法的覆盖。理解这些概念对于编写健壮的、易于维护的Java代码至关重要。在实际编程中,应合理利用继承特性,同时注意避免不必要的复杂性和...
静态初始化块(也称为静态初始化器)是在类被加载并初始化时执行的,且只执行一次。它用于初始化类级别的静态变量。在`init`目录下的文件可能包含了不同静态初始化的示例。 3. **实例化阶段**: 当我们创建一个新...
### Java静态数据初始化详解 #### 一、Java静态初始化...通过本篇文章的学习,我们了解了Java中静态初始化的基本概念、执行过程以及如何正确地在程序中使用静态初始化。这对于理解和优化Java应用程序具有重要意义。
在Java编程语言中,构造器...了解和掌握构造器的调用、初始化、默认构造器、继承中的构造器调用以及构造器重载等概念,是编写高质量Java代码的基础。通过熟练运用这些知识,可以更有效地管理对象的生命周期和状态。
总之,类的初始化顺序是:静态成员 -> 静态初始化块 -> 非静态成员 -> 非静态初始化块 -> 构造器。这个顺序同样适用于继承关系,只是会先初始化父类的部分,再初始化子类的部分。掌握这一知识能帮助程序员更好地设计...
这个过程是自顶向下的,从`java.lang.Object`开始,逐级执行每个类的静态初始化块。 总结起来,Java初始化块是Java中用于对象和类初始化的重要工具,它们在不同场景下提供了一种灵活的方式来控制对象和类的状态。...
首先,需要了解Java类初始化的基本规则,即在类的静态变量、静态初始化块、变量、初始化块、构造器这五个部分中,它们的初始化顺序依次是:静态变量、静态初始化块、变量、初始化块、构造器。这个顺序在单个类中是...
2. 非静态初始化代码块中对实例变量指定初值; 3. 构造器中对实例变量指定初值。 虽然程序在三个地方都可对实例变量指定初始值,但(1)、(2)处的赋值操作最终会被提取到构造器中执行。且(1)、(2)的执行顺序...
2. 静态初始化块:当类第一次被加载时执行,按块的顺序执行。 3. 实例字段:在构造器内部,按照声明的顺序初始化。 4. 实例初始化块:在构造器执行之前,按块的顺序执行。 例如: ```java public class MyClass { ...
Java编程语言中,类的初始化过程涉及到静态块(static block)、实例块(instance block)以及构造器(constructor)。这些块的执行顺序对于理解和编写复杂的Java程序至关重要,特别是在涉及继承关系时。下面我们将...
4. **子类的非静态部分**:最后执行子类的非静态变量初始化和非静态初始化块,以及子类的构造器。 下面是一个包含继承的例子: ```java class Parent { public static String p_StaticField = "父类--静态变量"; ...
3. 接着,执行当前类的非静态初始化,包括当前类的构造器。 4. 最后,执行实例初始化块(如果存在)。 以下是一个例子,展示了这个顺序: ```java class Insect { private int i = 9; protected int j; private...
Java 中的初始化顺序是按照定义的顺序进行的,而静态变量的初始化顺序则是按照定义的顺序,并且只在第一次访问时初始化。 Java 初始化顺序的知识点总结: * 类变量(静态变量)和实例变量(对象变量)的区别 * ...
在 Java 编程语言中,构造器是一种特殊的方法,用于初始化对象的创建。它是 Java 类中最重要的一个概念。下面将深入讨论构造器的机理、执行顺序、作用及与其他概念的区别。 一、构造器的机理 构造器是一种特殊的...
Java中的对象初始化流程是编程实践中一个非常重要的概念,它涉及到类加载、静态初始化块、实例初始化块、构造器等多个方面。下面将详细解释这个过程。 首先,对象初始化流程的起点是程序的入口点,即`main`方法。当...
需要注意的是,静态初始化块只在类被加载时执行一次,而实例初始化块(构造函数)则会在每次创建类的实例时执行。静态变量的初始化是在类加载时完成的,而实例变量的初始化则在对象创建时进行。 在实际开发中,对...