《JAVA》11類與對象_第1頁
《JAVA》11類與對象_第2頁
《JAVA》11類與對象_第3頁
《JAVA》11類與對象_第4頁
《JAVA》11類與對象_第5頁
已閱讀5頁,還剩26頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、類與對象面向?qū)ο蟮姆庋b性包訪問修飾符類的封裝類的靜態(tài)成員變量的作用域關(guān)鍵字this主要主要內(nèi)容內(nèi)容11.1 11.1 包包Java語言使用包(package)來管理應(yīng)用程序中的類,Java語言的每一個類都位于一個特定包中。沒有指定類在哪個包中,這樣定義的類位于默認包中,Java語言雖然允許但不推薦把類置于默認包中。使用包來管理類有四個優(yōu)點:(1)把功能相近的類置于同一個包中便于查找類;(2)當(dāng)編寫的類被其他應(yīng)用程序重用時,將類置于包中可以減少或避免命名沖突的情況出現(xiàn);(3)使用包可以更加靈活的處理類及其成員的可訪問性,更好地對類進行保護;(4)使用具有層次關(guān)系的包管理類,更加便于應(yīng)用程序的發(fā)布

2、。11.1 11.1 包包Java語言的包是具有層次關(guān)系的,一個包中還可以包含子包。為包進行命名時,使用“.”分隔父包與其子包。例如包名java.lang說明頂層包為java,其中包含了lang子包;而類名java.lang.Math說明Math類位于包java.lang中。通常包名全部使用小寫字母命名。 package語句的作用是把該源程序文件中定義的所有類置于同一個包中。下面通過一個例子說明如何把類置于指定包中。把類置于包中需要在源程序中使用package語句,該語句必須位于一個源程序文件中的第一條語句,其前面只能有注釋。package語句的語法格式如下: 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)用程序的類時,如果兩個類不在同一包中,有兩種方式:第一種方式是使用類的命名。 如: javax.Swing.JOptionPane第二種方式是使用import語句導(dǎo)入類。import語句有兩種使用形式,例如:

4、 import javax.swing.*; /導(dǎo)入javax.swing包中的所有類 import javax.swing.JOptionPane; /導(dǎo)入JOptionPane一個類上面兩種import方式對程序的編譯和運行效率的影響是相同的。11.2 11.2 訪問修飾符訪問修飾符訪問修飾符用來限制應(yīng)用程序中類和類成員的使用范圍,Java語言提供了public、protected、private三個訪問修飾符實現(xiàn)四種訪問范圍。下表中列出了Java語言的四種訪問范圍。11.2 11.2 訪問修飾符訪問修飾符 訪問修飾符同一類范圍內(nèi)同一包范圍內(nèi)子類范圍內(nèi)其他范圍內(nèi)publicprotecte

5、d無private11.2 11.2 訪問修飾符訪問修飾符11.3 11.3 類的封裝類的封裝類的封裝是指合理使用訪問修飾符,使類及其成員具有合理的訪問范圍。將指數(shù)據(jù)域用private修飾封裝,不能直接為其他類訪問,同時為每個數(shù)據(jù)域提供訪問器方法和修改器方法。類和類中需要給其它類調(diào)用的方法成員用public修飾。11.3 11.3 類的封裝類的封裝訪問器方法:public 數(shù)據(jù)類型 get屬性名()修改器方法:public void set屬性名(數(shù)據(jù)類型 形參)11.3 11.3 類的封裝類的封裝特別地,數(shù)據(jù)類型為boolean時,訪問器方法定義為如下形式: public 數(shù)據(jù)類型 is屬性

6、名()方法定義中數(shù)據(jù)類型通常為所封裝的數(shù)據(jù)域的類型,訪問器方法的代碼直接返回數(shù)據(jù)域的值,修改器方法的代碼直接把形參賦值給數(shù)據(jù)域。Retangle2.java演示11.4 11.4 類的靜態(tài)成員類的靜態(tài)成員Java語言的類包括靜態(tài)成員和實例成員兩種類型的成員。實例成員的概念前面已經(jīng)講述。使用static修飾的成員稱為靜態(tài)成員,包括靜態(tài)數(shù)據(jù)域(也稱類變量)、靜態(tài)方法(也稱類方法)。靜態(tài)成員屬于類本身,而不屬于類的任何一個對象。11.4 11.4 類的靜態(tài)成員類的靜態(tài)成員 Retangle3.java演示 為Rectangle2類增加表示創(chuàng)建對象個數(shù)的靜態(tài)數(shù)據(jù)域,及獲取其值的靜態(tài)訪問器方法。新定義的

