版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、類與對(duì)象面向?qū)ο蟮姆庋b性包訪問(wèn)修飾符類的封裝類的靜態(tài)成員變量的作用域關(guān)鍵字this主要主要內(nèi)容內(nèi)容11.1 11.1 包包Java語(yǔ)言使用包(package)來(lái)管理應(yīng)用程序中的類,Java語(yǔ)言的每一個(gè)類都位于一個(gè)特定包中。沒(méi)有指定類在哪個(gè)包中,這樣定義的類位于默認(rèn)包中,Java語(yǔ)言雖然允許但不推薦把類置于默認(rèn)包中。使用包來(lái)管理類有四個(gè)優(yōu)點(diǎn):(1)把功能相近的類置于同一個(gè)包中便于查找類;(2)當(dāng)編寫(xiě)的類被其他應(yīng)用程序重用時(shí),將類置于包中可以減少或避免命名沖突的情況出現(xiàn);(3)使用包可以更加靈活的處理類及其成員的可訪問(wèn)性,更好地對(duì)類進(jìn)行保護(hù);(4)使用具有層次關(guān)系的包管理類,更加便于應(yīng)用程序的發(fā)布
2、。11.1 11.1 包包Java語(yǔ)言的包是具有層次關(guān)系的,一個(gè)包中還可以包含子包。為包進(jìn)行命名時(shí),使用“.”分隔父包與其子包。例如包名java.lang說(shuō)明頂層包為java,其中包含了lang子包;而類名java.lang.Math說(shuō)明Math類位于包java.lang中。通常包名全部使用小寫(xiě)字母命名。 package語(yǔ)句的作用是把該源程序文件中定義的所有類置于同一個(gè)包中。下面通過(guò)一個(gè)例子說(shuō)明如何把類置于指定包中。把類置于包中需要在源程序中使用package語(yǔ)句,該語(yǔ)句必須位于一個(gè)源程序文件中的第一條語(yǔ)句,其前面只能有注釋。package語(yǔ)句的語(yǔ)法格式如下: package 包名;11.1
3、11.1 包包程序源碼:/文件名:TestPackage.javapackage ch11.pkg01;/把源程序文件中的類置于ch11.pkg01包中 例11-1: 把類置于包中的例子。 public class TestPackage void printMessage() System.out.println(Welcome to java.); 11.1 11.1 包包使用包管理應(yīng)用程序的類時(shí),如果兩個(gè)類不在同一包中,有兩種方式:第一種方式是使用類的命名。 如: javax.Swing.JOptionPane第二種方式是使用import語(yǔ)句導(dǎo)入類。import語(yǔ)句有兩種使用形式,例如:
4、 import javax.swing.*; /導(dǎo)入javax.swing包中的所有類 import javax.swing.JOptionPane; /導(dǎo)入JOptionPane一個(gè)類上面兩種import方式對(duì)程序的編譯和運(yùn)行效率的影響是相同的。11.2 11.2 訪問(wèn)修飾符訪問(wèn)修飾符訪問(wèn)修飾符用來(lái)限制應(yīng)用程序中類和類成員的使用范圍,Java語(yǔ)言提供了public、protected、private三個(gè)訪問(wèn)修飾符實(shí)現(xiàn)四種訪問(wèn)范圍。下表中列出了Java語(yǔ)言的四種訪問(wèn)范圍。11.2 11.2 訪問(wèn)修飾符訪問(wèn)修飾符 訪問(wèn)修飾符同一類范圍內(nèi)同一包范圍內(nèi)子類范圍內(nèi)其他范圍內(nèi)publicprotecte
5、d無(wú)private11.2 11.2 訪問(wèn)修飾符訪問(wèn)修飾符11.3 11.3 類的封裝類的封裝類的封裝是指合理使用訪問(wèn)修飾符,使類及其成員具有合理的訪問(wèn)范圍。將指數(shù)據(jù)域用private修飾封裝,不能直接為其他類訪問(wèn),同時(shí)為每個(gè)數(shù)據(jù)域提供訪問(wèn)器方法和修改器方法。類和類中需要給其它類調(diào)用的方法成員用public修飾。11.3 11.3 類的封裝類的封裝訪問(wèn)器方法:public 數(shù)據(jù)類型 get屬性名()修改器方法:public void set屬性名(數(shù)據(jù)類型 形參)11.3 11.3 類的封裝類的封裝特別地,數(shù)據(jù)類型為boolean時(shí),訪問(wèn)器方法定義為如下形式: public 數(shù)據(jù)類型 is屬性
6、名()方法定義中數(shù)據(jù)類型通常為所封裝的數(shù)據(jù)域的類型,訪問(wèn)器方法的代碼直接返回?cái)?shù)據(jù)域的值,修改器方法的代碼直接把形參賦值給數(shù)據(jù)域。Retangle2.java演示11.4 11.4 類的靜態(tài)成員類的靜態(tài)成員Java語(yǔ)言的類包括靜態(tài)成員和實(shí)例成員兩種類型的成員。實(shí)例成員的概念前面已經(jīng)講述。使用static修飾的成員稱為靜態(tài)成員,包括靜態(tài)數(shù)據(jù)域(也稱類變量)、靜態(tài)方法(也稱類方法)。靜態(tài)成員屬于類本身,而不屬于類的任何一個(gè)對(duì)象。11.4 11.4 類的靜態(tài)成員類的靜態(tài)成員 Retangle3.java演示 為Rectangle2類增加表示創(chuàng)建對(duì)象個(gè)數(shù)的靜態(tài)數(shù)據(jù)域,及獲取其值的靜態(tài)訪問(wèn)器方法。新定義的
7、矩形類命名為Rectangle3。見(jiàn) 例11-2:實(shí)例數(shù)據(jù)域與靜態(tài)數(shù)據(jù)域的區(qū)別是:實(shí)例數(shù)據(jù)域?qū)儆谔囟ǖ膶?duì)象,一個(gè)類 可以使用new運(yùn)算符創(chuàng)建很多對(duì)象,每個(gè) 對(duì)象獨(dú)立擁有自己的實(shí)例數(shù)據(jù)域。本例無(wú) 論創(chuàng)建多少個(gè)矩形對(duì)象,每個(gè)對(duì)象都獨(dú)立 擁有自己的實(shí)例數(shù)據(jù)域width和height。實(shí)例數(shù)據(jù)域與靜態(tài)數(shù)據(jù)域的區(qū)別是:靜態(tài)數(shù)據(jù)域是類擁有的,所有創(chuàng)建的矩形對(duì)象以共享方式訪問(wèn)。本中的靜態(tài)數(shù) 據(jù)域numberOfRectangles是所有創(chuàng)建 的矩形對(duì)象共享的。在訪問(wèn)修飾符允許的情況下,訪問(wèn)靜態(tài)數(shù)據(jù)域的方式:對(duì)象引用變量.靜態(tài)數(shù)據(jù)域 /不推薦使用該方式類名.靜態(tài)數(shù)據(jù)域 /推薦使用該方式 實(shí)例方法與靜態(tài)方法的區(qū)
8、別也在于靜態(tài)方法是屬于類的,可以在不創(chuàng)建對(duì)象的情況下通過(guò)類名調(diào)用。在靜態(tài)方法中只能使用本類中的靜態(tài)成員,不能使用實(shí)例成員,而在實(shí)例方法中靜態(tài)和實(shí)例成員都可以使用。對(duì)靜態(tài)方法的調(diào)用的形式:對(duì)象引用變量.靜態(tài)方法(參數(shù)) /不推薦使用該方式類名.靜態(tài)方法(參數(shù)) /推薦使用該方式11.4 11.4 類的靜態(tài)成員類的靜態(tài)成員11.5 11.5 變量的作用域變量的作用域一個(gè)類中的變量主要有類的數(shù)據(jù)域和局部變量?jī)煞N形式。其中局部變量的使用在方法一章有過(guò)介紹。本節(jié)將在類的范圍內(nèi)討論所有變量的作用域。局部變量是指在類的方法中定義的變量,不能使用訪問(wèn)修飾符限制作用域,其作用域?yàn)槎x變量的語(yǔ)句開(kāi)始到該語(yǔ)句所屬的
9、語(yǔ)句塊的右大括號(hào)。類的數(shù)據(jù)域在類內(nèi)部的作用域與訪問(wèn)修飾符無(wú)關(guān),無(wú)論在類的任何位置定義數(shù)據(jù)域,其作用域均為整個(gè)類范圍,見(jiàn)圖(a)。一個(gè)特殊情況是某數(shù)據(jù)域的初始化時(shí)使用了另一個(gè)數(shù)據(jù)域,此時(shí)被使用的數(shù)據(jù)域必須定義在前面,如圖 (b)所示。 Java語(yǔ)言允許類方法中的局部變量與類的數(shù)據(jù)域同名。這種情況下,在定義局部變量的方法內(nèi)部,局部變量將屏蔽數(shù)據(jù)域,即局部變量有效。參見(jiàn)如下程序代碼:public class Sample private String name = 張三; /數(shù)據(jù)域 public void printName() String name = 李四; /局部變量,屏蔽了數(shù)據(jù)域name
10、System.out.println(name= + name); /輸出局部變量的值 執(zhí)行語(yǔ)句后,輸出結(jié)果是局部變量的值“李四”。11.6 11.6 關(guān)鍵字關(guān)鍵字thisthis類的實(shí)例方法中有時(shí)會(huì)需要引用該類的當(dāng)前對(duì)象,從而訪問(wèn)當(dāng)前對(duì)象數(shù)據(jù)域或調(diào)用當(dāng)前對(duì)象的實(shí)例方法。Java語(yǔ)言使用關(guān)鍵字this表示對(duì)類的當(dāng)前對(duì)象的引用。類的實(shí)例方法中可以用如下方式對(duì)當(dāng)前對(duì)象的數(shù)據(jù)域或方法進(jìn)行引用: this.數(shù)據(jù)域 /引用當(dāng)前對(duì)象的數(shù)據(jù)域this.實(shí)例方法(參數(shù)) /引用當(dāng)前對(duì)象的實(shí)例方法11.6 11.6 關(guān)鍵字關(guān)鍵字thisthis關(guān)鍵字this另外一種用途,是在類的一個(gè)構(gòu)造方法中直接調(diào)用另外一個(gè)構(gòu)造方法。這種調(diào)用不創(chuàng)建對(duì)象,只是將程序流程由當(dāng)前構(gòu)造方法轉(zhuǎn)到被調(diào)用的構(gòu)造方法執(zhí)行,返回后繼續(xù)執(zhí)行當(dāng)前構(gòu)造方法的剩下的語(yǔ)句。其使用形式如下: this(參數(shù));11.6 11.6 關(guān)鍵字關(guān)鍵字thisthis類的實(shí)例方法中有時(shí)會(huì)需要引用該類的當(dāng)前對(duì)象,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 課題申報(bào)參考:進(jìn)一步全面深化改革推進(jìn)中國(guó)式現(xiàn)代化的學(xué)理性研究
- 課題申報(bào)參考:建設(shè)用地減量化的空間優(yōu)化效應(yīng)、機(jī)制與政策優(yōu)化研究
- 2025年erp沙盤(pán)模擬學(xué)習(xí)心得(3篇)
- 2025版投資協(xié)議補(bǔ)充協(xié)議:產(chǎn)業(yè)鏈整合投資合作補(bǔ)充協(xié)議3篇
- 2025年度個(gè)性化定制汽車租賃合同書(shū)4篇
- 二零二五版漫畫(huà)連載網(wǎng)絡(luò)平臺(tái)版權(quán)合作協(xié)議4篇
- 2025年汕尾貨車從業(yè)資格證考什么
- 2025年食堂承包經(jīng)營(yíng)食品安全風(fēng)險(xiǎn)評(píng)估與防控合同3篇
- 二零二五年度城市公交車輛掛靠經(jīng)營(yíng)許可合同4篇
- 二零二五年度廠房污水處理及排放合同匯編3篇
- 2025年溫州市城發(fā)集團(tuán)招聘筆試參考題庫(kù)含答案解析
- 2025年中小學(xué)春節(jié)安全教育主題班會(huì)課件
- 2025版高考物理復(fù)習(xí)知識(shí)清單
- 除數(shù)是兩位數(shù)的除法練習(xí)題(84道)
- 2025年度安全檢查計(jì)劃
- 2024年度工作總結(jié)與計(jì)劃標(biāo)準(zhǔn)版本(2篇)
- 全球半導(dǎo)體測(cè)試探針行業(yè)市場(chǎng)研究報(bào)告2024
- 反走私課件完整版本
- 2024年注冊(cè)計(jì)量師-一級(jí)注冊(cè)計(jì)量師考試近5年真題附答案
- 【可行性報(bào)告】2023年電動(dòng)自行車行業(yè)項(xiàng)目可行性分析報(bào)告
- 臨床見(jiàn)習(xí)教案COPD地診療教案
評(píng)論
0/150
提交評(píng)論