第四章Java面向?qū)ο蟪绦蛟O(shè)計3_第1頁
第四章Java面向?qū)ο蟪绦蛟O(shè)計3_第2頁
第四章Java面向?qū)ο蟪绦蛟O(shè)計3_第3頁
第四章Java面向?qū)ο蟪绦蛟O(shè)計3_第4頁
第四章Java面向?qū)ο蟪绦蛟O(shè)計3_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

4.7多態(tài)及super關(guān)鍵字

多態(tài)的表現(xiàn)形式主要有方法的重載和方法的覆蓋,對象的上轉(zhuǎn)型對象和接口的回調(diào)也是多態(tài)的表現(xiàn)形式。(1)方法重載1)構(gòu)造方法的重載2)普通方法的重載1)構(gòu)造方法的重載classCard{privateStringcardNumber=null;

Card(){}Card(StringcardNumber){this.cardNumber=cardNumber;}}方法重載是指同一個類中多個方法享有相同的名字,但是這些方法的參數(shù)必須不同,參數(shù)不同是指:或者是參數(shù)的個數(shù)不同,或者是參數(shù)類型不同,或者是相同類型參數(shù)的排列順序不同。需要注意的是,方法的返回值類型不能用來區(qū)分方法的重載。

例:publicintvolume(inta,intb)publicvoidvolume(intx,inty)

例2)普通方法的重載兩個方法雖然返回值類型和參數(shù)名字不同,但參數(shù)個數(shù)、類型和順序完全相同,即具有相同的參數(shù)表。(2)方法覆蓋類繼承的過程中,子類方法跟父類方法名字、返回值類型及參數(shù)列表參數(shù)完全一樣,稱子類覆蓋了父類的方法。覆蓋

父類的方法通常是為了對其進(jìn)行修改,并添加新的功能。子類中重寫方法的訪問控制權(quán)限要大于等于父類方法。當(dāng)一個被覆蓋方法通過父類引用被調(diào)用,Java根據(jù)當(dāng)前

被引用對象的類型來決定執(zhí)行哪個方法。例說明:子類不能覆蓋父類中聲明為final的方法。②可以通過super關(guān)鍵字調(diào)用父類中被覆蓋的成員。子類可以繼承父類的非私有成員變量和成員方法,但是,如果子類中聲明的成員變量與父類的成員變量同名,那么父類的成員變量將被隱藏。如果子類中聲明的成員方法與父類的成員方法同名,并且參數(shù)個數(shù)、類型和順序也相同,那么稱子類的成員方法覆蓋了父類的成員方法。這時,如果想在子類中訪問父類中被子類隱藏的成員方法或變量時,就可以使用super關(guān)鍵字-------父類對象的引用。Super關(guān)鍵字(1)調(diào)用父類的構(gòu)造方法構(gòu)造方法作用的特殊性決定了它不可以被繼承。但是在設(shè)計子類的時候,我們希望在父類某個構(gòu)造方法的基礎(chǔ)上來設(shè)計子類的構(gòu)造,就可以在子類構(gòu)造方法的第一條語句使用super來調(diào)用父類的某個構(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é)號是"+zhangSan.number);}}(2)調(diào)用父類的同名成員被子類隱藏的屬性和被子類覆蓋的方法都可以通過super來調(diào)用。1)調(diào)用父類被覆蓋的方法語法如下:super.方法名([參數(shù)]);2)調(diào)用父類被隱藏的成員變量語法如下:super.變量名例1

例24.8包包(Package)是Java提供的一種命名空間機(jī)制,實現(xiàn)了對

類的存放和引用位置的管理,包對應(yīng)一個文件夾,包中還可

以再有子包,稱為包的等級。在編寫類的時候可以聲明類所在的包,在同一個包中類名不

能重復(fù),在不同的包中類名可以相同。當(dāng)源程序中沒有聲明類所在的包時,類被存放在默認(rèn)的包中,該默認(rèn)包中的類要求類名唯一,不能重復(fù),否則會產(chǎn)生沖突。Java的類庫就是用包來實現(xiàn)類的分類和存放,每個包中都有

多組相關(guān)的類和接口。(1)創(chuàng)建包默認(rèn)情況下,系統(tǒng)會為每個Java源程序創(chuàng)建一個無名包。

該Java文件定義的所有類都隸屬于這個無名包,它們之間

可以相互應(yīng)用非私有的變量和方法。Java提供創(chuàng)建包的語句是package語句。創(chuàng)建包的語法格式為:package<包名>;

說明:每個Java源程序文件都隸屬于一個包,如果程序中無package語句,則該源程序隸屬于Java的默認(rèn)無名包。

如果有package語句,那么該源程序文件創(chuàng)建的類都放入package語句指定的包中。每個Java源程序只有一個package包,且必須是作為第一

條語句存放在程序中。程序在執(zhí)行package語句時,首先檢查語句中指定的包(文件夾)是否存在,如果存在則直接使用原有文件夾;如

