面向?qū)ο蟪绦蛟O(shè)計(jì)包繼承訪問(wèn)權(quán)限_第1頁(yè)
面向?qū)ο蟪绦蛟O(shè)計(jì)包繼承訪問(wèn)權(quán)限_第2頁(yè)
面向?qū)ο蟪绦蛟O(shè)計(jì)包繼承訪問(wèn)權(quán)限_第3頁(yè)
面向?qū)ο蟪绦蛟O(shè)計(jì)包繼承訪問(wèn)權(quán)限_第4頁(yè)
面向?qū)ο蟪绦蛟O(shè)計(jì)包繼承訪問(wèn)權(quán)限_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第四章 面對(duì)對(duì)象程序設(shè)計(jì):包、繼承、訪問(wèn)權(quán)限包包是java語(yǔ)言有效管理類的方式,將同一個(gè)應(yīng)用的類打入一個(gè)包中,把不相關(guān)或者是完成不同功能的類放入不同的包中,使得管理類變的更容易。關(guān)鍵字packagepackage語(yǔ)句作為Java源文件的第一條語(yǔ)句,指明該源文件定義的類所在的包。package語(yǔ)句的一般語(yǔ)法格式為:package ;package 包的命名規(guī)章:1.使用英文字母作為包的名稱。2.包名要求全部使用小寫字母表示(多個(gè)單詞也全部小寫)。3.如果包名包含多個(gè)層次,每個(gè)層次應(yīng)該用“.”分割。例如:package helloworldpackage com.shxt.hello.world關(guān)

2、鍵字import使用import關(guān)鍵字可以將其他包中的類引入到當(dāng)前類中以備使用。在編寫源文件時(shí),除了自己編寫類外,我們常常需要使用Java供應(yīng)的很多類,這些類可能在不同的包中。如果需要引入其他包中的類,可以使用如下語(yǔ)法格式:import .類名;import關(guān)鍵字1.如果要引入某個(gè)包中的全部類,可以使用如下語(yǔ)法格式:import .*;2.在學(xué)習(xí)Java語(yǔ)言時(shí),使用已經(jīng)存在的類,避開一切從頭做起,是學(xué)習(xí)面對(duì)對(duì)象編程的一個(gè)重要方面。示例:引包關(guān)鍵字extends(繼承)繼承是面對(duì)對(duì)象編程的三大特征之一。 繼承是一種基于已有的類創(chuàng)建新類的機(jī)制。利用繼承,我們可以先創(chuàng)建一個(gè)具有共有屬性的一般類,依據(jù)

3、該一般類再派生出具有特別屬性的新類,新類繼承一般類的狀態(tài)(成員變量)和行為(方法),并依據(jù)需要增加額外的狀態(tài)(成員變量)和行為(方法)。由繼承而得到的類稱為子類(或派生類),被繼承的類稱為父類(或超類)。Java中每個(gè)類只允許有一個(gè)父類。語(yǔ)法如下:class extends 訪問(wèn)權(quán)限當(dāng)使用某個(gè)類創(chuàng)建了相應(yīng)的對(duì)象之后,可以使用.和.這樣的語(yǔ)法格式訪問(wèn)變量和方法。但這種訪問(wèn)是受權(quán)限限制的,使用private、protected和public設(shè)置相應(yīng)的權(quán)限級(jí)別。在java中共有4種訪問(wèn)級(jí)別,按訪問(wèn)權(quán)限由高到低為:public(公有的)、protected(受保護(hù)的)、友好的(沒(méi)有任何訪問(wèn)權(quán)限關(guān)鍵字修

4、飾)和private(私有的)。訪問(wèn)級(jí)別規(guī)章表:訪問(wèn)級(jí)別示例:訪問(wèn)級(jí)別 示例:訪問(wèn)級(jí)別子類訪問(wèn)父類規(guī)章依據(jù)訪問(wèn)級(jí)別規(guī)章表,可知:1.任何類都可以訪問(wèn)其他類的public成員變量和方法;2.子類可以訪問(wèn)父類的protected成員變量和方法;3.所以子類訪問(wèn)父類成員變量和方法的關(guān)鍵在于父類和子類是否在同一個(gè)包中。簡(jiǎn)略表現(xiàn)如下表:成員變量的隱藏和方法重寫當(dāng)子類的成員變量和父類中的成員變量同名(數(shù)據(jù)類型可以不一樣)時(shí),父類的成員變量不能被子類繼承(即被子類的成員變量掩蓋),此時(shí)稱子類的成員變量隱藏了父類的成員變量。 當(dāng)子類方法的名字,返回類型,及參數(shù)個(gè)數(shù)和參數(shù)類型與父類的方法完全相同時(shí),父類的同名方

