什么是構(gòu)造器
1. 什么是初始化
對象在剛創(chuàng)建時進(jìn)行的工作就稱為初始化, 初始化的主要工作是針對對象的屬性的.
2.構(gòu)造器概念
當(dāng)對象創(chuàng)建時, 希望對象的屬性值被正確賦值, 此時就需要用到了構(gòu)造器, 構(gòu)造器也稱為構(gòu)造方法, 本質(zhì)上構(gòu)造器就是一個方法, 是一個特殊的方法.
3. 如何定義構(gòu)造器
構(gòu)造器(構(gòu)造方法)的定義
修飾符 類名(參數(shù)類型1 形參1, 參數(shù)類型2 形參2….) {
代碼塊;
}
public class Teacher {private String name;
private int age = 30;
private String gender = "女";
public Teacher() { // 無參構(gòu)造器
name = "張三";
age = 35;
gender = "男";
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getGender() {
return gender;
}
public String say() {
return "姓名:" + this.name + ",年齡:" + this.age + ",性別:" + this.gender;
}
}
注意 : 類中如果沒有提供任何的構(gòu)造器, 編譯器也會自動添加一個缺省的構(gòu)造器
缺省的構(gòu)造器就是 修飾符和類一致, 無參, 并且方法體中沒有代碼.
構(gòu)造器的特點
特點1:
構(gòu)造器沒有返回值, 也不可以聲明void
特點2:
構(gòu)造器名稱必須和類名一致
特點3:
構(gòu)造器不可以被final, static, abstract等修飾
特點4:
構(gòu)造器不像普通方法可以隨意調(diào)用, 只能在創(chuàng)建對象時調(diào)用一次
構(gòu)造器調(diào)用
1.如何調(diào)用構(gòu)造器
使用new關(guān)鍵字在創(chuàng)建對象時就會自動調(diào)用了構(gòu)造器
public class TeacherTest {public static void main(String[] args) {
Teacher t = new Teacher(); // 調(diào)用無參構(gòu)造方法
System.out.println(t.say()); // 輸出”姓名:張三,年齡:35,性別:男”
}
}
構(gòu)造器重載
1.什么是構(gòu)造器重載
當(dāng)一個類中有多個構(gòu)造器, 并且參數(shù)不同就形成構(gòu)造器重載
構(gòu)造器重載的目的是可以使用多種方式創(chuàng)建不同的對象
public class Teacher {private String name;
private int age = 30;
private String gender = "女";
public Teacher() { // 無參構(gòu)造器
name = "佟剛";
age = 35;
gender = "女";
}
// 有參構(gòu)造器
public Teacher(String n, int a) {
name = n;
age = a;
gender = "女";
}
// 有參構(gòu)造器
public Teacher(String n, int a, String g) {
name = n;
age = a;
gender = g;
}
public String say() {
return "姓名:" + name + ",年齡:" + age + ",性別:" + gender;
}
}
public class TeacherTest {public static void main(String[] args) {
Teacher t1 = new Teacher(); // 調(diào)用無參構(gòu)造方法
System.out.println(t1.say());
Teacher t2 = new Teacher(“李四”, 40); // 調(diào)用有參構(gòu)造方法
System.out.println(t2.say());
Teacher t3 = new Teacher(“王五”, 50, “男”); // 調(diào)用有參構(gòu)造方法
System.out.println(t3.say());
}
}
2. this()調(diào)用
在無參構(gòu)造器中, 給對象的3個屬性分別完成賦值, 而這個操作可以通過調(diào)用另外一個構(gòu)造器來完成,調(diào)用的語法this(實參列表);
注意 :
this(…) 調(diào)用必須放在構(gòu)造器的第一行!
this(…) 調(diào)用時,必須保證有一個構(gòu)造器是沒有this(…)的, 否則會形成構(gòu)造器遞歸調(diào)用.
想要了解跟多關(guān)于java培訓(xùn)課程內(nèi)容歡迎關(guān)注達(dá)內(nèi)java培訓(xùn),達(dá)內(nèi)除了這些技術(shù)文章外還有免費的高質(zhì)量大
本文鏈接:
本文章“JavaSE構(gòu)造器”已幫助 143 人
免責(zé)聲明:本信息由用戶發(fā)布,本站不承擔(dān)本信息引起的任何交易及知識產(chǎn)權(quán)侵權(quán)的法律責(zé)任!
本文由賦能網(wǎng) 整理發(fā)布。了解更多培訓(xùn)機構(gòu)》培訓(xùn)課程》學(xué)習(xí)資訊》課程優(yōu)惠》課程開班》學(xué)校地址等機構(gòu)信息,可以留下您的聯(lián)系方式,讓課程老師跟你詳細(xì)解答:
咨詢熱線:4008-569-579