果不存在,則建立與包名相同的文件夾。packagemypackage;publicclassCalculate{publicintadd(intx,inty){return(x+y);}}編譯后生成的類將存放到已建立的包中(即mypackage文件夾中)在應(yīng)用程序中還可以創(chuàng)建多層次的包,即一個包中又可以包含一個子包,將層次中的每個包名用圓點“.”分隔即可。一個創(chuàng)建包等級的格式如下: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)用時系統(tǒ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)鍵字,多個包及類或接口之間用圓點“.”分隔,“*”表示包中所有類或接口。例如:importjava.awt.*;例包和訪問權(quán)限一個包中只有訪問權(quán)限為public的類才能被其它包引用(創(chuàng)建此類的對象),其它有默認(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-多句說明:一個源程序文件中,最多只能有一條package語句,并且必須是第1條語句。一個源程序文件中,可以有多條import語句,并且必須位于其它類或接口聲明之前。一個源程序文件中,可以定義多個類或接口,但只能定義一個public權(quán)限類或public權(quán)限接口,并且該類或接口名與文件名相同。4.9系統(tǒng)類庫簡介Java類庫的結(jié)構(gòu)類庫就是JavaAPI(ApplicationProgrammingInterface,應(yīng)用程序接口),是系統(tǒng)提供的已實現(xiàn)的標(biāo)準(zhǔn)類的集合。在程序設(shè)計中,合理和充分利用類庫提供的類和接口,不僅可以完成字符串處理、繪圖、網(wǎng)絡(luò)應(yīng)用、數(shù)學(xué)計算等多方面的工作,而且可以大大提高編程效率,使程序簡練、易懂。

Java類庫中的類和接口大多封裝在特定的包里,每個包具有自己的功能。Object類是Java程序中所有類的直接和間接父類,也是類庫中所有類的父類,包含了所有Java類的公共屬性。1.java.lang包中的常用類⑴Object類(2)String類(3)Math類方法定義功能publicstaticdoublesin(doublea)求正弦值publicstaticdoublecos(doublea)求余弦值publicstaticdoubletan(doublea)求正切值publicstaticdoubleexp(doublea)返回e的a次方publicstaticdoublelog(doublea)返回a的自然對數(shù)publicstaticdoublesqrt(doublee)返回a的平方根publicstatictypemax(a,b)返回a、b中的大數(shù)publicstatictypemin(a,b)返回a、b中的小數(shù)publicstatictypeabs(a)返回a的絕對值(4)數(shù)據(jù)類型類數(shù)據(jù)類型類又稱包裝類,與基本數(shù)據(jù)類型(如:int,double,char,long等)密切相關(guān),每一個基本數(shù)據(jù)類型都對應(yīng)一個包裝類,它的名字也與這個基本數(shù)據(jù)類型的名字相似。

例如:double對應(yīng)的包裝類為Double。不同的是,包裝類是一個類,有自己的方法,這些方法主要用來操作和處理它所對應(yīng)的基本數(shù)據(jù)類型的數(shù)據(jù)。Integer類的基本使用方法類別

方法定義

功能構(gòu)造函數(shù)publicInteger(intvalue)根據(jù)一個整型數(shù)生成一個整型對象publicInteger(Strings)根據(jù)一個整型數(shù)字字符序列生成一個整型對象實例方法publicstaticintintValue()將包裝類對象轉(zhuǎn)換成整型數(shù)據(jù)publicstaticintparseInt(Strings)將字符串轉(zhuǎn)化為整型數(shù)據(jù)publicstaticIntegervalueOf(Strings)將一個字符串轉(zhuǎn)化成Integer對象publicStringtoString()返回一個表示整型值得String對象classDataTypeDemo{ publicstaticvoidmain(Stringargs[]){ Strings1="1000";Strings2=null;intbetMoney=10000;intmyMoney=0;s2=String.valueOf(betMoney);

//將整型數(shù)據(jù)轉(zhuǎn)化為Srting對象myMoney=Integer.parseInt(s1);//將字符串轉(zhuǎn)化為整型數(shù)據(jù)System.out.println(s2);System.out.print(myMoney);}}2.java.util包中的常用類⑴ArrayList類ArrayList對象是數(shù)據(jù)的列表,是長度可變的對象引用數(shù)組,類似于動態(tài)數(shù)組。例類別方法定義功能構(gòu)造方法publicArrayList()構(gòu)造一個初始容量為10的空列表publicArrayList(intsize)使用給定長度創(chuàng)建一個數(shù)組列表實例方法publicintsize()返回此列表中的元素個數(shù)publicEget(intindex)返回此列表中指定位置的元素,E表示類型publicintindexOf(Objectx)返回元素在列表中首次出現(xiàn)的位置publicbooleanadd(Eo)將指定元素加入到列表的尾部publicbooleanremove(object)從此列表中移除指定元素(2)Vector類Vector類包含在java.util包中,是可以實現(xiàn)可增長的對象數(shù)組。但是,Vector的大小可以根據(jù)需要增大或縮小,以適應(yīng)創(chuàng)建Vector后進(jìn)行添加或移除項的操作。例類別方法定義功能構(gòu)造方法publicVector()創(chuàng)建一個空VectorpublicVector(i

溫馨提示

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

評論

0/150

提交評論