5、法將被隱藏。而這種子類方法掩蓋父類方法的現(xiàn)象叫做重寫。 成員變量的隱藏和方法重寫可以使子類替換父類中并不適合子類的狀態(tài)(變量)和行為(方法),從而使繼承更加敏捷。示例:隱藏和重寫子類對(duì)象的調(diào)用規(guī)章對(duì)于子類實(shí)例化的一個(gè)對(duì)象,如果在子類中重寫了父類的方法,則運(yùn)行時(shí)系統(tǒng)調(diào)用子類重寫的方法;如果子類繼承了父類的方法(未重寫),那么子類實(shí)例化的對(duì)象會(huì)調(diào)用繼承自父類的方法。重寫規(guī)章:1.子類掩蓋父類的同名方法叫做重寫,重寫必須滿足如下條件:(1)方法的返回值類型必須相同。(2)方法的參數(shù)個(gè)數(shù)必須相同。(3)方法的參數(shù)對(duì)應(yīng)的數(shù)據(jù)類型必須相同。(4)子類方法不得降低父類同名方法的訪問(wèn)級(jí)別。例如:父類的方法訪問(wèn)

6、權(quán)限是protected,則子類重寫該方法時(shí)必須使用protected或者是public。(也就是說(shuō),子類重寫方法的訪問(wèn)權(quán)限必須大于等于父類同名方法的訪問(wèn)權(quán)限)。示例:重寫違規(guī)如上:子類Whale重寫了父類Mammal的run方法,但是將訪問(wèn)權(quán)限從public降低到了protected,這是不允許的,違反了重寫規(guī)章關(guān)鍵字finalfinal關(guān)鍵字可以用來(lái)修飾類、方法和變量。1.final修飾的類不能被繼承。2.final修飾的方法不能被重寫。3.final修飾的變量是常量,不能修改其值。語(yǔ)法示例如下:關(guān)鍵字thisthis關(guān)鍵字表示當(dāng)前類的內(nèi)部實(shí)例對(duì)象,類似于外部實(shí)例,但是this可以訪問(wèn)全部

7、級(jí)別的成員變量和方法。this使用原則:1.this是當(dāng)前類的內(nèi)部對(duì)象,所以和類的外部對(duì)象訪問(wèn)類成員變量和方法的規(guī)章全都,語(yǔ)法:this.和this.2.this只能在當(dāng)前類的內(nèi)部使用,但是,不能在static修飾的方法(即類方法)中使用。3.this在實(shí)例方法中通常被省略,除非實(shí)例方法中包含與成員變量同名的局部變量時(shí),訪問(wèn)成員變量需要使用this。4.當(dāng)一個(gè)類中包含多個(gè)構(gòu)造方法的時(shí),如果其中一個(gè)構(gòu)造方法要調(diào)用另外的構(gòu)造方法時(shí),使用this關(guān)鍵字。示例:thisthis關(guān)鍵字調(diào)用同類其他構(gòu)造方法。類This包含兩個(gè)構(gòu)造方法,一個(gè)有參數(shù),一個(gè)沒(méi)有參數(shù)。調(diào)用格式如下:關(guān)鍵字supersuper使用

8、原則:1.super可以訪問(wèn)被子類重寫的父類同名方法和被子類隱藏的父類的成員變量。2.可以使用super關(guān)鍵字調(diào)用父類的構(gòu)造方法。如果子類繼承父類時(shí),消失了成員變量的隱藏和方法重寫,此時(shí)子類的對(duì)象對(duì)應(yīng)的成員變量和方法都是在子類中重新定義的,如果需要在子類中調(diào)用父類被隱藏的成員變量或者被重寫的方法,可以使用super關(guān)鍵字。 示例:super被重寫 示例:super父類構(gòu)造1.如果父類供應(yīng)了構(gòu)造方法,并且父類不擁有無(wú)參構(gòu)造方法。則要求子類擁有相同結(jié)構(gòu)的構(gòu)造方法。即:子類構(gòu)造方法的參數(shù)個(gè)數(shù)和類型必須和父類的構(gòu)造方法全都。2.如果父類擁有默認(rèn)的構(gòu)造方法,子類又沒(méi)有明確指定調(diào)用父類的哪個(gè)構(gòu)造方法,則子類的構(gòu)造方法隱式的有super()操作; 對(duì)象上轉(zhuǎn)型父類聲明,子類實(shí)例化的對(duì)象稱為上轉(zhuǎn)型對(duì)象。上轉(zhuǎn)型對(duì)象特點(diǎn):1.上轉(zhuǎn)對(duì)象不能操作子類新增的成員變量,失掉了這部分屬性,不能使用子類新增的方法,失掉了一些功能。2.上轉(zhuǎn)型對(duì)象可以操作子類繼承或重寫的成員變量,也可以使用子類繼承的或重寫的方法。當(dāng)上轉(zhuǎn)型對(duì)象訪問(wèn)一個(gè)被隱藏的成員變量時(shí),訪問(wèn)的是父類的成員變量;當(dāng)上轉(zhuǎn)型對(duì)象訪問(wèn)一個(gè)被重寫的方法時(shí),訪問(wèn)的是子類的方法;上轉(zhuǎn)型對(duì)象變量的原則追尋的是訪問(wèn)權(quán)限的原則 而非集成的原則3.如果子類重寫了父類的某個(gè)方法后,當(dāng)對(duì)象的上轉(zhuǎn)型

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論