




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、L/O/G/O第第7章章 Java 語言類的特性語言類的特性類的私有成員與公共成員類的私有成員與公共成員方法的重載方法的重載構(gòu)造方法構(gòu)造方法類的靜態(tài)成員類的靜態(tài)成員對象的應(yīng)用對象的應(yīng)用類的成員聲明前加上私有訪問控制符類的成員聲明前加上私有訪問控制符privateprivate,則成員只能被則成員只能被該類自身該類自身訪問和修改,而不能訪問和修改,而不能被其他類(包括該類的子類)訪問。被其他類(包括該類的子類)訪問。達(dá)到了對數(shù)據(jù)最高級別保護(hù)的目的。達(dá)到了對數(shù)據(jù)最高級別保護(hù)的目的。見教材例見教材例類的成員聲明前加上公共訪問控制符類的成員聲明前加上公共訪問控制符publicpublic,則表示該成員
2、可以被則表示該成員可以被其他類其他類所訪問。所訪問。造成安全性和數(shù)據(jù)封裝性的下降,所以一般造成安全性和數(shù)據(jù)封裝性的下降,所以一般減少該成員的使用。減少該成員的使用。見教材例見教材例7.27.2通過公共成員方法通過公共成員方法SetCylinderSetCylinder(),私有成(),私有成員員radiusradius和和heightheight才能得到修改。在公共成才能得到修改。在公共成員方法內(nèi)添加判斷代碼,可以杜絕錯誤數(shù)據(jù)員方法內(nèi)添加判斷代碼,可以杜絕錯誤數(shù)據(jù)的輸入。的輸入。若在類成員的前面不加任何訪問控制符,則若在類成員的前面不加任何訪問控制符,則該成員具有缺省的訪問控制特性該成員具有缺
3、省的訪問控制特性。缺省訪問控制權(quán),表示這個成員只能被同一缺省訪問控制權(quán),表示這個成員只能被同一個包(類庫)中的類所訪問和調(diào)用,如果一個包(類庫)中的類所訪問和調(diào)用,如果一個子類與父類位于不同的包中,子類也不能個子類與父類位于不同的包中,子類也不能訪問父類中的缺省訪問控制成員,也就是說訪問父類中的缺省訪問控制成員,也就是說其他包中的任何類都不能訪問缺省訪問控制其他包中的任何類都不能訪問缺省訪問控制成員。成員。同理,對于類來說,如果一個類沒有訪問控同理,對于類來說,如果一個類沒有訪問控制符,說明它具有缺省訪問控制特性制符,說明它具有缺省訪問控制特性 方法的重載是實(shí)現(xiàn)方法的重載是實(shí)現(xiàn)“多態(tài)多態(tài)”的方
4、法之一。的方法之一。 方法的重載是指方法帶有不同的參數(shù),方法的重載是指方法帶有不同的參數(shù),但但使用使用相同的名字相同的名字。 方法的參數(shù)不同則表示實(shí)現(xiàn)不同的功能,但功方法的參數(shù)不同則表示實(shí)現(xiàn)不同的功能,但功能相似。能相似。 所謂參數(shù)不同是指:參數(shù)個數(shù)不同、參數(shù)類型所謂參數(shù)不同是指:參數(shù)個數(shù)不同、參數(shù)類型不同、參數(shù)的順序不同。參數(shù)的名字不同不能不同、參數(shù)的順序不同。參數(shù)的名字不同不能說明是方法的重載。說明是方法的重載。 JavaJava中不允許參數(shù)個數(shù)或參數(shù)類型完全相同,中不允許參數(shù)個數(shù)或參數(shù)類型完全相同,而只有返回值類型不同的重載。而只有返回值類型不同的重載。 見教材例見教材例7.37.36i
5、nt add(int x, int y);int add(int x, int y, int z);float add(float f1, float f2);float add(float f1, int y);float add(int y, float f1);float add(int x, int y);int add(int u, int v);構(gòu)造方法構(gòu)造方法(constructor)(constructor)是一種特殊的方法,它是一種特殊的方法,它是在對象被創(chuàng)建時是在對象被創(chuàng)建時初始化對象的成員初始化對象的成員的方法。的方法。構(gòu)造方法的方法名與類名相同。構(gòu)造方法的方法名與類名相
6、同。構(gòu)造方法構(gòu)造方法沒有返回值沒有返回值,也,也不能有不能有voidvoid。構(gòu)造方法的主要作用是對類對象的初始化工作。構(gòu)造方法的主要作用是對類對象的初始化工作。構(gòu)造方法一般不能由編程人員顯式地直接調(diào)用,構(gòu)造方法一般不能由編程人員顯式地直接調(diào)用,而是用而是用newnew來調(diào)用。來調(diào)用。在創(chuàng)建一個類的對象的同時,系統(tǒng)會在創(chuàng)建一個類的對象的同時,系統(tǒng)會自動調(diào)用自動調(diào)用該該類的構(gòu)造方法為新的對象初始化。類的構(gòu)造方法為新的對象初始化??蓭?shù),還可以完成賦值之外的其他復(fù)雜操作??蓭?shù),還可以完成賦值之外的其他復(fù)雜操作。7見教材例見教材例7.4不含返回值的概念不含返回值的概念 不同于不同于void,因
7、為,因?yàn)闃?gòu)造方法的返回值構(gòu)造方法的返回值就是該類本身。就是該類本身。如果省略構(gòu)造方法,如果省略構(gòu)造方法,JavaJava編譯器會自動為該類編譯器會自動為該類生成一個默認(rèn)的構(gòu)造方法,程序在創(chuàng)建對象時生成一個默認(rèn)的構(gòu)造方法,程序在創(chuàng)建對象時會自動調(diào)用默認(rèn)的構(gòu)造方法。會自動調(diào)用默認(rèn)的構(gòu)造方法。默認(rèn)的構(gòu)造方法沒有參數(shù),在其方法體中也沒默認(rèn)的構(gòu)造方法沒有參數(shù),在其方法體中也沒有任何代碼,即什么也不做有任何代碼,即什么也不做。若若classclass前面有前面有publicpublic修飾符,則默認(rèn)的構(gòu)造修飾符,則默認(rèn)的構(gòu)造方法前面也是方法前面也是publicpublic。一旦用戶為某類定義了構(gòu)造方法,系
8、統(tǒng)就不再一旦用戶為某類定義了構(gòu)造方法,系統(tǒng)就不再提供默認(rèn)的構(gòu)造方法,這是提供默認(rèn)的構(gòu)造方法,這是JavaJava的覆蓋所致。的覆蓋所致。構(gòu)造方法的重載,讓用戶用不同的參數(shù)來構(gòu)造構(gòu)造方法的重載,讓用戶用不同的參數(shù)來構(gòu)造初始化初始化對象。對象。見教材例見教材例縮短程序代碼,減少開發(fā)程序時間??s短程序代碼,減少開發(fā)程序時間。 從某一構(gòu)造方法內(nèi)調(diào)用另一構(gòu)造方法,從某一構(gòu)造方法內(nèi)調(diào)用另一構(gòu)造方法,必須必須通通過關(guān)鍵字過關(guān)鍵字thisthis來調(diào)用的來調(diào)用的,否則編譯出錯。,否則編譯出錯。thisthis關(guān)鍵字必須寫在構(gòu)造方法內(nèi)的關(guān)鍵字必須寫在構(gòu)造方法內(nèi)的第一行第一行位置。位置。見教材例見教材例構(gòu)造方法一
9、般都是構(gòu)造方法一般都是publicpublic,因?yàn)樗鼈冊趧?chuàng)建對,因?yàn)樗鼈冊趧?chuàng)建對象時,是在類的外部被系統(tǒng)自動調(diào)用的。象時,是在類的外部被系統(tǒng)自動調(diào)用的。構(gòu)造函數(shù)若被聲明為構(gòu)造函數(shù)若被聲明為privateprivate,則無法在構(gòu)造,則無法在構(gòu)造方法所在的類以外的地方被調(diào)用,但在該類的方法所在的類以外的地方被調(diào)用,但在該類的內(nèi)部還是可以被調(diào)用。內(nèi)部還是可以被調(diào)用。見教材例見教材例在類定義中如果成員變量或成員方法沒有用在類定義中如果成員變量或成員方法沒有用staticstatic來修飾,則該成員就是來修飾,則該成員就是實(shí)例成員實(shí)例成員。被。被staticstatic修飾的成員稱為修飾的成員稱為類
10、成員類成員。如在例如在例7.57.5的主方法的主方法main()main()中分別用中分別用newnew運(yùn)算符運(yùn)算符產(chǎn)生兩個新的對象產(chǎn)生兩個新的對象volu1volu1和和volu2volu2。這兩個對象。這兩個對象都各自擁有自己保存自己成員的存儲空間,而都各自擁有自己保存自己成員的存儲空間,而不與其他對象共享。不與其他對象共享。(見教材圖(見教材圖7.17.1)若修改了若修改了volu1volu1的某個成員變量的值,而的某個成員變量的值,而volu2volu2的成員變量不受影響。這樣的成員變量稱為實(shí)的成員變量不受影響。這樣的成員變量稱為實(shí)例變量。例變量。用用staticstatic修飾的成員
11、變量稱為修飾的成員變量稱為“靜態(tài)變量靜態(tài)變量”,靜態(tài),靜態(tài)變量也稱為類變量。靜態(tài)變量是隸屬于類的變量,變量也稱為類變量。靜態(tài)變量是隸屬于類的變量,而不是屬于任何一個類的具體對象。而不是屬于任何一個類的具體對象。對于某類的任何一個具體對象而言,靜態(tài)變量是一對于某類的任何一個具體對象而言,靜態(tài)變量是一個公共的存儲單元。個公共的存儲單元。對于某類的任一對象訪問靜態(tài)變量訪問它時,取到對于某類的任一對象訪問靜態(tài)變量訪問它時,取到的都是相同數(shù)值;同樣,任一對象修改它也是在同的都是相同數(shù)值;同樣,任一對象修改它也是在同一內(nèi)存單元做操作。一內(nèi)存單元做操作。 使用使用格式有如下兩種:格式有如下兩種: 13類名類
12、名. .靜態(tài)變量名靜態(tài)變量名; /; /建議采用建議采用 對象名對象名. .靜態(tài)變量名靜態(tài)變量名; ; 見教材例見教材例用用staticstatic修飾的方法是屬于類的靜態(tài)方法修飾的方法是屬于類的靜態(tài)方法(類方類方法法)。非非staticstatic的方法是屬于某個對象的方法,在該對象的方法是屬于某個對象的方法,在該對象創(chuàng)建時,對象的方法在內(nèi)存中擁有屬于自己專用的創(chuàng)建時,對象的方法在內(nèi)存中擁有屬于自己專用的代碼段;而代碼段;而staticstatic的方法是屬于整個類的,它在內(nèi)的方法是屬于整個類的,它在內(nèi)存中的代碼段將被所有對象所共用。存中的代碼段將被所有對象所共用。staticstatic方
13、法只能訪問方法只能訪問staticstatic成員變量或成員變量或staticstatic方方法。法。在靜態(tài)方法中不能使用在靜態(tài)方法中不能使用thisthis或或supersuper。靜態(tài)方法靜態(tài)方法訪問格式:訪問格式:14類名類名. .靜態(tài)靜態(tài)方法方法名名()(); /; /建議采用建議采用 對象名對象名. .靜態(tài)靜態(tài)方法方法名名()(); ; 見教材例見教材例mainmain方法的訪問權(quán)限為何必須為方法的訪問權(quán)限為何必須為public,staticpublic,static? 15由于由于JVMJVM需要在類外調(diào)用需要在類外調(diào)用mainmain方法,而且方法,而且JVMJVM運(yùn)運(yùn)行時相同在
14、開始執(zhí)行一個程序前,并沒有創(chuàng)建行時相同在開始執(zhí)行一個程序前,并沒有創(chuàng)建mainmain方法所在的類的一個實(shí)例對象,所以它只方法所在的類的一個實(shí)例對象,所以它只能通過類名來調(diào)用能通過類名來調(diào)用mainmain方法作為程序的入口,方法作為程序的入口,因而該方法必須是因而該方法必須是staticstatic。是由關(guān)鍵字是由關(guān)鍵字staticstatic修飾的修飾的 括起來的語句組,括起來的語句組,它的作用與類的構(gòu)造方法有些相似,都是用來它的作用與類的構(gòu)造方法有些相似,都是用來初始化工作的。初始化工作的。靜態(tài)初始化器與構(gòu)造方法區(qū)別:靜態(tài)初始化器與構(gòu)造方法區(qū)別:構(gòu)造方法是對每個新創(chuàng)建的對象初始化,而構(gòu)造
15、方法是對每個新創(chuàng)建的對象初始化,而靜態(tài)初始化器對整個類自身進(jìn)行初始化,包靜態(tài)初始化器對整個類自身進(jìn)行初始化,包括括staticstatic成員變量賦初值。成員變量賦初值。構(gòu)造方法是在用構(gòu)造方法是在用newnew創(chuàng)建新對象時由系統(tǒng)自動創(chuàng)建新對象時由系統(tǒng)自動執(zhí)行,而靜態(tài)初始化器一般不能由程序來調(diào)執(zhí)行,而靜態(tài)初始化器一般不能由程序來調(diào)用,它是在所屬的類被加載入內(nèi)存時由系統(tǒng)用,它是在所屬的類被加載入內(nèi)存時由系統(tǒng)調(diào)用執(zhí)行。調(diào)用執(zhí)行。靜態(tài)初始化器與構(gòu)造方法區(qū)別靜態(tài)初始化器與構(gòu)造方法區(qū)別:(續(xù)):(續(xù))用用newnew創(chuàng)建多少個新對象,構(gòu)造方法就調(diào)用多創(chuàng)建多少個新對象,構(gòu)造方法就調(diào)用多少次,但靜態(tài)初始化器則
16、在類被加載入內(nèi)存少次,但靜態(tài)初始化器則在類被加載入內(nèi)存時時只執(zhí)行一次只執(zhí)行一次。靜態(tài)初始化器靜態(tài)初始化器不是方法不是方法,它沒有方法名、返,它沒有方法名、返回值和參數(shù)?;刂岛蛥?shù)。如果有多個靜態(tài)初始化器,則它們在類的初始如果有多個靜態(tài)初始化器,則它們在類的初始化時會依次執(zhí)行?;瘯r會依次執(zhí)行。對象是一種對象是一種引用型變量引用型變量,它實(shí)際保存的是對象,它實(shí)際保存的是對象在內(nèi)存中的地址。就其功能而言,它是在內(nèi)存中的地址。就其功能而言,它是“指向指向?qū)ο蟮淖兞繉ο蟮淖兞俊?。在使用對象時,在使用對象時,若若沒有使用沒有使用newnew運(yùn)算符創(chuàng)建新對運(yùn)算符創(chuàng)建新對象,仍然可以對其進(jìn)行賦值。象,仍然可以
17、對其進(jìn)行賦值。對象被賦值后(如對象被賦值后(如volu2volu2volu1volu1),它們所共),它們所共同指向的同一對象的內(nèi)容相等還是兩個引用變同指向的同一對象的內(nèi)容相等還是兩個引用變量中所保存的地址相等呢?量中所保存的地址相等呢?引用變量也可作為方法的參數(shù),采用傳址調(diào)用。引用變量也可作為方法的參數(shù),采用傳址調(diào)用。18首地址相等。首地址相等。任一引用變量對對任一引用變量對對象做修改,將影響象做修改,將影響另一另一引用變量另一另一引用變量所指向?qū)ο蟮膬?nèi)容所指向?qū)ο蟮膬?nèi)容見教材例見教材例7.10、若要方法返回類類型的變量,需要在方法聲明若要方法返回類類型的變量,需要在方法聲明的前面加上要返回的類即可。的前面加上要返
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030泳帽行業(yè)市場現(xiàn)狀供需分析及重點(diǎn)企業(yè)投資評估規(guī)劃分析研究報(bào)告
- 2025-2030汽車鎖市場發(fā)展現(xiàn)狀調(diào)查及供需格局分析預(yù)測研究報(bào)告
- 2025-2030椰油酰胺丙基二甲胺氧化物行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報(bào)告
- 2025-2030木桿鉛筆產(chǎn)業(yè)市場現(xiàn)狀供需分析及重點(diǎn)企業(yè)投資評估規(guī)劃分析研究報(bào)告
- 木材在綠色建筑中的運(yùn)用考核試卷
- 濕地保護(hù)與生態(tài)恢復(fù)考核試卷
- 漁業(yè)與經(jīng)濟(jì)發(fā)展的關(guān)系考核試卷
- 洗滌劑在農(nóng)業(yè)機(jī)械清洗中的選用策略考核試卷
- 塑料成型模具的虛擬現(xiàn)實(shí)設(shè)計(jì)考核試卷
- 2025年江西建筑安全員考試題庫
- 《中央八項(xiàng)規(guī)定精神學(xué)習(xí)教育》專項(xiàng)講座
- 2025年交管12123學(xué)法減分考試題庫及答案
- 合成氣生產(chǎn)甲醇工藝流程圖
- 03J111-1輕鋼龍骨內(nèi)隔墻
- KIP3000故障代碼
- 項(xiàng)目三 電子生日蠟燭的制作-單元3 D觸發(fā)器ppt課件
- 納入仕樣書xls
- 土地整治項(xiàng)目監(jiān)理工作總結(jié)報(bào)告
- 商業(yè)銀行票據(jù)業(yè)務(wù)知識考試試題
- 邊坡排危土石方的施工組織設(shè)計(jì)
- 北師大小學(xué)一年級下冊數(shù)學(xué)教學(xué)工作計(jì)劃
評論
0/150
提交評論