摘要:一構造器構造器的作用是構造并初始化實例對象。在的每個類中,至少要有一個構造器,沒有定義的話,編譯器將自動插入缺省的構造器。一般把構造器設置為訪問權限,設置為是為了阻止其他類創建該類的實例。
一. 構造器
構造器的作用是構造并初始化實例對象。當創建一個對象時,系統為這個對象的屬性進行初始化。
二. 語法class 類名 { 變量聲明; 類的名稱(參數列表) { 方法體 } }
構造器和類要有相同的名字,同時避免在構造器中定義與實例域重名的局部變量。例如
class student { private String name; private int studentID; //構造器 public student(String n,int m){ name=n; studentID=m; /*定義與實例域重名的局部變量 *這種錯誤很難被發現 String name=n; int studentID=m; */ } }三. 特點
構造器和類具有相同的名字
一個類可以有多個構造器
構造器可以有0、1或多個參數
構造器沒有返回值和返回類型
構造器不能被顯示調用,總是與new運算符儀器被調用,在創建一個類的新隊形的同時,系統會自動調用該類的構造器為新對象初始化。
在java的每個類中,至少要有一個構造器,沒有定義的話,編譯器將自動插入缺省的構造器。
這種默認初始化被所有數值類型設為0,布爾值為false,所有引用類型的屬性設置為null
如果類中提供了至少一個構造器,但是沒有提供無參數的構造器,構造對象沒有提供參數就會被視為不合法。
class student { private String name; private int studentID; //構造器 public student(String name,int studentID){ this.name=name; this.studentID=studentID; } } student=new student(); //產生錯誤
解決方法:可以為java類保留無參數的構造器,為一個類編寫了有參數的構造器,同時建議為該類編寫一個無參數的構造器。一般把構造器設置為public訪問權限,設置為private是為了阻止其他類創建該類的實例。
四.構造器重載和調用 1.方法簽名一個方法的簽名包括方法名、參數類型和個數,但不包括返回值。
類的定義中存在兩個或兩個以上的同名成員方法,為了使編譯器能區分同名的成員方法,使同名方法的參數個數或參數的數據類型不同,從而使編譯器能夠挑選具體執行某個方法。
class student { private String name; private String major; private String school; private int studentID; //構造器1 public student(String name,int studentID){ this.name=name; this.studentID=studentID; } //構造器2 public student(String school){ this.school=school; } //構造器3 public student(String major,int studentID){ this.major=name; this.studentID=studentID; } }2.調用另一個構造器
class student { private String name; private String major; private String school; private int studentID; //構造器1 public student(String name,int studentID){ this("大山高中") //調用另一個構造器 this.name=name; this.studentID=studentID; } //構造器2 public student(String school){ this.school=school; }3.顯式調用父類構造器
當我們想調用超類的的某個方法,但是當前類也有相同的方法,這時可以使用super關鍵字(只是一個指示編譯器調用超類方法的特殊關鍵字)。
class A{ public A(){ System.out.print("A"); } } class B extends A{ public B(){ super();//調用父類構造方法,打印A System.out.print("B"); } }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/65051.html
摘要:多個構造器的名字相同,但形參列表不同。但一旦使用關鍵字來調用構造器,將會導致系統重新創建一個對象。此時可以通過關鍵字調用相應的構造器。 構造器是創建對象的重要途徑(即使使用工廠模式、反射等方式創建對象,其實質依然是依賴于構造器),因此,Java類必須包含一個或一個以上的構造器。 使用構造器執行初始化 構造器最大的用處就是在創建對象時執行初始化。當創建一個對象時,系統為這個對象的實例變量...
摘要:上一篇小樂介紹了新特性函數式接口,大家可以點擊回顧。中引入方法引用新特性用于簡化應用對象方法的調用,方法引用是用來直接訪問類或者實例的已經存在的方法或者構造方法。方法引用是一種更簡潔易懂的表達式。 上一篇小樂介紹了《Java8新特性-函數式接口》,大家可以點擊回顧。這篇文章將接著介紹Java8新特性之方法引用。 Java8 中引入方法引用新特性,用于簡化應用對象方法的調用,?方法引用是...
摘要:注本文首發于公眾號,可長按或掃描下面的小心心來訂閱關于構造器與初始化無參構造器默認構造器自己未寫編譯器幫忙自動創建的若自行定義了構造器無論參數有否,編譯器便停止默認創建動作類里的對象引用默認初始化為,基本類型初始化為構造器也是類的靜態方法四 showImg(https://segmentfault.com/img/remote/1460000015723687); 注: 本文首發于 ...
摘要:的動態性反射機制動態編譯動態執行代碼動態字節碼操作動態語言程序運行時可以改變程序得結構或變量類型典型語言等如下代碼不是動態語言但有一定的動態性我們可以利用反射機制字節碼操作獲得類似動態語言的特性的動態性讓編程的時候更加靈活反射機制反射機制指 1.Java的動態性 反射機制 動態編譯 動態執行JavaScript代碼 動態字節碼操作 2.動態語言 程序運行時,可以改變程序得結構或變量...
閱讀 1790·2021-11-24 10:21
閱讀 1202·2021-09-22 15:25
閱讀 3165·2019-08-30 15:55
閱讀 704·2019-08-30 15:54
閱讀 3456·2019-08-30 14:20
閱讀 1653·2019-08-30 14:06
閱讀 635·2019-08-30 13:11
閱讀 3135·2019-08-29 16:43