java類中的程式碼執行順序
阿新 • • 發佈:2018-11-23
package io; public class Employee { private static int nextId = 1; //靜態變數可以使用 類名.變數名 來呼叫 private String name; public Employee (String name) { //this代表當前類,this可以呼叫當前類內部的屬性和方法,this關鍵字常用在構造器和get/set方法中 this.name = name; System.out.println("構造器方法!"); } //匿名程式碼塊(先於構造器執行,但在靜態程式碼塊之後執行) { System.out.println("匿名程式碼塊!"); } //靜態程式碼塊(最先執行),JVM載入類時會自動執行靜態程式碼塊 static{ System.out.println("靜態程式碼塊!"); } public String getName() { int i = Employee.getNextId(); //非靜態方法--可以呼叫靜態方法和屬性 return name+i; } public static int getNextId() { //靜態方法可以使用 類名.方法名 來呼叫 //靜態方法,必須實現方法體--- 不能呼叫非靜態方法和非靜態屬性,也不能使用this,super關鍵字 return Employee.nextId; //直接呼叫靜態成員變數,不能呼叫非靜態成員變數,例:name } public static void main(String[] args) { Employee e = new Employee("Harry"); System.out.println(e.getName()); //通過建立物件引用非靜態方法 System.out.println(Employee.getNextId()); //靜態方法直接呼叫 //總結:java類中的程式碼執行順序 //靜態程式碼塊-->匿名程式碼塊-->構造器方法-->main方法 } }
執行結果:
靜態程式碼塊!
匿名程式碼塊!
構造器方法!
Harry1
1
------------------------------------------------------------------------------------------
總結:java類中的程式碼執行順序
靜態程式碼塊-->匿名程式碼塊-->構造器方法-->main方法