• Java类的基本运行顺序


    发布于:2008年11月12日 20:00

    原文链接:http://column.ibeifeng.com/chenchen/20081112214.shtml

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

    我们以下面的类来说明一个基本的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年

  • 相关阅读:
    数组——遍历
    数组常用方法——汇总
    箭头函数
    overflow:auto产生的滚动条在安卓系统下能平滑滚动,而在ios下滚动不平滑
    浅谈过载保护
    tornado中使用torndb,连接数过高的问题
    如何开启并查看博客园MetaWeblog接口的xml-RPC协议访问地址
    aardio陷阱(转)
    aardio获取公网IP地址代码
    sql常用函数学习笔记整理
  • 原文地址:https://www.cnblogs.com/m-xy/p/3225061.html
Copyright © 2020-2023  润新知