




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、隱藏、this、super、final、包、接口3.7.2 成員變量的隱藏和方法的重寫成員變量的隱藏和方法的重寫(1)當(dāng)子類中定義的成員變量與父類中的成員變量重)當(dāng)子類中定義的成員變量與父類中的成員變量重名時(shí),則父類中的成員變量不能被繼承。名時(shí),則父類中的成員變量不能被繼承。(2)當(dāng)子類中定義的方法和父類中的方法完全相同時(shí),)當(dāng)子類中定義的方法和父類中的方法完全相同時(shí),父類中的方法將被隱藏(即重寫了父類的方法或置換父類中的方法將被隱藏(即重寫了父類的方法或置換了父類的方法)了父類的方法) 因此,子類通過(guò)成員變量的隱藏和方法的重寫可因此,子類通過(guò)成員變量的隱藏和方法的重寫可以把父類的屬性和方法改
2、變?yōu)樽陨淼膶傩院头椒?。以把父類的屬性和方法改變?yōu)樽陨淼膶傩院头椒ā!纠?3.9】 class Mu1 float f(float x,float y) return x*y; /父類父類 乘法乘法 class Add extends Mu1 float f(float x,float y) /重寫了父類的方法重寫了父類的方法f() return x+y; /子類子類 加法加法 public class Main public static void main(String args) Add sum=new Add();System.out.println(sum.f(2.5f,3f); /調(diào)
3、用的是子類重寫調(diào)用的是子類重寫的方法的方法若刪除子類重寫的方法若刪除子類重寫的方法f(),則會(huì)調(diào)用父類方法,則會(huì)調(diào)用父類方法 class Mu1/父類父類 float f(float x,float y) return x*y; class Add4 extends Mu1/子類子類 /float f(float x,float y) /重寫了父類的方法重寫了父類的方法f() / return x+y; public class 重寫父類方法重寫父類方法 public static void main(String args) Add4 sum=new Add4(); System.out.p
4、rintln(sum.f(2.5f,3f); System.out.println(sum.f(2.5f,3f); 3.7.3this 和super關(guān)鍵字 null 代表代表“空空”,在定義一個(gè)對(duì)象但尚未其分在定義一個(gè)對(duì)象但尚未其分配內(nèi)存單元時(shí)可以指定這個(gè)對(duì)象為配內(nèi)存單元時(shí)可以指定這個(gè)對(duì)象為null; this 代表當(dāng)前代表當(dāng)前類類的對(duì)象;的對(duì)象; super 父父類對(duì)象類對(duì)象1.this this 表示當(dāng)前對(duì)象本身。通過(guò)表示當(dāng)前對(duì)象本身。通過(guò)this可以順利的訪問(wèn)可以順利的訪問(wèn)到當(dāng)前類的方法和變量。到當(dāng)前類的方法和變量。 【例【例3.10】 Public class A int b=8; A
5、(int b) System.out.println(b);/b=5 System.out.println(this.b);/b=8 public static void main(String args) A c=new A(5); 改類名為this2 public class this2/A int b=8; this2(int b) System.out.println(b);/b=5 System.out.println(this.b);/b=8 public static void main(String args) this2 c=new this2(5); 2.superSupe
6、r表示的是當(dāng)前對(duì)象的直接父類對(duì)象,是當(dāng)前對(duì)象的直表示的是當(dāng)前對(duì)象的直接父類對(duì)象,是當(dāng)前對(duì)象的直接父類的對(duì)象引用。接父類的對(duì)象引用。 class Mul float f(float x,float y) return x*y; public class Add extends Mul float f(float x,float y) return x+y; void m() float a=f(5f,3f); /a=5f+3f=8.0000000 float b=super.f(5f,3f); /b=5f*3f=15.0000000 System.out.println(“a=”+a); Sys
7、tem.out.println(“b=“+b); public static void main(String args) Add x=new Add(); x.m( ); 主方法main屬于子類Add主方法亦可屬于單獨(dú)的類:賦值編譯運(yùn)行主方法亦可屬于單獨(dú)的類:賦值編譯運(yùn)行 /Super表示的是當(dāng)前對(duì)象的直接父類對(duì)象,是當(dāng)前對(duì)象的直接父類的對(duì)象引用。 class Mul float f(float x,float y) return x*y; class Add extends Mul float f(float x,float y) return x+y; void m() float a=
8、f(5f,3f);/a=5f+3f=8.0000000 float b=super.f(5f,3f); /b=5f*3f=15.0000000 System.out.println(a=+a); System.out.println(b=+b); public class thisSuper public static void main(String args) Add x=new Add(); x.m( ); 主方法main屬于單獨(dú)的類final關(guān)鍵字關(guān)鍵字final關(guān)鍵字 final關(guān)鍵子可以修飾:類、成員變量和方法中的參數(shù)。 final類不能被繼承:即不能有子類。 final方法不能被
9、重寫:如果一個(gè)方法被修飾為final方法,則這個(gè)方法不能被重寫。 Final變量即常量:如果一個(gè)成員變量被修飾為final的,就是常量,常量必須賦給初值,而且不能再發(fā)生變化。 Final參數(shù)為常量:如果方法的參數(shù)被修飾為final,該參數(shù)的值不能被改變。final方法特點(diǎn) 保證不變、不被覆蓋:為了確保某個(gè)函數(shù)的行為在繼承過(guò)程中保持不變,并且不能被覆蓋,可以使用final方法。 自動(dòng)優(yōu)化:方法聲明為final,編譯器即對(duì)此方法的調(diào)用進(jìn)行優(yōu)化。(編譯器會(huì)自行判斷是否應(yīng)對(duì)final方法進(jìn)行進(jìn)行優(yōu)化。) Private= final、static= final: class中的所有private和st
10、atic方法自然就是final。Final的意義:到此為止的意義:到此為止final在方法之前:防止方法被覆蓋。在方法之前:防止方法被覆蓋。final在類之前:該類不能被繼承。在類之前:該類不能被繼承。final在變量之前:定義一個(gè)常量。在變量之前:定義一個(gè)常量。static的意義:該變量和方法屬于類的意義:該變量和方法屬于類static 在變量或方法之前:在變量或方法之前:表明它們是屬于類的表明它們是屬于類的class ABCD char data; static int_share_data; class Demo ABCD a,b,c,dobject bchar dataobject c
11、char dataObject bchar datastatic intshare_dataobject bchar data/Final 3.1.5 包包 計(jì)算機(jī)操作系統(tǒng)利用文件夾或者目錄來(lái)存放相關(guān)或者同類的文檔。與此類似,Java語(yǔ)言用包的概念來(lái)組織相關(guān)的類。包在物理上一個(gè)文件夾,邏輯上是指一種文件分類概念。 一個(gè)包就是指一組相關(guān)的類。例如:一個(gè)名叫Company(公司)的包,將包含一組類,如:Employee(雇員)、Manager(管理者)和Department(部門)等。聲明包的格式如下:Package 包名; 其中:Package為關(guān)鍵字,包名為標(biāo)識(shí)符。使用包時(shí)注意:使用包時(shí)注意:
12、 (1) Package語(yǔ)句要作為程序非注釋語(yǔ)句的語(yǔ)句要作為程序非注釋語(yǔ)句的第一行第一行語(yǔ)句。語(yǔ)句。 (2) 包內(nèi)的類名唯一(不重名)。包內(nèi)的類名唯一(不重名)。 (3)用用import語(yǔ)句語(yǔ)句引用包中的類。引用包中的類。 import語(yǔ)句的基本格式為:語(yǔ)句的基本格式為:import 包名包名.類名;類名; 其中其中import為關(guān)鍵字,包名和類名之間用圓點(diǎn)為關(guān)鍵字,包名和類名之間用圓點(diǎn)(.)隔開(kāi)。隔開(kāi)。/程序文件名為Manager.javapackage Company;/聲明包名Companyclass Employee /職工類public String name;/名字 public
13、int salary;/薪水 public String getSalary()/發(fā)工資 【例3.5】編寫程序測(cè)試包,先建立一個(gè)Company文件夾,然后建立名為Manager.java的類文件。源程序代碼如下:解:在eclipse中,新建一個(gè)項(xiàng)目package(或在原有項(xiàng)目中),新建一個(gè)包:filenewpackage ,輸入包名Company,系統(tǒng)即會(huì)建立Company文件夾。再新建一個(gè)class:Manager.java,注意在package欄中填入:Conpany,編程如下:String str;str = 名字: + name + nSalary: + salary; return
14、str; public class Manager extends Employee/公共類 經(jīng)理類public String department;/部門public String getSalary() /發(fā)薪/父類.方法 子類變量 return super.getSalary() + nDepartment: + department;鍵入無(wú)誤鍵入無(wú)誤eclipse將自動(dòng)對(duì)此文件進(jìn)行編將自動(dòng)對(duì)此文件進(jìn)行編譯,生成類文件譯,生成類文件Manager.class。在原有項(xiàng)目(原目錄)建立源程序文件UsePackage.java。源程序代碼如下:/程序文件名UsePackage.javaimp
15、ort Company.Manager;/引入包中的經(jīng)理類public class UsePackage/公共類 應(yīng)用包public static void main(String args)Manager m = new Manager(); /實(shí)例經(jīng)理類對(duì)象 = 王飛;m.salary = 10000;m.department = 業(yè)務(wù)部;System.out.println( m.getSalary() );在eclipse中編譯運(yùn)行也可以在命令提示符狀態(tài)下編譯運(yùn)行,過(guò)程如圖3.4所示:從圖3.4中可以看出首先進(jìn)入Company目錄,編譯Manager.java文件,然后
16、返回上層目錄,編譯UsePackage.java文件,最后執(zhí)行UsePackage類文件,輸出正確的結(jié)果。圖3.4 測(cè)試包的輸出結(jié)果3.2 接接 口口Java編程語(yǔ)言中禁止多繼承屬性,但可以通過(guò)接口為類擴(kuò)展方法。接口中可以定義大量的常量和方法其中的方法只是一種聲明,沒(méi)有具體的實(shí)現(xiàn)代碼使用接口的類自行編寫實(shí)現(xiàn)這些方法的代碼。接口與類的不同在于: (1)不能聲明變量,只能聲明常量。 (2) 只有方法的聲明,沒(méi)有方法的實(shí)現(xiàn)。 接口聲明的基本格式如下: public interface 接口名 extends 接口列表使用接口的類引入接口格式:class 類名 implements 接口名 【例3.6
17、】測(cè)試接口,定義接口文件Product.java,定義了兩個(gè)常量(不能聲明變量),聲明了一個(gè)方法(不能編碼)。接口文件如下:/程序文件名Product.javapublic interface Productstatic final String MAKER = 計(jì)算機(jī)制造廠;static final String ADDRESS = 上海;public int getPrice();定義常量聲明方法產(chǎn)品Eclipse編輯編譯接口:FilesNewinterface,輸入接口名稱:接口1使用接口的源文件代碼如下:/程序文件名UseInterface.javapublic class UseInterface public static void main(String args) Computer p = new Computer(); System.out.print(p.ADDRESS + p.MAKER); System.out.println( 計(jì)算
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 冰柜采購(gòu)合同范本
- 促進(jìn)健康教育活動(dòng)的實(shí)施計(jì)劃
- 基于風(fēng)險(xiǎn)評(píng)估的保安管理計(jì)劃
- 社區(qū)鄰里親情關(guān)懷計(jì)劃
- 《貴州豐聯(lián)礦業(yè)有限公司畢節(jié)市陰底鄉(xiāng)瑞興煤礦(變更)礦產(chǎn)資源綠色開(kāi)發(fā)利用方案(三合一)》專家組評(píng)審意見(jiàn)
- 2025年云南貨運(yùn)上崗資格證模擬考試
- 亞洲的人文環(huán)境課件-+2024-2025學(xué)年人教版七年級(jí)地理下冊(cè)
- 2025年莆田道路運(yùn)輸貨運(yùn)考試題庫(kù)
- 2025年鐵嶺貨運(yùn)運(yùn)輸駕駛員從業(yè)資格證考試試題
- 第12課+水陸交通的變遷高二歷史統(tǒng)編版(2019)選擇性必修2
- 經(jīng)營(yíng)性公墓建設(shè)標(biāo)準(zhǔn)
- 患教-頸動(dòng)脈斑塊課件
- 乳腺癌改良根治術(shù)
- 新版(七步法案例)PFMEA
- 臨床護(hù)理重點(diǎn)??平ㄔO(shè)項(xiàng)目評(píng)審標(biāo)準(zhǔn)
- 新蘇教版科學(xué)五年級(jí)下冊(cè)全套教學(xué)課件
- 審計(jì)部組織架構(gòu)及崗位設(shè)置
- 流行性乙型腦炎PPT課件
- 深圳市軌道交通線網(wǎng)規(guī)劃(2016_2035)(草案)
- 四十二式太極劍劍譜
- 完整解讀2021年《建設(shè)工程抗震管理?xiàng)l例》PPT教學(xué)講座課件
評(píng)論
0/150
提交評(píng)論