java类运行顺序,Java类的基本运行顺序

不看不知道,一看还真吓了一跳!Java类的基本运行顺序你真的知道吗?如果你有疑惑,那就看下面这篇文章吧。

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

我们以下面的类来说明一个基本的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 类的运行顺序: public class Demo{ private String name; private int age; public Demo(){ ...

[Java学习] Java类的基本运行顺序

我们以下面的类来说明一个基本的 Java 类的运行顺序: 1. public class Demo{ 2. private String name; 3. private int age; 4. 5. ...

《Java基础知识》Java类的基本运行顺序

我们以下面的类来说明一个基本的 Java 类的运行顺序: public class Demo { private String name; private int age; public Demo() ...

Java 类成员的初始化顺序

Java 类成员的初始化顺序 前言:开发中碰到一个Java文件中有很多的成员变量,包括静态和非静态的,还有很多的初始化方法,很好奇这些成员的初始化顺序,在这里作个研究.   1  无继承情况下的Jav ...

Java类的成员初始化顺序

Java类的成员初始化顺序 2017-06-01 代码: public class InitializeSequence { public static void main(String[] args ...

java类的成员初始化顺序和初始化块知识

java类的成员初始化顺序和初始化块知识 转自:http://blog.csdn.net/lgfeng218/article/details/7606735 属性.方法.构造方法和自由块都是类中的成员 ...

Java知多少(23)类的基本运行顺序

我们以下面的类来说明一个基本的 Java 类的运行顺序: public class Demo{ private String name; private int age; public Demo(){ ...

Java类的变量初始化顺序

大家在去参加面试的时候,经常会遇到这样的考题:给你两个类的代码,它们之间是继承的关系,每个类里只有构造器方法和一些变量,构造器里可能还有一段代码对变量值进行了某种运算,另外还有一些将变量值输出到控制台 ...

java类的加载顺序

related URL: http://www.cnblogs.com/guoyuqiangf8/archive/2012/10/31/2748909.html Parent Class: packa ...

随机推荐

救援linux

挂载分区 mount /dev/sdaX /mnt/ 挂载其他 mount --bind /dev/ /mnt/dev/ mount --bind /proc/ /mnt/proc/ mount -- ...

My97DatePicker 日期控制,开始时间不能>结束时间,结束时间不能<开始时间

日期:

java5 新特性

1.静态导入方法 package com.java.new_features_jdk5; /** * * 一般我们导入一个类都用 import com.....ClassName;而静态导入是这样:i ...

如何从二维数组中的多个key中获取指定key的值?

精华 LOVEME96 2016-10-21 10:40:19 浏览(1512) 回答(3) 赞(0) 新手求教:二维数组中一般会有多个key,如果我们要获得指定key的值,应该怎么做? 问题标签: ...

去除html标记和替换script标记

1: /// 2: /// 去除HTML标记 3: /// 4: ///

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值