濮阳杆衣贸易有限公司

主頁 > 知識庫 > 面向?qū)ο缶幊?我的思想(5)

面向?qū)ο缶幊?我的思想(5)

熱門標簽:地圖標注人員兼職 電話機器人的特色和創(chuàng)新 開封便宜外呼系統(tǒng)報價 漯河辦理400電話 商丘百應電話機器人有沒有效果 騰訊地圖標注商戶改名注冊入駐 淮南騰訊地圖標注 黃石智能營銷電銷機器人效果 怎樣把地圖標注出來

2.3深入探討函數(shù):

2.3.1構(gòu)造函數(shù)、默認構(gòu)造函數(shù)、 缺省構(gòu)造函數(shù)
對于上面的實例,它已經(jīng)能完成絕大部分工作了,但它還是不完善的,還有許許多多的細節(jié)等到我們?nèi)ネ晟?!也許有的同學已經(jīng)注意到了,當我創(chuàng)建完“jingwei”這個對象時,這個對象的所有的屬性都是空的,也就是說:這個對象的姓名是未定的、年齡是未定的、性別是未定的、薪水是未定的、午餐也是未定的。而我們想把這些屬性都添加上去,就還要用對象調(diào)用相應的方法,去一個個修改!天啊,這簡直是太麻煩了!有沒有什么好方法能夠在我們創(chuàng)建對象的同時就完成了對屬性賦值的操作呢?哦不,應該說是對屬性的初始化呢?當然沒問題了,這就需要所謂的構(gòu)造函數(shù)! 構(gòu)造函數(shù)是類中最特殊的函數(shù),它與析構(gòu)函數(shù)的功能正好相反! 從特征上來說:1.它是編程語言中唯一沒有返回值類型的函數(shù)。 2.它的名稱與類的名稱必須要完全相同。 3.它必須被聲明為公共(public)的類型 4,可以對構(gòu)造函數(shù)進行重載。 5.它在創(chuàng)建對象是自動被調(diào)用。 從功能上來說:1.它是對類中的屬性進行初始化。 其實,對于上面的程序來說我們沒有自己定義構(gòu)造函數(shù)。但是,在這種情況下,系統(tǒng)會自動為我們定義一個“默認構(gòu)造函數(shù)”。他會把數(shù)值變量自動賦值為0,把布爾行變量賦值為false等等(但在C++中,默認構(gòu)造函數(shù)不初始化其成員)。如果程序員定義了構(gòu)造函數(shù),那么系統(tǒng)就不會再為你的程序添加一個缺默認造函數(shù)了。(在這里,我們提倡的是自己定義構(gòu)造函數(shù),而不是用系統(tǒng)的默認構(gòu)造函數(shù)) 還是看個實例吧!這樣比較清楚一些!
//employee.java

public class employee{

private String name; //員工姓名

private int age; //員工年齡

private char sex; //員工性別

private float emolument; //員工薪水

private boolean lunch; //員工午餐

//……等等

public employee(){ //這個就是“默認”構(gòu)造函數(shù)

name = “jw”; //設置員工姓名

age = 20; //設置員工年齡

sex = “M”; //設置員工性別

emolument = 100; //設置員工薪水

lunch = false; //設置員工午餐

}

public void heater(){ //這個方法是用來加工員工的午餐

lunch = true;

}

//……等等

}; 這樣,在我們創(chuàng)建“jingwei”這個對象的同時,它的所有的屬性也被初始化了!顯然,這大大的提高了工作效率,但是,它還是不符合要求。想想看,如果我們現(xiàn)在創(chuàng)建這個類型的第二個對象的時候會發(fā)生什么事情?告訴你,除了對象的“名”(這個名稱不在是對象屬性中的名稱,而是對象本身的名稱)不一樣外,其所有的“屬性值”都一樣!比如:現(xiàn)在我們創(chuàng)建第二個對象flashmagic,然而我會發(fā)現(xiàn)這個對象的所有的屬性和jingwei這個對象的所有的屬性完全相同。而我們只能在用對象的方法去改變著寫屬性了!很顯然,這種方法不大好!我們需要一種方法在創(chuàng)建對象的時候為對象的屬性賦予“我們想要的值”。 相信你也看到了,默認構(gòu)造函數(shù)就顯得無能為力了。我們需要的是帶參數(shù)的構(gòu)造函數(shù),在創(chuàng)建對象時,我們把參數(shù)傳給構(gòu)造函數(shù),這樣就能完成了上述的功能!口說無憑,還是來看個實例吧:
//employee.java

public class employee{

private String name; //員工姓名

private int age; //員工年齡

private char sex; //員工性別

private float emolument; //員工薪水

private boolean lunch; //員工午餐

//……等等

public employee(String n,int a,char s,float e,boolean l){ //看這個構(gòu)造函數(shù)

name = n; //設置員工姓名

age = a; //設置員工年齡

sex = s; //設置員工性別

emolument = e; //設置員工薪水

lunch =l; //設置員工午餐

}

public void heater(){ //這個方法是用來加工員工的午餐

lunch = true;

}

//……等等

}; 這樣一來,在創(chuàng)建對象的同時我們就可以給他賦予我們想要的值,很顯然,這可就方便多了。哦,對了!還沒有告訴你怎么創(chuàng)建呢!哈哈,往前翻幾頁你會看到這句話: jingwei = new employee();這是創(chuàng)建一個對象,而我們把它改成 jingwei = new employee("jingwei",20,'M',100,false);這樣一來,所有的工作都完成了,呵呵!(在創(chuàng)建對象的同時賦予了我們想要的“初值”)

標簽:拉薩 鄭州 大興安嶺 紅河 武威 岳陽 馬鞍山 亳州

巨人網(wǎng)絡通訊聲明:本文標題《面向?qū)ο缶幊?我的思想(5)》,本文關鍵詞  面向,對象,編程,我的,思想,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權(quán)與本站無關。
  • 相關文章
  • 下面列出與本文章《面向?qū)ο缶幊?我的思想(5)》相關的同類信息!
  • 本頁收集關于面向?qū)ο缶幊?我的思想(5)的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    武汉市| 布尔津县| 西华县| 华阴市| 文安县| 芦山县| 射阳县| 赤城县| 湘西| 泰来县| 右玉县| 长白| 临夏县| 城步| 泌阳县| 沙洋县| 潞西市| 泰兴市| 舞阳县| 定日县| 东宁县| 将乐县| 洪泽县| 婺源县| 册亨县| 象州县| 彰化县| 大荔县| 昭苏县| 贵南县| 怀安县| 巍山| 全州县| 宣城市| 昔阳县| 壤塘县| 吉安县| 滦南县| 丹阳市| 历史| 太仆寺旗|