Java类的基本运行顺序
来源:互联网 发布:java大转盘抽奖算法 编辑:程序博客网 时间:2024/05/22 12:55
作为程序员,应该对自己写的程序具备充分的掌控能力,应该清楚程序的基本运行过程,否则糊里糊涂的,不利于对程序的理解和控制,也不利于技术上的发展。
我们以下面的类来说明一个基本的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程序的时候,首先是通过类装载器装载类class,然后通过虚拟机调用main入口方法,初始化类实例的时候,因为Test t = new Test();是赋值语句,首先执行等号右边的new Test(); 这样就会回调构造方法,在堆中创建类实例对象,但是构造方法内的方法体并没有马上执行,因为在执行方法体之前会先给创建好的实例对象生成属性,属性生成完后就会执行构造方法主体部分,对属性值进行初始化,之后再运行其余的部分。也就是说,在进行构造方法的执行之前,类实例就已经被创建好了,实例变量也分配好了。
运行的结果是: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类的基本运行顺序
- Java类的基本运行顺序
- java类的基本运行顺序
- 一个基本java类的运行顺序
- Java类的基本运行顺序
- Java类的基本运行顺序
- Java类的基本运行顺序
- java基本的运行顺序
- java入门教程-3.6Java类的基本运行顺序
- JAVA基本运行顺序
- Java 运行的顺序
- UI期的基础类 UIView 基本运行顺序
- Java Applet的运行顺序
- Java Applet的运行顺序
- mysql基本运行顺序
- java类运行以及static块的执行顺序
- Java程序运行的初始化顺序
- Linux网络编程必看书籍推荐
- Linux内核学习四库全书
- @深入注解,在Java中设计和使用自己的注解
- C++ 50条原则
- 代理(重複)機能性(コンピュータ処理上の安全機能)
- Java类的基本运行顺序
- VirtualBox安装64位Live版的Fedora16并启用GNOME
- ThinkPHP的URL路由
- ThinkPHP控制器URL模式
- windows7_QtCreator2.4.1_Qt4.8.0_Qwt6.0.1_msvc2010 编译环境搭建的总结
- poi导出到excel方法封装
- Windows Socket五种I/O模型——代码全攻略
- NiMesh2DRenderView
- WIN7下删除文件夹时提示“找不到该项目”的解决办法