版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
4.7多態(tài)及super關(guān)鍵字
多態(tài)的表現(xiàn)形式主要有方法的重載和方法的覆蓋,對(duì)象的上轉(zhuǎn)型對(duì)象和接口的回調(diào)也是多態(tài)的表現(xiàn)形式。(1)方法重載1)構(gòu)造方法的重載2)普通方法的重載1)構(gòu)造方法的重載classCard{privateStringcardNumber=null;
Card(){}Card(StringcardNumber){this.cardNumber=cardNumber;}}方法重載是指同一個(gè)類中多個(gè)方法享有相同的名字,但是這些方法的參數(shù)必須不同,參數(shù)不同是指:或者是參數(shù)的個(gè)數(shù)不同,或者是參數(shù)類型不同,或者是相同類型參數(shù)的排列順序不同。需要注意的是,方法的返回值類型不能用來區(qū)分方法的重載。
例:publicintvolume(inta,intb)publicvoidvolume(intx,inty)
例2)普通方法的重載兩個(gè)方法雖然返回值類型和參數(shù)名字不同,但參數(shù)個(gè)數(shù)、類型和順序完全相同,即具有相同的參數(shù)表。(2)方法覆蓋類繼承的過程中,子類方法跟父類方法名字、返回值類型及參數(shù)列表參數(shù)完全一樣,稱子類覆蓋了父類的方法。覆蓋
父類的方法通常是為了對(duì)其進(jìn)行修改,并添加新的功能。子類中重寫方法的訪問控制權(quán)限要大于等于父類方法。當(dāng)一個(gè)被覆蓋方法通過父類引用被調(diào)用,Java根據(jù)當(dāng)前
被引用對(duì)象的類型來決定執(zhí)行哪個(gè)方法。例說明:子類不能覆蓋父類中聲明為final的方法。②可以通過super關(guān)鍵字調(diào)用父類中被覆蓋的成員。子類可以繼承父類的非私有成員變量和成員方法,但是,如果子類中聲明的成員變量與父類的成員變量同名,那么父類的成員變量將被隱藏。如果子類中聲明的成員方法與父類的成員方法同名,并且參數(shù)個(gè)數(shù)、類型和順序也相同,那么稱子類的成員方法覆蓋了父類的成員方法。這時(shí),如果想在子類中訪問父類中被子類隱藏的成員方法或變量時(shí),就可以使用super關(guān)鍵字-------父類對(duì)象的引用。Super關(guān)鍵字(1)調(diào)用父類的構(gòu)造方法構(gòu)造方法作用的特殊性決定了它不可以被繼承。但是在設(shè)計(jì)子類的時(shí)候,我們希望在父類某個(gè)構(gòu)造方法的基礎(chǔ)上來設(shè)計(jì)子類的構(gòu)造,就可以在子類構(gòu)造方法的第一條語句使用super來調(diào)用父類的某個(gè)構(gòu)造方法。語法如下:super([參數(shù)]);classStudent{intnumber;Stringname;Student(intnumber,Stringname){this.number=number;=name;}}classUniverStudentextendsStudent{booleansex;UniverStudent(intnumber,Stringname,booleansex){//子類的構(gòu)造方法super(number,name);//調(diào)用父類的構(gòu)造方法
this.sex=sex;}publicstaticvoidmain(Stringargs[]){UniverStudentzhangSan=newUniverStudent(2009020301,“張三",false);System.out.println("我是"+zhangS+“我的學(xué)號(hào)是"+zhangSan.number);}}(2)調(diào)用父類的同名成員被子類隱藏的屬性和被子類覆蓋的方法都可以通過super來調(diào)用。1)調(diào)用父類被覆蓋的方法語法如下:super.方法名([參數(shù)]);2)調(diào)用父類被隱藏的成員變量語法如下:super.變量名例1
例24.8包包(Package)是Java提供的一種命名空間機(jī)制,實(shí)現(xiàn)了對(duì)
類的存放和引用位置的管理,包對(duì)應(yīng)一個(gè)文件夾,包中還可
以再有子包,稱為包的等級(jí)。在編寫類的時(shí)候可以聲明類所在的包,在同一個(gè)包中類名不
能重復(fù),在不同的包中類名可以相同。當(dāng)源程序中沒有聲明類所在的包時(shí),類被存放在默認(rèn)的包中,該默認(rèn)包中的類要求類名唯一,不能重復(fù),否則會(huì)產(chǎn)生沖突。Java的類庫就是用包來實(shí)現(xiàn)類的分類和存放,每個(gè)包中都有
多組相關(guān)的類和接口。(1)創(chuàng)建包默認(rèn)情況下,系統(tǒng)會(huì)為每個(gè)Java源程序創(chuàng)建一個(gè)無名包。
該Java文件定義的所有類都隸屬于這個(gè)無名包,它們之間
可以相互應(yīng)用非私有的變量和方法。Java提供創(chuàng)建包的語句是package語句。創(chuàng)建包的語法格式為:package<包名>;
說明:每個(gè)Java源程序文件都隸屬于一個(gè)包,如果程序中無package語句,則該源程序隸屬于Java的默認(rèn)無名包。
如果有package語句,那么該源程序文件創(chuàng)建的類都放入package語句指定的包中。每個(gè)Java源程序只有一個(gè)package包,且必須是作為第一
條語句存放在程序中。程序在執(zhí)行package語句時(shí),首先檢查語句中指定的包(文件夾)是否存在,如果存在則直接使用原有文件夾;如
果不存在,則建立與包名相同的文件夾。packagemypackage;publicclassCalculate{publicintadd(intx,inty){return(x+y);}}編譯后生成的類將存放到已建立的包中(即mypackage文件夾中)在應(yīng)用程序中還可以創(chuàng)建多層次的包,即一個(gè)包中又可以包含一個(gè)子包,將層次中的每個(gè)包名用圓點(diǎn)“.”分隔即可。一個(gè)創(chuàng)建包等級(jí)的格式如下:package
<包名>[.<子包名>.[<子包名>…]]子包的創(chuàng)建:packagemypackage.firstpackage.secondpackage;publicclassClassname{message(Strings){system.out.println(s);}}
(2)引用包
在dos環(huán)境下,Classpath指明類庫在操作系統(tǒng)中的位置。把自定義包的路徑添加到classpath中,不同的路徑用“;”隔開,通過import語句方便地引用包。
java.lang包中的最基本應(yīng)用時(shí)系統(tǒng)自動(dòng)加載的,不需要
顯示的用import語句導(dǎo)入就看可以使用其中的類。Java引入包中的類有兩種途徑:①直接在被使用的類前面加上完整的包名②
通過import引用包中的類①在類名前加上包名publicclassJOptionPaneDemo{publicstaticvoidmain(Stringargs[]){javax.swing.JOptionPane.showMessageDialog(null,”HelloJava”);}}②
通過import引用包中的類import語句用于為程序引入需要的類。通過import語句
引入類后,就可以在程序中直接使用類名來訪問。import語句的語法格式如下:import<包名>[.<子包名1>[.<子包名2>…]].類名|接口名|*;其中import是關(guān)鍵字,多個(gè)包及類或接口之間用圓點(diǎn)“.”分隔,“*”表示包中所有類或接口。例如:importjava.awt.*;例包和訪問權(quán)限一個(gè)包中只有訪問權(quán)限為public的類才能被其它包引用(創(chuàng)建此類的對(duì)象),其它有默認(rèn)訪問權(quán)限的類只能在同一包中使用。在不同包中類成員的訪問權(quán)限:
public類的public成員可以被其它包的代碼訪問;protected成員可以被由它派生的其它包中的子類訪問。
默認(rèn)訪問權(quán)限類的成員,不能被其它包的代碼訪問。Java源程序結(jié)構(gòu)Java的源程序文件(.java文件)中可以包含以下類型的成分:package包名//聲明所在包,0-1句import包名.類名|包名.接口名//導(dǎo)入其它包中的類或接口,0-多句,“|”表示2者選1[public]class|interface//聲明類或接口,1-多句說明:一個(gè)源程序文件中,最多只能有一條package語句,并且必須是第1條語句。一個(gè)源程序文件中,可以有多條import語句,并且必須位于其它類或接口聲明之前。一個(gè)源程序文件中,可以定義多個(gè)類或接口,但只能定義一個(gè)public權(quán)限類或public權(quán)限接口,并且該類或接口名與文件名相同。4.9系統(tǒng)類庫簡介Java類庫的結(jié)構(gòu)類庫就是JavaAPI(ApplicationProgrammingInterface,應(yīng)用程序接口),是系統(tǒng)提供的已實(shí)現(xiàn)的標(biāo)準(zhǔn)類的集合。在程序設(shè)計(jì)中,合理和充分利用類庫提供的類和接口,不僅可以完成字符串處理、繪圖、網(wǎng)絡(luò)應(yīng)用、數(shù)學(xué)計(jì)算等多方面的工作,而且可以大大提高編程效率,使程序簡練、易懂。
Java類庫中的類和接口大多封裝在特定的包里,每個(gè)包具有自己的功能。Object類是Java程序中所有類的直接和間接父類,也是類庫中所有類的父類,包含了所有Java類的公共屬性。1.java.lang包中的常用類⑴Object類(2)String類(3)Math類方法定義功能publicstaticdoublesin(doublea)求正弦值publicstaticdoublecos(doublea)求余弦值publicstaticdoubletan(doublea)求正切值publicstaticdoubleexp(doublea)返回e的a次方publicstaticdoublelog(doublea)返回a的自然對(duì)數(shù)publicstaticdoublesqrt(doublee)返回a的平方根publicstatictypemax(a,b)返回a、b中的大數(shù)publicstatictypemin(a,b)返回a、b中的小數(shù)publicstatictypeabs(a)返回a的絕對(duì)值(4)數(shù)據(jù)類型類數(shù)據(jù)類型類又稱包裝類,與基本數(shù)據(jù)類型(如:int,double,char,long等)密切相關(guān),每一個(gè)基本數(shù)據(jù)類型都對(duì)應(yīng)一個(gè)包裝類,它的名字也與這個(gè)基本數(shù)據(jù)類型的名字相似。
例如:double對(duì)應(yīng)的包裝類為Double。不同的是,包裝類是一個(gè)類,有自己的方法,這些方法主要用來操作和處理它所對(duì)應(yīng)的基本數(shù)據(jù)類型的數(shù)據(jù)。Integer類的基本使用方法類別
方法定義
功能構(gòu)造函數(shù)publicInteger(intvalue)根據(jù)一個(gè)整型數(shù)生成一個(gè)整型對(duì)象publicInteger(Strings)根據(jù)一個(gè)整型數(shù)字字符序列生成一個(gè)整型對(duì)象實(shí)例方法publicstaticintintValue()將包裝類對(duì)象轉(zhuǎn)換成整型數(shù)據(jù)publicstaticintparseInt(Strings)將字符串轉(zhuǎn)化為整型數(shù)據(jù)publicstaticIntegervalueOf(Strings)將一個(gè)字符串轉(zhuǎn)化成Integer對(duì)象publicStringtoString()返回一個(gè)表示整型值得String對(duì)象classDataTypeDemo{ publicstaticvoidmain(Stringargs[]){ Strings1="1000";Strings2=null;intbetMoney=10000;intmyMoney=0;s2=String.valueOf(betMoney);
//將整型數(shù)據(jù)轉(zhuǎn)化為Srting對(duì)象myMoney=Integer.parseInt(s1);//將字符串轉(zhuǎn)化為整型數(shù)據(jù)System.out.println(s2);System.out.print(myMoney);}}2.java.util包中的常用類⑴ArrayList類ArrayList對(duì)象是數(shù)據(jù)的列表,是長度可變的對(duì)象引用數(shù)組,類似于動(dòng)態(tài)數(shù)組。例類別方法定義功能構(gòu)造方法publicArrayList()構(gòu)造一個(gè)初始容量為10的空列表publicArrayList(intsize)使用給定長度創(chuàng)建一個(gè)數(shù)組列表實(shí)例方法publicintsize()返回此列表中的元素個(gè)數(shù)publicEget(intindex)返回此列表中指定位置的元素,E表示類型publicintindexOf(Objectx)返回元素在列表中首次出現(xiàn)的位置publicbooleanadd(Eo)將指定元素加入到列表的尾部publicbooleanremove(object)從此列表中移除指定元素(2)Vector類Vector類包含在java.util包中,是可以實(shí)現(xiàn)可增長的對(duì)象數(shù)組。但是,Vector的大小可以根據(jù)需要增大或縮小,以適應(yīng)創(chuàng)建Vector后進(jìn)行添加或移除項(xiàng)的操作。例類別方法定義功能構(gòu)造方法publicVector()創(chuàng)建一個(gè)空VectorpublicVector(i
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年寧波能源實(shí)業(yè)有限公司招聘備考題庫及一套參考答案詳解
- 2025年興仁市人民醫(yī)院長期人才引進(jìn)備考題庫參考答案詳解
- 中國鐵建昆侖投資集團(tuán)有限公司2026屆大學(xué)畢業(yè)生招聘35人備考題庫有答案詳解
- 2025年臨沂高新區(qū)公開招聘工作人員10人備考題庫及完整答案詳解一套
- 2025年昆明市西山區(qū)云帆職業(yè)技能培訓(xùn)學(xué)校招聘備考題庫帶答案詳解
- 2025年福建東南航空科技有限公司公開招聘工作人員5人的備考題庫完整參考答案詳解
- 2025年南通軌道交通集團(tuán)有限公司運(yùn)營分公司公開招聘工作人員的備考題庫有答案詳解
- 2025年招聘丨西南計(jì)算機(jī)有限責(zé)任公司招聘備考題庫完整答案詳解
- 2025年無錫市錫山區(qū)教育局招聘25名高層次人才備考題庫及答案詳解1套
- 2025年中國水利水電第六工程局有限公司-制造安裝公司招聘6人備考題庫及1套完整答案詳解
- (2026.01.01施行)《生態(tài)環(huán)境監(jiān)測條例》解讀與實(shí)施指南課件
- 2025年及未來5年市場數(shù)據(jù)中國廢舊輪胎循環(huán)利用市場深度分析及投資戰(zhàn)略咨詢報(bào)告
- 《科研倫理與學(xué)術(shù)規(guī)范》期末考試試題及答案2025
- 2025天津大學(xué)管理崗位集中招聘15人考試筆試備考題庫及答案解析
- Unit 7 When Tomorrow Comes Section A (1a-1d) 課件 2025-2026學(xué)年人教版八年級(jí)英語上冊(cè)
- 2025年影像成像原理考試題庫
- 2025年智能制造工廠改造項(xiàng)目可行性研究報(bào)告及總結(jié)分析
- 國電投面試技巧與實(shí)戰(zhàn)經(jīng)驗(yàn)交流
- 律師事務(wù)所訴訟案件辦案進(jìn)度及當(dāng)事人滿意度績效評(píng)定表
- 2025年公務(wù)員多省聯(lián)考《申論》題(陜西A卷)及參考答案
- 務(wù)工人員管理規(guī)范與制度范本
評(píng)論
0/150
提交評(píng)論