`
rockyuse
  • 浏览: 195413 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

深入理解Java对象实例生成的例子

 
阅读更多

代码如下:

class A { 
        public int Avar; 
        public A() { 
                System.out.println("AAA"); 
                doSomething(); 
        } 
        public void doSomething() { 
                Avar = 1111; 
                System.out.println("A.doSomething()"); 
        } 
} 

public class B extends A { 
        public int Bvar = 2222; 
        public B() { 
                System.out.println("BBB"); 
                doSomething(); 
                System.out.println("Avar=" + Avar); 
        } 
        public void doSomething() { 
                System.out.println("Bvar=" + Bvar); 
        } 
        public static void main(String[] args) { 
                new B(); 
        } 
}

 

讲解:

顺序是这样得,首先生成B就得先生成A,
所以调用A的构造器,输出AAA,
然后调用方法dosomething,!!!
注意:A的该方法被B覆盖,
而你生成的是B的对象,
所以它调用B的方法,
由于BVAR目前没有给定值,
所以自动初始化为0,
然后生成B对象,
先初始化变量BVAR,
然后调用构造器输出BBB,
然后调用方法,
这时BVAR已初始化,
所以输出BVAR=2222,
而对象A中变量AVAR由于没有调用对象A的方法dosomething,
所以其值为0,则输出0

全部输出就如下:
AAA
Bvar=0
BBB
Bvar=2222
Avar=0

注意:初始化顺序,当继承时,先生成超类对象;生成对象时,先生成静态变量,

然后是一般变量,然后调用构造器!当所以超类对象生成后,生成本对象,顺序
一样! 当方法被覆盖时,调用目前对象的方法!这得注意。  


--
  茕茕白兔  东走西顾
  衣不如新  人不如故

※ 来源:·北大未名站 bbs.pku.edu.cn·[FROM: 202.107.34.72]

分享到:
评论

相关推荐

    面向对象经典讲解 有助于更进一步理解java对象

    面向对象编程是软件开发中的一种核心思想,尤其在Java...以上就是面向对象编程的基本知识,深入理解和熟练应用这些概念是成为一名优秀的Java程序员的关键。通过实践和不断学习,你可以更有效地设计和实现复杂的系统。

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

    在上述例子中,`ConcreteSub`是`AbstractBase`的实例,它实现了`AbstractBase`的抽象方法`doSomething()`,因此可以成功创建对象。 另外,Java中的动态代理机制(JDK Proxy)通常用于接口,而不是抽象类。因为Java...

    java 解析、生成 Excel XML 四个实例

    本文将深入探讨四个使用Java解析和生成Excel及XML的实例,旨在帮助开发者掌握相关技能。 实例一:解析Excel文件 使用Apache POI库是Java中解析Excel文件的常见方式。POI提供了HSSF(旧版Excel .xls格式)和XSSF(新...

    java源码包---java 源码 大量 实例

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    JAVA对象所占内存大小计算例子

    本文将深入探讨如何计算Java对象所占内存,并通过提供的代码示例进行详细解析。 首先,我们需要理解Java对象内存占用的基本原理。每个Java对象都由三部分组成:对象头(Object Header)、实例数据(Instance Data)...

    java https ssl 实例 例子

    Java sslSocket 聊天实例是使用 Java 的 SSL SOCKET 编程来实现安全聊天室功能的示例程序。 十二、用 COMMVIEW 工具截获浏览器访问支付宝的 TCP/IP 包 COMMVIEW 是一个网络嗅探工具,能够截获网络数据包。在本实例...

    protobuf java自动生成,例子实用

    标题中的“protobuf java自动生成”指的是使用Google的Protocol Buffers(简称protobuf)工具在Java环境中进行数据序列化和反序列化的自动化过程。protobuf是一种高效、跨平台的数据交换格式,它能够将结构化数据...

    java动态编译指定java文件且将java文件生成jar

    本教程将深入讲解如何实现这个过程,主要关注`java动态编译`和`将class生成jar`这两个关键步骤,同时会涉及到`JavaCompiler` API的使用。 首先,让我们了解`JavaCompiler` API。这是Java标准库中的一部分,位于`...

    Java 语言基础例子代码.rar

    总的来说,这个压缩包为Java初学者提供了一个全面的学习平台,通过实践这些例子,他们不仅可以巩固基础语法,还能深入理解Java编程的核心概念。这些基础例子是通往更高级编程技术的坚实第一步,对于想要深入学习Java...

    SpringMVC 传递 和 返回对象实例 以及 zTree例子

    在SpringMVC框架中,开发人员经常需要处理对象实例的传递和返回,这涉及到模型绑定、数据转换和服务层之间的交互。本示例将探讨如何在SpringMVC中有效地完成这一任务,并结合zTree这一前端组件展示如何进行数据交互...

    Java源码包100个设计实例.zip

    Java生成密钥的实例 Java电子相册源码.rar Java目录监视器源程序.zip JAVA短信网关平台(值得一看).rar Java绘制图片火焰效果.rar Java编写的HTML浏览器.rar Java编写的山寨QQ,多人聊天+用户在线.rar Java编写的...

    模仿json,根据对象生成json字符串,根据字符串生成对象

    本文将深入探讨如何模仿JSON,根据对象生成JSON字符串,以及如何根据JSON字符串反向生成对象。 首先,我们要理解JSON的基本结构。一个JSON对象以大括号`{}`包围,其内部由键值对组成,键用双引号`""`包裹,值可以是...

    java实现http请求以及解析json与java对象转换 项目源代码实例

    首先,让我们深入理解HTTP请求。HTTP(超文本传输协议)是用于在Web上传输数据的标准协议。在Java中,可以通过多种方式实现HTTP请求,例如使用`java.net.URL`和`java.net.HttpURLConnection`类,或者使用Apache ...

    使用jackson完成json与java对象的互相转换实例

    本实例将详细介绍如何使用Jackson库进行JSON到Java对象的反序列化以及Java对象到JSON的序列化。 首先,我们需要引入Jackson库。在Maven项目中,可以在pom.xml文件中添加以下依赖: ```xml <groupId>...

    java实例,课程设计例子

    java实例第1章 记忆测试软件 1.1. 设计内容 1.2. 设计要求 1.3. 总体设计 1.4. 具体设计 1.4.1. 运行效果与程序发布 1.4.2. 主类Memory 1.4.3. 方块 Block 1.4.4. 记忆测试板MemoryTestPane 1.4.5. 显示成绩 ...

    java JDK 实例

    通过设置断点、单步执行、查看变量值等功能,可以深入理解程序的运行流程。 7. **其他实用工具**:如jconsole(监控JVM性能)、jmap(内存映射工具)、jhat(堆分析工具)等,这些工具帮助开发者优化和诊断Java应用...

    运行于JBuilder的100个Java 实例JAVA源码

    通过这些实例,开发者可以深入理解Java语言的核心概念,并学会如何在实际问题中应用它们。 【JBuilder中的项目管理】 在JBuilder中,你可以创建和管理项目,每个项目包含一系列的源代码文件、资源文件以及配置信息...

    JNI中C调用Java方法的实例

    在本实例中,我们将深入探讨如何使用纯C语言通过JNI调用Java对象的方法。这个例子特别适合那些需要利用C/C++的高效性能,同时又需要与Java应用程序集成的开发者。 首先,我们需要理解JNI的基本概念。JNI提供了一套...

    java实例100个

    "Java实例100个"这个资源集包含了100个Java编程的示例,旨在帮助初学者逐步深入理解Java语言的核心概念和常用技巧。下面我们将逐个探讨这些实例可能涵盖的知识点,并解释它们在Java学习中的重要性。 1. **基础语法*...

    Java生成曲线图

    下面我们将深入探讨 JFreeChart 的使用方法、特点以及如何在 Java 中生成曲线图。 首先,JFreeChart 是一个开源项目,它提供了多种类型的图表,如柱状图、饼图、散点图、甘特图等,但在这里我们主要关注的是曲线图...

Global site tag (gtag.js) - Google Analytics