動手動腦(三)
阿新 • • 發佈:2018-10-21
image leaf 構造 tst col wid 對象 obj super
原因:下面自己寫的構造方法帶有1個參數,但是在新建對象的時候卻沒有參數,所以無法進行初始化。
二,
1 package 統計對象個數; 2 3 public class InitializeBlockClass { 4 { 5 field=200; 6 } 7 public int field=100; 8 public InitializeBlockClass(int value) { 9 this.field=value; 10 } 11 public InitializeBlockClass() {12 } 13 public static void main(String[] args) { 14 InitializeBlockClass obj=new InitializeBlockClass(); 15 System.out.println(obj.field); 16 obj=new InitializeBlockClass(); 17 System.out.println(obj.field); 18 } 19 }
運行截圖:
三,
1 class Root 2 { 3static{ 4 System.out.println("Root的靜態初始化塊"); 5 } 6 { 7 System.out.println("Root的普通初始化塊"); 8 } 9 public Root() 10 { 11 System.out.println("Root的無參數的構造器"); 12 } 13 } 14 class Mid extends Root 15 { 16 static{ 17 System.out.println("Mid的靜態初始化塊");18 } 19 { 20 System.out.println("Mid的普通初始化塊"); 21 } 22 public Mid() 23 { 24 System.out.println("Mid的無參數的構造器"); 25 } 26 public Mid(String msg) 27 { 28 //通過this調用同一類中重載的構造器 29 this(); 30 System.out.println("Mid的帶參數構造器,其參數值:" + msg); 31 } 32 } 33 class Leaf extends Mid 34 { 35 static{ 36 System.out.println("Leaf的靜態初始化塊"); 37 } 38 { 39 System.out.println("Leaf的普通初始化塊"); 40 } 41 public Leaf() 42 { 43 //通過super調用父類中有一個字符串參數的構造器 44 super("Java初始化順序演示"); 45 System.out.println("執行Leaf的構造器"); 46 } 47 48 } 49 50 public class TestStaticInitializeBlock 51 { 52 public static void main(String[] args) 53 { 54 new Leaf(); 55 56 57 } 58 }
運行截圖:
動手動腦(三)