`
suifeng
  • 浏览: 181504 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

对象初始化奇怪现象

 
阅读更多
直接看到代码,说答案, 执行Main后输出两行,这两行是否一样?

class A {
	{
		System.out.println(this.getClass().getName());
	}
}

class B extends A {
	{
		System.out.println(this.getClass().getName());
	}
}
public class Main {
	public static void main(String[] args) {
		new B();
	}
}


没有执行之前,我想当然的认为是不一样的,但是执行之后,令我吃惊的,居然是一样的。

估计 在父类中的this是子类的this,初始化时传递上去的。

知道的能否解释一下。
分享到:
评论
2 楼 suifeng 2009-06-28  
这么一说好像明白了
1 楼 mikeandmore 2009-06-28  
this.getClass()......
当然是一个东西了啊。。

相关推荐

    “礼让”原则学习Java对象初始化顺序.pdf

    "Java 对象初始化顺序学习指南" 在学习 Java 编程语言时,对象初始化顺序是一个非常重要的知识点,但是许多学生却感到困惑和困难。事实上,Java 对象初始化顺序并不难理解,只需要掌握“礼让”原则和 JVM 的执行...

    SIN初始化_混沌初始化_matlab_混沌映射_种群初始化_sin映射初始化粒子群_

    标题中的“SIN初始化_混沌初始化”指的是使用正弦混沌映射对粒子群进行初始位置的设置。混沌系统具有高度的敏感性,使得初始条件的微小差异可能导致显著不同的结果,这为种群的多样性和探索性提供了可能。SIN映射是...

    C++构造函数初始化列表

    在C++编程语言中,构造函数是对象生命周期开始时自动调用的特殊成员函数,用于初始化对象的状态。构造函数初始化列表是C++中一个非常重要的特性,它允许程序员在对象创建时直接对类中的成员进行初始化,而不是先分配...

    Java对象初始化的多维度分析 (2).pdf

    然后,我们可以通过构造方法和语句块来初始化对象的成员变量。 Java 对象初始化是一个复杂的过程,涉及到程序运行、字节码文件反编译和内存分配三个维度。只有通过对这些维度的深入分析,我们才能更好地理解 Java ...

    Python应用开发-对象初始化.pptx

    Python 应用开发 - 对象初始化 Python 是一种流行的高级编程语言,应用广泛,包括数据分析、人工智能、Web 开发等领域。对象初始化是 Python 中的一个重要概念,涉及到对象的创建、初始化和销毁。本文将详细介绍 ...

    类和对象的初始化过程.zip

    在Java编程语言中,类和对象的初始化是程序运行的基础,因为它们构成了面向对象编程的核心。这个压缩包文件包含三个源代码文件:StaticTest.java、Test.java和Father.java,它们可能用于演示类和对象初始化的不同...

    类继承的初始化顺序类,继承的初始化顺序

    3. **基类非静态成员初始化**:当创建一个子类对象时,会首先调用基类的构造函数来初始化基类的非静态成员变量。 4. **子类非静态成员初始化**:接着是子类的非静态成员变量初始化。 5. **基类构造函数调用**:通过`...

    计数器实现了默认构造函数用于初始化,c++面向对象程序设计书上的习题

    在C++中,构造函数是一种特殊类型的成员函数,它在创建对象时自动调用,用于初始化对象的状态。默认构造函数是指没有参数的构造函数,它的作用是当创建对象时,如果没有提供任何初始值,就使用默认值来设置对象的...

    java代码的初始化顺序demo

    在Java编程语言中,类和对象的初始化是一个关键的概念,对于理解和编写健壮的程序至关重要。这个"java代码的初始化顺序demo"显然旨在演示这一过程。让我们深入探讨Java中的初始化顺序及其背后的机制。 1. **类加载...

    比赛工程2,初始化上行至10层;电梯PLC;好像是六部十层;;

    比赛工程2,初始化上行至10层;电梯PLC;好像是六部十层;;比赛工程2,初始化上行至10层;电梯PLC;好像是六部十层;;比赛工程2,初始化上行至10层;电梯PLC;好像是六部十层;;比赛工程2,初始化上行至10层;电梯PLC...

    EnumTest-初始化类的类成员对象(初始化列表方式).zip

    在编程领域,初始化列表是一种在创建对象时设置其成员变量值的方法。这种方式在C++中尤其常见,可以确保数据成员在构造函数体执行之前得到正确的初始化。本话题将深入探讨`EnumTest`类如何利用初始化列表来初始化类...

    柯尼卡美能达7828载体初始化方法

    ### 柯尼卡美能达7828载体初始化方法详解 #### 一、概述 在使用柯尼卡美能达7828打印机的过程中,可能会遇到需要对载体进行初始化的情况。载体初始化是为了确保打印机能够正常工作并维持打印质量的重要步骤之一。...

    Java中对象初始化顺序的详细介绍

    3. **构造器**:在实例化对象时,构造器是最后执行的。构造器的主要职责是初始化实例变量,并确保对象在创建后处于可使用状态。在构造器执行之前,所有实例变量已经被赋予了默认值,如引用类型为null,数值类型为0或...

    ARM初始化文件详解

    ARM初始化文件详解 在嵌入式系统开发中,ARM处理器的初始化文件扮演着至关重要的角色。它是系统启动过程中的核心部分,确保硬件正确配置,并为后续的系统加载和运行提供必要的环境。本文将深入探讨ARM初始化文件的...

    详解C++中变量的初始化规则

    定义没有初始化式的变量时,系统有时候会帮我们初始化变量。 系统如何初始化取决于变量的类型以及变量定义的位置。  内置类型变量是否自动初始化取决于变量定义的位置。 函数体外定义的变量初始成0;函数体内定义的...

    java对象初始化顺序验证示例

    Java对象初始化顺序是一个重要的编程概念,它涉及到类的继承、构造函数、成员变量初始化和非静态初始化块。在这个示例中,我们通过一个简单的代码片段来验证这些规则。首先,让我们详细解析一下给出的代码: ```...

    vue初始化模板vue初始化模板

    vue初始化模板vue初始化模板vue初始化模板vue初始化模板vue初始化模板vue初始化模板vue初始化模板vue初始化模板vue初始化模板vue初始化模板vue初始化模板vue初始化模板vue初始化模板vue初始化模板vue初始化模板vue...

    Nacos 2.1.2 数据库初始化脚本

    Nacos 2.1.2 数据库初始化脚本

    LanguageFeatureso-使用对象和集合初始化器

    它们使得初始化对象和集合的过程变得更加简洁,减少了代码量,提高了代码的可维护性。在实际开发中,合理利用这些特性可以提升代码质量,降低理解难度,从而提升开发效率。在提供的压缩包文件"LanguageFeatureso"中...

    深入介绍Java对象初始化

    构造器的目的是为了初始化对象的状态,可以设置字段的值、调用其他方法或者执行更复杂的逻辑。例如,`Person`类可能有一个构造器用于设置`name`字段: ```java class Person { private String name; public ...

Global site tag (gtag.js) - Google Analytics