代码的运行顺序总结

来源:互联网 发布:node服务器 编辑:程序博客网 时间:2024/06/05 05:43

今天的java学习中,我总结了一些简单的java程序运行时代码调用步骤的问题,如下:

(一)基本的Java类的运行顺序:

public class Test {    private String name = "Java私塾";    private int age = 2;    public Test(){        age = 1000;//期望能到1000年,呵呵    }    public static void main(String[] args) {        Test t = new Test();        System.out.println(t.name+"的年龄是"+t.age+"年");    }}

运行的基本顺序是:
(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年

(二)初始化子类必先初始化父类

public class Test extends Parent{private String name = "Java私塾";private int age = 2;public Test(){age = 1000;//期望能到1000年,呵呵}public static void main(String[] args) {Test t = new Test();System.out.println(t.name+"的年龄是"+t.age+"年");}}class Parent{private int num = 1;public Parent(){System.out.println("现在初始化父类");}public void test(){System.out.println("这是父类的test方法");}}


上述类的基本运行顺序是:
(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年

以上是今天学习中遇到问题上网查找资料和自己的总结。明天继续。。。
0 0
原创粉丝点击