7、矩形類命名為Rectangle3。見 例11-2:實例數(shù)據(jù)域與靜態(tài)數(shù)據(jù)域的區(qū)別是:實例數(shù)據(jù)域?qū)儆谔囟ǖ膶ο?,一個類 可以使用new運算符創(chuàng)建很多對象,每個 對象獨立擁有自己的實例數(shù)據(jù)域。本例無 論創(chuàng)建多少個矩形對象,每個對象都獨立 擁有自己的實例數(shù)據(jù)域width和height。實例數(shù)據(jù)域與靜態(tài)數(shù)據(jù)域的區(qū)別是:靜態(tài)數(shù)據(jù)域是類擁有的,所有創(chuàng)建的矩形對象以共享方式訪問。本中的靜態(tài)數(shù) 據(jù)域numberOfRectangles是所有創(chuàng)建 的矩形對象共享的。在訪問修飾符允許的情況下,訪問靜態(tài)數(shù)據(jù)域的方式:對象引用變量.靜態(tài)數(shù)據(jù)域 /不推薦使用該方式類名.靜態(tài)數(shù)據(jù)域 /推薦使用該方式 實例方法與靜態(tài)方法的區(qū)

8、別也在于靜態(tài)方法是屬于類的,可以在不創(chuàng)建對象的情況下通過類名調(diào)用。在靜態(tài)方法中只能使用本類中的靜態(tài)成員,不能使用實例成員,而在實例方法中靜態(tài)和實例成員都可以使用。對靜態(tài)方法的調(diào)用的形式:對象引用變量.靜態(tài)方法(參數(shù)) /不推薦使用該方式類名.靜態(tài)方法(參數(shù)) /推薦使用該方式11.4 11.4 類的靜態(tài)成員類的靜態(tài)成員11.5 11.5 變量的作用域變量的作用域一個類中的變量主要有類的數(shù)據(jù)域和局部變量兩種形式。其中局部變量的使用在方法一章有過介紹。本節(jié)將在類的范圍內(nèi)討論所有變量的作用域。局部變量是指在類的方法中定義的變量,不能使用訪問修飾符限制作用域,其作用域為定義變量的語句開始到該語句所屬的

9、語句塊的右大括號。類的數(shù)據(jù)域在類內(nèi)部的作用域與訪問修飾符無關(guān),無論在類的任何位置定義數(shù)據(jù)域,其作用域均為整個類范圍,見圖(a)。一個特殊情況是某數(shù)據(jù)域的初始化時使用了另一個數(shù)據(jù)域,此時被使用的數(shù)據(jù)域必須定義在前面,如圖 (b)所示。 Java語言允許類方法中的局部變量與類的數(shù)據(jù)域同名。這種情況下,在定義局部變量的方法內(nèi)部,局部變量將屏蔽數(shù)據(jù)域,即局部變量有效。參見如下程序代碼:public class Sample private String name = 張三; /數(shù)據(jù)域 public void printName() String name = 李四; /局部變量,屏蔽了數(shù)據(jù)域name

10、System.out.println(name= + name); /輸出局部變量的值 執(zhí)行語句后,輸出結(jié)果是局部變量的值“李四”。11.6 11.6 關(guān)鍵字關(guān)鍵字thisthis類的實例方法中有時會需要引用該類的當(dāng)前對象,從而訪問當(dāng)前對象數(shù)據(jù)域或調(diào)用當(dāng)前對象的實例方法。Java語言使用關(guān)鍵字this表示對類的當(dāng)前對象的引用。類的實例方法中可以用如下方式對當(dāng)前對象的數(shù)據(jù)域或方法進行引用: this.數(shù)據(jù)域 /引用當(dāng)前對象的數(shù)據(jù)域this.實例方法(參數(shù)) /引用當(dāng)前對象的實例方法11.6 11.6 關(guān)鍵字關(guān)鍵字thisthis關(guān)鍵字this另外一種用途,是在類的一個構(gòu)造方法中直接調(diào)用另外一個構(gòu)造方法。這種調(diào)用不創(chuàng)建對象,只是將程序流程由當(dāng)前構(gòu)造方法轉(zhuǎn)到被調(diào)用的構(gòu)造方法執(zhí)行,返回后繼續(xù)執(zhí)行當(dāng)前構(gòu)造方法的剩下的語句。其使用形式如下: this(參數(shù));11.6 11.6 關(guān)鍵字關(guān)鍵字thisthis類的實例方法中有時會需要引用該類的當(dāng)前對象,

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論