`
free_bird816
  • 浏览: 205871 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

类实例化

    博客分类:
  • java
阅读更多

学习JAVA这门面向对象的语言,实质就是不断地创建类,并把类实例化为对象并调用方法。对于初学JAVA的人总搞清楚对象是如何实例化的,假如类之间存在继承关系,那就更糊涂了。下面我们通过两个例题来说明对象的实例化过程。例1:    编译并运行该程序会有以下输出 Static Block Employee Company:china soft Non-Static Block Employee phone:0755-51595599 Employee(String) Empoloyee() 下面我们来对结果做分析: 1 在代码34行实例化对象时, 先对给静态变量分配内存空间并初始化,然后执行静态块。因此,在这里会输出: Static Block Employee Company:china soft Employee Company:china soft的输出也说明是先初始化静态变量然后再执行静态块,否则company将为null。 2然后在内存中为Employee分配内存空间,并做默认初始化(即所有变量初始化为默认值,这里都初始化为null)。 3 默认初始化完成后,开始显示初始化。即执行第5行,将phone初始化"0755-51595599",并且执行非静态方法块;因此在这里会有以下输出: Non-Static Block Employee phone:0755-51595599 4 最后才调用默认构造函数,在默认构造函数中调用了带参数的构造函数,所以在这里先输出带参数构造函数中的:Employee(String),然后才输出:Empoloyee()。

例2:    上面的代码中Manager继承了前面写的Employee类,当我们编译并运行Manager类,会产生以下的输出:

Static Block Employee Company:china soft Sub Static Block Manager department:sale Non-Static Block Employee phone:0755-51595599 Employee(String) Empoloyee() Sub Non-Static Block Manager salary:8000 Manager(String) Manager() 下面我们对结果做分析: 1 在行34实例化对象时,由于Manager继承了Employee,所以先从父类Employee开始;先给父类静态变量分配内存空间并初始化,然后执行父类静态块。然后再给子类静态变量分配内存空间并初始化,然后执行子类静态块,所以会得到以下输出: Static Block Employee Company:china soft Sub Static Block Manager department:sale

2然后在内存中为父类Employee分配内存空间,并做默认初始化;再为子类Manager分配内存空间,并做默认初始化。 3默认初始化完成后,从父类开始显示初始化并执行非静态方法块和构造函数,然后再子类开始显示初始化并执行非静态方法块和构造函数。因此会产生以下的输出: Employee phone:0755-51595599 Employee(String) Empoloyee() Sub Non-Static Block Manager salary:8000 Manager(String) Manager()

总结以上内容,可以得到对象初始化过程: 1、 如果存在继承关系,就先父类后子类; 2 、如果在类内有静态变量和静态块,就先静态后非静态,最后才是构造函数; 3 、继承关系中,必须要父类初始化完成后,才初始化子类

分享到:
评论

相关推荐

    Java实例化一个抽象类对象的方法教程

    以下将详细介绍如何在Java中处理抽象类实例化的问题。 首先,理解抽象类的主要用途是为提供一种接口或模板,让它的子类去具体实现。如果尝试直接实例化抽象类,编译器将会报错。但是,抽象类可以拥有构造方法,这是...

    Java中内部类的实例化

    Java 内部类 实例化 在Outer类的静态方法中实例化内部类 在同一个包的其它类中实例化Outer类中的内部类

    0361-极智开发-解读C++类实例化的方法

    0361_极智开发_解读C++类实例化的方法

    类实例化顺序讲解 附阿里巴巴一道笔试题

    类实例化顺序是Java编程中一个关键的概念,它涉及到类加载、初始化以及对象创建等多个步骤。在面试或笔试中,理解这些顺序对于解答相关问题至关重要。以下是对类实例化顺序的详细讲解,以及阿里巴巴笔试题的解析。 ...

    用C语言实现类实例化的研究

    【C语言实现类实例化的研究】 C语言,作为一种经典的编程语言,因其简洁高效的特点,在嵌入式软件开发领域中有着广泛的应用。然而,随着物联网、智能设备等领域的快速发展,传统面向过程的编程方式逐渐无法满足复杂...

    用C语言实现类实例化的研究.pdf

    本文深入探讨了如何在C语言环境下模拟面向对象编程中类的实例化过程,这一过程对于将面向对象的设计理念引入到C语言这一传统过程式编程语言中具有重要的意义。在深入了解该研究前,需要先对一些基础概念有所了解。 ...

    实例化一个类.rar

    下面是一个简单的类实例化示例,不调用构造函数且不初始化属性: ```csharp public class MyClass { public string MyProperty { get; set; } } public class Program { static void Main() { MyClass ...

    Java实例化类的方法.docx

    本文将详细探讨四种常用的Java类实例化方法,并通过示例代码加深理解。 #### 1. 使用`new`操作符 这是最常见也是最直接的方式。通过`new`关键字,可以调用类的构造器来创建一个新对象。构造器用于初始化对象的状态...

    通过java类的路径实例化类并调用方法

    通过java类的路径实例化类并调用方法:仅仅知道类的路径,就可以实例化对象,利用反射机制调用其方法

    python类的实例化问题解决

    当我们遇到"类的实例化问题",通常是指在创建类的实例时,传入的参数与类的`__init__()`方法所需的参数不匹配。在这个具体的问题中,错误提示`TypeError: __init__() missing 1 required positional argument: 'h'`...

    Spring实例化Bean顺序

    在Spring框架中,Bean的实例化顺序是一个关键概念,它涉及到如何管理和协调多个Bean的创建与依赖关系。这里,我们主要探讨的是Spring如何通过其IoC(Inversion of Control)容器来实例化Bean,并理解其背后的逻辑。 ...

    通过类名获取类的实例对象

    在上述的类实例化过程中,消息机制可能用于通知其他线程类实例已经创建完成,或者在出现错误时发送异常信息。 综上所述,通过类名获取类的实例对象在C++中是一种动态类型操作,可能涉及到反射机制的实现、注册-查找...

    PHP把实例化的class对象永久保存

    1.不管你网站有多大,且有多少个class,用此方法之后每个类只需要实例化一次(除非你重启了服务器),听起来有点类似"一次变异长久执行的味道",以往的做法是每个class在客户端每次刷新的时候都要重新用 $实例=New 类名();...

    java实例化对象的过程

    在Java编程语言中,实例化对象是创建类的实例,使其具有特定状态和行为的过程。这个过程涉及到几个关键步骤,让我们深入探讨一下。 首先,我们需要一个类,它是创建对象的蓝图。在Java中,我们使用`class`关键字来...

    Java4Android 19_子类实例化过程

    下面将详细阐述Java中子类实例化的过程及其相关知识点。 首先,子类实例化时会先调用父类的构造器。这是因为子类继承了父类的属性和方法,所以在创建子类对象时,必须确保父类的数据成员被正确初始化。这是通过隐式...

    java 基础 类对象创建实例化过程 实例解析

    继承关系:类的实例化顺序 * 执行过程为:启动类是否为继承关系树中的一个,如果是则先执行启动类的所有父类的静态语句块;然后执行启动类的静态语句块static{} -> * 执行启动类的main函数 -> 创建对象的继承树从...

    怎样使一个class不能被实例化

    ### 如何使一个类不能被实例化 在面向对象编程中,有时我们希望定义一个类作为其他类的基础,但它本身不应该被创建实例。这种类型的类通常被称为“抽象基类”或“接口”。本文将详细介绍如何在C++中实现这一目标。 ...

    3.java实例化泛型类.zip

    3.java实例化泛型类.zip3.java实例化泛型类.zip3.java实例化泛型类.zip3.java实例化泛型类.zip3.java实例化泛型类.zip3.java实例化泛型类.zip3.java实例化泛型类.zip3.java实例化泛型类.zip3.java实例化泛型类.zip3....

    python 实例化

    当你创建一个类的实例时,你就是在实例化这个类。这个过程允许你在程序中使用类定义的各种属性和方法。以下是对"python实例化"这一主题的详细解释。 首先,我们需要了解类的概念。在Python中,类是一种自定义数据...

    java实现数组实例化一个类

    ### Java 实现数组实例化一个类 在Java编程中,我们经常会遇到需要创建多个具有相同属性的对象的情况。本文将详细探讨如何使用Java语言创建一个`Student`类,并通过数组来实例化该类的对象。 #### 创建 Student 类...

Global site tag (gtag.js) - Google Analytics