zoukankan      html  css  js  c++  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年
  • 相关阅读:
    3星|《全球电商进化史》:全球电商亲历记
    2星|陈春花《共生》:逻辑差语文差缺证据。不敢相信知名商学院教授的书居然这么差
    3星|《第五次开始》:考古学家写的人类简史与未来简史
    4星|《财经》2018年第21期:互联网处方能解决药品质量和价格问题
    2.5星|托夫勒《权力的转移》;30年旧书,现在看理论有点牵强肤浅,预测有的准有的不准
    2018左其盛好书榜(截至9月15日)
    沟通交流技巧相关的11本书点评
    没睡好觉的上级更容易辱骂下属:3.5星|《哈佛商业评论》第9期
    3星|《利润模式》:20年旧书,30种模式
    在 C# 中通过 P/Invoke 调用Win32 DLL
  • 原文地址:https://www.cnblogs.com/adrianlamo/p/3392646.html
Copyright © 2011-2022 走看看