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年
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29212814/viewspace-1129737/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java中,類與類,類中的程式碼執行順序Java
- java類內部程式碼執行順序Java
- Java子類和父類的初始化執行順序Java
- C#類中方法的執行順序C#
- Java之執行緒的優先順序Java執行緒
- pipeline的執行順序
- Java中如何保證執行緒順序執行Java執行緒
- Java for迴圈中語句執行的順序Java
- Sql執行順序SQL
- Spring Aop的執行順序Spring
- java繼承關係下執行順序Java繼承
- java類初始化的順序Java
- 建立派生類物件,建構函式的執行順序物件函式
- JavaScript執行順序分析JavaScript
- mySQL 執行語句執行順序MySql
- 類script標籤,非同步載入,順序執行非同步
- Java父子類載入順序Java
- mysql 語句的執行順序MySql
- 關於 Promise 的執行順序Promise
- SQL 語句的執行順序SQL
- 關於JAVA中順序IO的基本操作Java
- 總結類初始化時的程式碼執行順序
- 聊聊如何讓springboot攔截器的執行順序按我們想要的順序執行Spring Boot
- Select語句執行順序
- sql mysql 執行順序 (4)MySql
- SQL語句執行順序SQL
- js執行順序Event LoopJSOOP
- 路由的中介軟體執行順序路由
- [Java基礎]try-catch-finally 和 return 的執行順序Java
- 從Java到JVM到OS執行緒的優先順序JavaJVM執行緒
- Pytest 順序執行,依賴執行,引數化執行
- 在a標籤上的四個偽類執行順序是什麼?
- [20191215]seq控制執行順序.txt
- sql select語法執行順序SQL
- async await、Promise、setTimeout執行順序AIPromise
- js解惑-函式執行順序JS函式
- Jmeter的元件作用域和執行順序JMeter元件
- 令人費解的 async/await 執行順序AI
- SQL語句各子句的執行順序SQL