1. 程式人生 > >動手動腦(三)

動手動腦(三)

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 {
 3
static{ 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 }

運行截圖:

技術分享圖片

技術分享圖片

技術分享圖片

動手動腦(三)