`
gaoyu
  • 浏览: 274032 次
  • 来自: 云南大理
社区版块
存档分类
最新评论

Java类的基本运行顺序

阅读更多
Java类的基本运行顺序
作者:陈臣 发布于:2008年11月12日 20:00

作为程序员,应该对自己写的程序具备充分的掌控能力,应该清楚程序的基本运行过程,否则糊里糊涂的,不利于对程序的理解和控制,也不利于技术上的发展。

我们以下面的类来说明一个基本的Java类的运行顺序:



第1行 public class Test {
第2行 private String name = "Java私塾";
第3行 private int age = 2;
第4行 public Test(){
第5行 age = 1000;//期望能到1000年,呵呵
第6行 }
第7行 public static void main(String[] args) {
第8行 Test t = new Test();
第9行 System.out.println(t.name+”的年龄是”+t.age+”年”);
第10行 }
第11行 }


运行的基本顺序是:
(1):先运行到第7行,这是程序的入口
(2):然后运行到第8行,这里要new一个Test,就要调用Test的构造方法
(3):就运行到第4行,注意:可能很多人觉得接下来就应该运行第5行了,错!初始化一个类,必须先初始化它的属性
(4):因此运行到第2行,然后是第3行
(5):属性初始化完过后,才回到构造方法,执行里面的代码,也就是第5行
(6):然后是第6行,表示new一个Test实例完成
(7):然后回到main方法中执行第9行
(8):然后是第10行

运行的结果是:Java私塾的年龄是1000年
说明:这里只是说明一个基本的运行过程,没有考虑更多复杂的情况。

继承中:初始化子类必先初始化父类
有继承的类在运行的时候,一定要记得:初始化子类必先初始化父类,这是Java程序的一个基本运行过程。比如:


第1行public class Test extends Parent{
第2行 private String name = "Java私塾";
第3行 private int age = 2;
第4行 public Test(){
第5行 age = 1000;//期望能到1000年,呵呵
第6行 }
第7行 public static void main(String[] args) {
第8行 Test t = new Test();
第9行 System.out.println(t.name+”的年龄是”+t.age+”年”);
第10行 }
第11行}
第12行class Parent{
第13行 private int num = 1;
第14行 public Parent(){
第15行 System.out.println(”现在初始化父类”);
第16行 }
第17行 public void test(){
第18行 System.out.println(”这是父类的test方法”);
第19行 }
第20行}


上述类的基本运行顺序是:
(1):先运行到第7行,这是程序的入口
(2):然后运行到第8行,这里要new一个Test,就要调用Test的构造方法
(3):就运行到第4行,注意:初始化子类必先初始化父类
(4):要先初始化父类,所以运行到第14行
(5):然后是第13行,初始化一个类,必须先初始化它的属性
(6):然后是第15行
(7):然后是第16行,表示父类初始化完成
(8):然后是回到子类,开始初始化属性,因此运行到第2行,然后是第3行
(9):子类属性初始化完过后,才回到子类的构造方法,执行里面的代码,也就是第5行
(10):然后是第6行,表示new一个Test实例完成
(11):然后回到main方法中执行第9行
(12):然后是第10行

运行结果是:
现在初始化父类
Java私塾的年龄是1000年
分享到:
评论

相关推荐

    Java类的基本运行顺序-Java教程共1页.pdf.zi

    在这个"Java类的基本运行顺序"教程中,我们将深入探讨这个过程,了解一个Java类从加载到卸载的每一步。 1. **加载(Loading)**:当Java虚拟机(JVM)遇到一个新的类时,它首先会通过类加载器将类的.class文件读入...

    Java类的完整构造执行顺序

    在深入探讨Java类的完整构造执行顺序之前,我们先来明确一下Java中构造函数与类初始化的基本概念。构造函数在创建对象时被调用,用于初始化该对象的状态。而类初始化则是指在类首次被使用时,JVM执行的一系列初始化...

    java中类的初始化顺序

    ### Java中类的初始化顺序详解 #### 一、概述 在Java编程语言中,类的初始化...这种顺序确保了程序的正确运行,并且可以帮助开发者更好地理解和控制类的初始化流程。掌握这些细节对于编写高质量的Java程序至关重要。

    数据结构(Java语言描述) 案例01 顺序表的就地逆置.docx

    在Java中,我们可以定义一个线性表接口`LinearList`,然后创建一个实现了该接口的顺序表类`SeqList`。为了处理整数,我们将`LinearList`接口和`SeqList`类中的泛型`T`替换为`Integer`。在`SeqList`类中,我们添加一...

    Java类加载初始化的过程及顺序

    * 构造器的执行顺序:构造器的执行顺序是按照父类到子类的顺序进行的,即父类的构造器会先被执行,然后是子类的构造器。 * 非静态成员变量的初始化:非静态成员变量会被赋予默认值,如果是基本类型则为默认值,如果...

    Java学习~求三角形面积的顺序结构

    在Java编程语言中,顺序结构是最基础的程序控制结构之一,它按照代码的书写顺序逐行执行。在“Java学习~求三角形面积的顺序结构”这个主题中,我们将深入探讨如何利用Java来计算三角形的面积,并了解相关概念。 ...

    JAVA程序执行顺序,你了解了吗.doc

    在JAVA编程语言中,程序的执行顺序是程序员需要掌握的关键概念之一,因为它直接影响到程序的行为。以下是关于JAVA程序执行顺序的详细解释: 1. **静态块**: 静态块是在类加载时执行的,它不依赖于类的实例。在...

    JAVA面试题解惑系列——类的初始化顺序

    首先,需要了解Java类初始化的基本规则,即在类的静态变量、静态初始化块、变量、初始化块、构造器这五个部分中,它们的初始化顺序依次是:静态变量、静态初始化块、变量、初始化块、构造器。这个顺序在单个类中是...

    顺序线性表的java实现代码

    顺序存储结构线性表的java实现代码,要在jdk1.6以上环境下运行

    Java类初始化顺序

    Java类的初始化顺序是编程中一个非常重要的概念,它涉及到对象的创建过程和成员变量的初始化。当一个Java类被实例化或者其静态成员被访问时,类的初始化过程就开始了。以下详细解释了Java类的初始化顺序: 1. **...

    java实现顺序栈

    通过这个例子,我们展示了如何在Java中使用ArrayList实现顺序栈,并提供了其基本操作的实现。顺序栈虽然简单,但在许多实际应用中都有广泛的应用,例如括号匹配、表达式求值、深度优先搜索等。理解并掌握顺序栈的...

    java类中静态域、块,非静态域、块,构造函数的初始化顺序

    按照 Java 的规定,以下列出了类初始化的基本顺序: 1. **静态域初始化**:所有静态域按它们在源代码中出现的顺序进行初始化。 2. **静态块执行**:所有静态块按它们在源代码中出现的顺序依次执行。 3. **非静态域...

    控制台展示执行顺序

    在Java编程中,控制台展示执行顺序是一项基本但至关重要的技能。这关乎到代码的可读性、调试能力和逻辑理解。在"控制台展示执行顺序"这个主题中,我们将深入探讨如何通过Java来实现这一点,以及它在实际编程中的应用...

    Java常用类源码

    在Java编程语言中,了解和研究常用类的源码对于提升编程技能至关重要。Java的类库丰富多样,包含了大量预定义的类,这些类提供了许多基础功能,方便开发者快速构建应用程序。本文将深入探讨几个Java中常用的类,包括...

    Java类文件的基本结构_.docx

    总的来说,Java类文件的基本结构是一个精心设计的二进制格式,它使得Java程序能在任何支持JVM的平台上运行,同时也保证了代码的安全性。通过理解这个结构,开发者可以更好地优化代码,提高性能,同时也能更好地理解...

    顺序查找-Java实现

    在配置完成后,开发者只需修改Java类文件并运行程序,JavaRebel会自动识别并应用这些变更,无需重启服务器。通过这种方式,JavaRebel帮助开发者快速验证代码更改,特别是在类的方法调试过程中,可以大大节省时间,...

Global site tag (gtag.js) - Google Analytics