第04章接口、內(nèi)部類和JavaAPI基礎(chǔ)(信息學(xué)院2014級)_第1頁
第04章接口、內(nèi)部類和JavaAPI基礎(chǔ)(信息學(xué)院2014級)_第2頁
第04章接口、內(nèi)部類和JavaAPI基礎(chǔ)(信息學(xué)院2014級)_第3頁
第04章接口、內(nèi)部類和JavaAPI基礎(chǔ)(信息學(xué)院2014級)_第4頁
第04章接口、內(nèi)部類和JavaAPI基礎(chǔ)(信息學(xué)院2014級)_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1第4章接口、內(nèi)部類和JavaAPI基礎(chǔ)內(nèi)容和要求:理解接口的作用,理解接口和實(shí)現(xiàn)接口的類的關(guān)系,掌握聲明接口、一個類實(shí)現(xiàn)多個接口的聲明和使用方法。理解內(nèi)嵌類型的概念,掌握聲明內(nèi)部類的方法。熟悉Java語言包和實(shí)用包中的常用類。重點(diǎn):接口和實(shí)現(xiàn)接口的類;JavaAPI

。第4章接口、內(nèi)部類和JavaAPI基礎(chǔ)4.1接口4.2內(nèi)部類和內(nèi)部接口4.3javaAPI基礎(chǔ)(基礎(chǔ)類庫和工具類庫)4.4泛型24.1接口與實(shí)現(xiàn)接口的類3接口定義:接口(interface)是一組抽象方法、常量常量和內(nèi)嵌類型的集合。在Java中,接口是一種引用數(shù)據(jù)類型。與抽象類相似,接口采用抽象的形式(抽象方法)描述約定,接口只有被類實(shí)現(xiàn)后才有意義。抽象方法的具體實(shí)現(xiàn)由實(shí)現(xiàn)接口的類完成,實(shí)現(xiàn)接口的非抽象類必須重寫接口中的所有抽象方法。接口的作用接口提供方法聲明與方法實(shí)現(xiàn)相分離的機(jī)制,使多個類之間表現(xiàn)出共同的行為能力。接口中的一個抽象方法在實(shí)現(xiàn)接口的多個類中表現(xiàn)出多態(tài)性。41.聲明接口[public]interface

接口[extends父接口列表]{[public][static][final]數(shù)據(jù)類型成員變量=常量值;[public][abstract]返回值類型成員方法[(參數(shù)列表)];}publicinterfaceArea{//可計算面積接口 publicabstractdoublearea(); //計算面積}publicinterfacePerimeter{//課計算周長接口publicabstractdoubleperimeter();}51.聲明接口聲明接口的說明接口中的成員變量都是常量,聲明時必須賦值,默認(rèn)修飾符為publicstaticfinal;不能聲明實(shí)例成員變量。接口中的成員方法都是抽象的實(shí)例成員方法,默認(rèn)修飾符為publicabstract,不能聲明為static。接口中不能包含構(gòu)造方法。接口的訪問控制權(quán)限是public或缺省。接口沒有任何具體的實(shí)現(xiàn),也就不能創(chuàng)建實(shí)例。2.聲明實(shí)現(xiàn)接口的類[修飾符]class類<泛型>[extends父類][implements接口列表]例如,publicclassRectangleimplementsAreapublicclassEllipseimplementsArea,Perimeter實(shí)現(xiàn)接口的非抽象類必須實(shí)現(xiàn)所有接口中的所有抽象方法,否則聲明為抽象類7類實(shí)現(xiàn)接口說明:具體類必須實(shí)現(xiàn)(implements)接口的所有方法,且方法名字必須相同。如果一個具體類implements某個接口。卻沒有實(shí)現(xiàn)該接口的所有方法,在編譯時將會產(chǎn)生語法錯誤,提示該類必須聲明為abstract。一個類可以實(shí)現(xiàn)多個接口。89圖4.1ClosedFigure類的繼承關(guān)系publicabstractclassClosedFigureextendsFigureimplementsArea,PerimeterCloseFigure聲明為了抽象類,所以可以不實(shí)現(xiàn)area和perimeter方法。聲明柱體類Cylinder,實(shí)現(xiàn)Area和Volume接口publicclassCylinderextendsObjectimplements

Area,VolumepublicinterfaceVolume{//可計算體積接口publicabstractdoublevolume();//抽象方法,計算體積}3.接口是多繼承的11publicinterfaceSolid

extendsArea,Volume//立體接口,繼承Area和Volume接口publicclassGlobeextendsObjectimplementsSolid//球類,實(shí)現(xiàn)Solid接口Java中類是單繼承、接口是多繼承。4.接口是引用數(shù)據(jù)類型ClosedFigurefig=newEllipse(point,10,20); //父類對象fig引用橢圓子類實(shí)例Cylindercylinder=newCylinder(fig,10);//橢圓柱Areaar=cylinder;//ar引用實(shí)現(xiàn)Area接口的Cylinder類的實(shí)例Volumevol=cylinder;//Volume接口對象vol引用實(shí) 現(xiàn)Volume接口的Cylinder類的實(shí)例ar.area()

//運(yùn)行時多態(tài)vol.volume()12ar只能訪問area()方法vol只能訪問volume()方法父類對象可以引用子類實(shí)例,但是只能訪問父類聲明的方法圖4.4接口聲明的抽象方法在實(shí)現(xiàn)該接口的多個類中表現(xiàn)出運(yùn)行時多態(tài)性相同點(diǎn):兩者都包含抽象方法。兩者都不能被實(shí)例化。兩者都是引用數(shù)據(jù)類型。145.接口與抽象類比較抽象類約定多個子類之間共同使用的方法;接口約定多個互不相關(guān)類之間共同使用的方法。抽象類與子類之間采用單重繼承機(jī)制;接口則實(shí)現(xiàn)了多重繼承的功能。抽象類及其類中成員具有與普通類一樣的訪問權(quán)限;接口的訪問權(quán)限有public和默認(rèn)兩種,接口中成員的訪問權(quán)限均是public。抽象類中可以包含非抽象方法,也可以聲明構(gòu)造方法;接口中的方法全部是抽象方法,不能聲明構(gòu)造方法。抽象類中可以聲明成員變量,子類可以對該成員變量賦值;接口中只能聲明常量。15接口與抽象類的不同點(diǎn)6.單繼承和多繼承161)類的單繼承的優(yōu)點(diǎn)搜索路徑是線性的接口的多繼承不會影響線性搜索2)接口多態(tài)性實(shí)現(xiàn)更靈活圖4.5多繼承的“鉆石繼承”類型會導(dǎo)致二義性相對于多繼承,Java的單繼承在父類方法時更簡單197.Java.lang中常用的接口20publicinterfaceCloneable{//可克隆接口}publicinterfaceComparable<T>{//可比較接口 publicintcompareTo(To);}PublicinterfaceRunnable{//線程可運(yùn)行接口 publicabstractvoidrun();}publicinterfaceSerializable{//可序列化接口}其中Cloneable和Serializable接口稱為標(biāo)記接口,沒有任何常量和方法Cloneable接口舉例類實(shí)現(xiàn)Cloneable接口,以指示Object.clone()方法可以合法地對該類實(shí)例進(jìn)行按字段復(fù)制。如果在沒有實(shí)現(xiàn)Cloneable接口的實(shí)例上調(diào)用Object的clone方法,則會導(dǎo)致拋出CloneNotSupportedException異常。按照慣例,實(shí)現(xiàn)此接口的類應(yīng)該使用公共方法重寫Object.clone(它是受保護(hù)的)。publicclassCloneDemoimplementsCloneable{ publicStringname; publicintid; publicMyDatebirthday; ….. publicCloneDemoclone()throwsCloneNotSupportedException{ CloneDemocloned=(CloneDemo)super.clone(); cloned.birthday=(MyDate)birthday.clone(); returncloned; } …….}4.2內(nèi)部類和內(nèi)部接口22publicclassPixel//像素類,外層類型,外部類{publicstaticinterfaceColorConstant //顏色常量接口,靜態(tài)內(nèi)部接口,類型嵌套

publicstaticclassColorextendsObjectimplementsColorConstant//顏色類,靜態(tài)內(nèi)部類}內(nèi)部類和內(nèi)部接口:聲明在其他類或接口內(nèi)部的內(nèi)嵌類型。類型嵌套:靜態(tài)內(nèi)嵌類型Pixel.Colorcolor=newPixel.Color(255,255,255);對象嵌套:實(shí)例內(nèi)嵌類型內(nèi)部類作為類型的特性內(nèi)嵌類型不能與外層類型同名。內(nèi)部類中可以聲明成員變量和成員方法。內(nèi)部類可以繼承父類或?qū)崿F(xiàn)接口??梢月暶鲀?nèi)部類為抽象類,該抽象類必須被其他內(nèi)部類繼承;內(nèi)部接口必須被其他內(nèi)部類實(shí)現(xiàn)。232.內(nèi)部類作為成員的特性24使用點(diǎn)運(yùn)算符“.”引用內(nèi)嵌類型:外層類型.內(nèi)嵌類型Pixel.Color內(nèi)嵌類型具有類中成員的4種訪問控制權(quán)限。當(dāng)內(nèi)部類可被訪問時,才能考慮內(nèi)部類中成員的訪問控制權(quán)限。內(nèi)嵌類型與其外層類型彼此信任,能訪問對方的所有成員。內(nèi)部接口總是靜態(tài)的。內(nèi)部類可聲明是靜態(tài)的或?qū)嵗?,靜態(tài)內(nèi)部類能夠聲明靜態(tài)成員,但不能引用外部類的實(shí)例成員;實(shí)例內(nèi)部類不能聲明靜態(tài)成員。在實(shí)例內(nèi)部類中,使用以下格式引用或調(diào)用外部類當(dāng)前實(shí)例的成員變量或?qū)嵗蓡T方法:

外部類.this.成員變量

//引用外部類當(dāng)前實(shí)例的成員變量

外部類.this.實(shí)例成員方法(參數(shù)列表)//調(diào)用外部類當(dāng)前實(shí)例的成員方法4.3JavaAPI基礎(chǔ)4.3.1Java.lang包的基礎(chǔ)類庫4.3.2Java.util包的工具類庫254.3.1java.lang包中的基礎(chǔ)類庫類名功能Object類Java類層次的根,其他類的祖先Math提供一組數(shù)學(xué)函數(shù)和常數(shù)Comparale接口約定對象比較大小的方法基本數(shù)據(jù)類型包裝類8個基本類型的包裝類String字符串類提供字符串的操作方法System和Runtime類系統(tǒng)和運(yùn)行時類,提供訪問系統(tǒng)和運(yùn)行時環(huán)境資源Class類提供類名、父類即類所在包的信息Error、Excpetion處理異常和錯誤Thread類和Runnable接口提供多線程管理、多線程操作類及接口261.Object類packagejava.lang;publicclassObject{publicObject() //構(gòu)造方法

publicfinalnativeClass<?extendsObject>getClass();

//返回當(dāng)前對象所在的類

publicbooleanequals(Objectobj) //比較當(dāng)前對象與obj是否相等publicStringtoString()//返回當(dāng)前對象的信息字符串protectedvoidfinalize()throwsThrowable//析構(gòu)方法}272.Math數(shù)學(xué)類publicfinalclassMathextendsObject{publicstaticfinaldoubleE=2.7182818284590452354;//常量

publicstaticfinaldoublePI=3.14159265358979323846;publicstaticdoubleabs(doublea) //求絕對值

publicstaticdoublemax(doublea,doubleb)//最大值

publicstaticdoublemin(doublea,doubleb)//最小值

publicstaticdoublerandom()//返回一個0.0~1.0之間的隨機(jī)數(shù)…………..}283.Comparable可比較接口publicinterfaceComparable<T>{intcompareTo(To)//比較對象}其中,<T>是Comparable接口的參數(shù),表示一個類。29MyDate類對象比較大小publicclassMyDateimplementsComparable<MyDate>

{publicintcompareTo(MyDated)//約定比較日期大小的規(guī)則,返回-1、0、1{if(this.year==d.year&&this.month==d.month&&this.day==d.day)return0;return(this.year>d.year||this.year==d.year&&this.month>d.month||this.year==d.year&&this.month==d.month&&this.day>d.day)?1:-1;}}30Comparable接口舉例publicclassMyDateimplementsComparable<MyDate>//類聲明{….publicstaticvoidmain(Stringargs[])

{MyDatedates[]={newMyDate(1995,12,5),newMyDate(2003,2,18),newMyDate(1998,6,18)};….Arrays.sort(dates);…}}4.基本數(shù)據(jù)類型的包裝類328個Byte、Short、Integer、Long、Float、Double、Character、Boolean?;緮?shù)據(jù)類型的包裝類8個Byte、Short、Integer、Long、Float、Double、Character、Boolean。publicfinalclassIntegerextendsNumberimplementsComparable<Integer>{publicstaticfinalintMIN_VALUE=0x80000000;//最小值常量,-231publicstaticfinalintMAX_VALUE=0x7fffffff;//最大值常量,231-1publicInteger(intvalue)//構(gòu)造方法publicInteger(Strings)throwsNumberFormatExceptionpublicstaticintparseInt(Strings)throwsNumberFormatException //將字符串轉(zhuǎn)換為整數(shù),靜態(tài)方法

publicbooleanequals(Objectobj)//覆蓋Object類中方法publicStringtoString() //覆蓋Object類中方法publicintcompareTo(IntegeranotherInteger)//比較兩個對象的大小,返回兩者之間的差值,實(shí)現(xiàn)Comparable接口中方法}335.String字符串類publicfinalclassStringextendsObjectimplementsjava.io.Serializable,Comparable<String>,CharSequence{publicString() //構(gòu)造方法

publicString(Stringoriginal)publicStringtoString() //覆蓋Object類中方法

publicintlength() //返回字符串的長度

publicbooleanequals(Objectobj) //比較字符串是否相等

publicbooleanequalsIgnoreCase(Strings)//忽略字母大小寫

publicintcompareTo(StringanotherString) //比較字符串的大小,實(shí)現(xiàn)Comparable接口方法

publicintcompareToIgnoreCase(Stringstr) //比較字符串的大小,忽略字母大小寫}346.StringBuffer字符串緩沖區(qū)類publicfinalclassStringBufferextendsAbstractStringBuilderimplementsjava.io.Serializable,CharSequence{publicStringBuffer() //構(gòu)造方法

publicStringBuffer(Stringstr)publicappend(char[]str) //覆蓋Object類中方法……….}String對象存儲常量字符串,實(shí)例不能被修改,賦值過程會重新分配內(nèi)存StringBuffer采用緩沖區(qū)存儲可變長的字符串,可以改變字符串對象中的指定字符串。避免在運(yùn)算時頻繁申請內(nèi)存。357.Class類操作類publicfinalclassClass<T>{publicStringgetName()//返回當(dāng)前類名字符串

publicClass<?superT>getSuperclass(); //返回當(dāng)前類的父類

publicPackagegetPackage() //返回當(dāng)前類所在的包………..}this.getClass().getName()this.getClass().getSuperclass().getName()this.getClass().getPackage().getName()36獲取一個類的Class方式ClassName.class類實(shí)例.getClass()方法類加載器Class.forName(“classname”)37Class<?>用法,?是通配符Class<Integer>cla;與Class<?>cl;

前一個表示cla只能指向Integer這種類型,而后一個cl表示可以指向任意類型。

cla=Integer.class可以,但cla=Double.class就不可以。

但是cl=Integer.class可以,cl=Double.class也可以8.System系統(tǒng)類和Runtime運(yùn)行時類publicfinalclassSystemextendsObject{publicfinalstaticInputStreamin=nullInputStream();publicfinalstaticPrintStreamout=nullPrintStream();publicfinalstaticPrintStreamerr=nullPrintStream();publicstaticnativeviodarraycopy(Objectsrc,intsrc_pos,Objectdst,intdst_pos,intlength) //復(fù)制數(shù)組

publicstaticvoidexit(intstatus)//結(jié)束當(dāng)前運(yùn)行的程序

publicstaticnativelongcurrentTimeMillis();//獲得當(dāng)前日期和時間,毫秒數(shù)

publicstaticPropertiesgetProperties() //獲得系統(tǒng)全部屬性

publicstaticStringgetProperty(Stringkey)//獲得指定系統(tǒng)屬性}38System類提供訪問系統(tǒng)資源和標(biāo)準(zhǔn)輸入/輸出流的方法,之前用到了in和out常量。Runtime運(yùn)行時類publicclassRuntimeextendsObject{publicstaticRuntimegetRuntime() //返回與當(dāng)前應(yīng)用程序相聯(lián)系的運(yùn)行時環(huán)境

publiclongtotalMemory()//返回系統(tǒng)內(nèi)存空間總量

publiclongfreeMemory() //返回系統(tǒng)內(nèi)存剩余空間的大小publicProcessexec(Stringcommand,String[]envp)//在指定環(huán)境的單獨(dú)進(jìn)程中執(zhí)行指定的字符串命令。

………….}39Runtime類可直接訪問運(yùn)行時資源Runtime類舉例publicclassRuntimeDemo{publicstaticvoidmain(String[]args)throwsIOException{//獲取與當(dāng)前應(yīng)用程序相聯(lián)系的運(yùn)行時環(huán)境,在當(dāng)前應(yīng)用程序運(yùn)行另外一個程序

Runtimert=Runtime.getRuntime(); Processprocess=rt.exec("notepad.exe"); System.out.println("總內(nèi)存:"+rt.totalMemory()+"空閑內(nèi)存:"+rt.freeMemory());}}40啟動了記事本程序,并在控制臺輸出:總內(nèi)存:124780544空閑內(nèi)存:1221797924.4java.util包中的工具類庫1日期類2Comparator比較器接口3Arrays數(shù)組類4泛型411.日期類---DatepublicclassDateextendsObjectimplementsjava.io.Serializable,Cloneable,Comparable<Date>{publicDate() //構(gòu)造方法,獲得系統(tǒng)當(dāng)前日期和時間的Date對象

{this(System.currentTimeMillis());}publicDate(longdate)//構(gòu)造方法,以長整型值創(chuàng)建Date對象

publicvoidsetTime(longtime) //設(shè)置時間對應(yīng)的長整型值

publiclonggetTime() //返回對象中的時間值

publicbooleanbefore(Datewhen) //判斷是否在指定日期之前

publicbooleanafter(Datewhen) //判斷是否在指定日期之后

publicintcompareTo(DateanotherDate)//比較兩個日期}42由DateFormat控制日期輸出格式日期類——CalendarpublicabstractclassCalendarextendsObjectimplementsSerializable,Cloneable,Comparable<Calendar>{publicstaticfinalintYEAR //年,常量

publicstaticfinalintMONTH //月

publicstaticfinalintDATE //日

publicstaticfinalintHOUR //時

publicstaticfinalintMINUTE //分

publicstaticfinalintSECOND //秒

publicstaticfinalintMILLISECOND //百分秒

publicstaticfinalintDAY_OF_WEEK //星期}43Calendar類publicabstractclassCalendarextendsObjectimplementsSerializable,Cloneable,Comparable<Calendar>{publicstaticCalendargetInstance() //創(chuàng)建實(shí)例

publicintget(intfield) //返回日期

publicfinalDategetTime()//返回對象中的日期和時間

publicfinalvoidsetTime(Datedate)//設(shè)置對象的日期和時間

publicfinalvoidset(intyear,intmonth,intdate)publicfinalvoidset(intyear,intmonth,intdate,inthour,intminute)}例如,Calendarnow=Calendar.getInstance();//獲得實(shí)例intyear=now.get(Calendar.YEAR); //獲得對象中的年份值【例4.5】月歷。442.Comparator比較器接口publicinterfaceComparator<T>{publicabstractbooleanequals(Objectobj); //比較兩個比較器對象是否相等

publicabstractintcompare(Tcobj1,Tcobj2);//指定比較兩個對象大小的規(guī)則}【例4.4】Person類的多種比較規(guī)則。(1)約定多種比較對象大小的規(guī)則(2)約定多種比較對象相等的規(guī)則45Comparator比較器接口舉例與comparable差別:

Comprator可以實(shí)現(xiàn)多個比較接口,而comparable接口只能按照一種方式比較。classTimeComparatorimplementsComparator<ExpressNumber>實(shí)現(xiàn)按時間排序classFromAddrComparatorimplementsComparator<ExpressNumber>實(shí)現(xiàn)按發(fā)件地址排序classToAddrComparatorimplementsComparator<ExpressNumber>實(shí)現(xiàn)按收件地址排序classNumComparatorimplementsComparator<ExpressNumber>實(shí)現(xiàn)按單號排序3.Arrays數(shù)組類比較兩個數(shù)組是否相等publicstaticbooleanequals(int[]a,int[]b)publicstaticbooleanequals(Object[]a,Object[]b)填充publicstaticvoidfill(int[]a,intval)排序publicstaticvoidsort(Object[]a)publicstatic<T>voidsort(T[]a,Comparator<?superT>c)二分法(折半)查找publicstaticintbinarySearch(Object[]a,Objectkey)publicstatic<T>intbinarySearch(T[]a,Tkey,Comparator<?superT>c)474泛型1)泛型聲明[修飾符]class類<類型參數(shù)列表>[extends父類][implements接口列表][public]interface接口<類型參數(shù)列表>[extends父接口列表][public][static]<類型參數(shù)列表>

返回值類型方法([參數(shù)列表])[throws異常類列表]48泛型舉例publicclassGenericsDemo{publicstaticvoidmain(String[]args){ GStudent<Integer>iStud=newGStudent<Integer>(10,20,30); GStudent<String>sStud=newGStudent<String>("10","20","30"); System.out.println(iStud); System.out.println(sStud);}}classGStudent<T>{

TstudentName; TstudentNo; TseatNumber; publicGStudent(TstudentName,TstudentNo,TseatNumber){ this.studentName=studentName; this.studentNo=studentNo; this.seatNumber=seatNumber; } publicStringtoString(){ return"[studentName="+studentName+",studentNo="+studentNo +",seatNumber="+seatNumber+"]"; }}492)泛型的必要性Comparable<T>Comparable<String>scom="abc";//String實(shí)現(xiàn)Comparable<String>Comparable<Person>pcom=newPerson("李明",null,"男","","");//Person實(shí)現(xiàn)Comparable<Person>50Comparable<Person>與Comparable<Student>Personpvalue[]={newPerson(…)};sort(pvalue);//Person實(shí)現(xiàn)omparable<Person>Studentsvalue[]={newStudent(…),……};sort(svalue);//編譯錯,因?yàn)镾tudent繼承Person類,實(shí)現(xiàn)Comparable<Person>接口,

//沒有實(shí)現(xiàn)Comparable<Student>接口,不滿足TextendsComparable<T>語法publicclassStudentimplementsComparable<Student> //提供compareTo(Student)方法513)泛型的繼承性及通配符Comparator<?>是所有Comparator<T>的父類型,“?”稱為通配符,表示通配類型,代表能夠匹配任何類型。“?”還有以下兩種限定通配符用法:?extendsT//?表示T及其任意一種子類型,T稱為?的上界?superT//?表示T及其任意一種父類型,T稱為?的下界publicstatic<TextendsComparable<?superT>>voidsort(Tvalue[])publicstatic<T>voidsort(Tvalue[],Comparator<?superT>c)52小結(jié)理解接口的作用,理解接口和實(shí)現(xiàn)接口的類的關(guān)系,掌握聲明接口、一個類實(shí)現(xiàn)多個接口的聲明和使用方法。理解內(nèi)嵌類型的概念,掌握聲明內(nèi)部類的方法。熟悉Java語言包和實(shí)用包中的常用類。理解泛型的作用和用法重點(diǎn):接口和實(shí)現(xiàn)接口的類;JavaAPI

。531.什么是接口?接口的作用是什么?習(xí)題54【答】接口是一組抽象方法、常量和內(nèi)嵌類型的集合。接口提供方法聲明與方法實(shí)現(xiàn)相分離的機(jī)制,使實(shí)現(xiàn)接口的多個類表現(xiàn)出共同的行為能力。2.接口能否被實(shí)例化?為什么?接口中能否寫構(gòu)造方法?為什么?【答】接口不能被實(shí)例化,因?yàn)榻涌谑锹暶鞯氖浅橄蠓椒ǎ瑳]有方法體。接口中不能寫構(gòu)造方法,因?yàn)闃?gòu)造方法不能聲明為抽象方法。3.接口對象引用誰的實(shí)例?【答】接口是引用類型,接口對象引用實(shí)現(xiàn)該接口的類的實(shí)例。4.什么是單重繼承?什么是多重繼承?類的層次體系為什么需要多重繼承?單重繼承有什么缺點(diǎn)?既然有缺點(diǎn),為什么Java仍然采用單重繼承?Java怎樣實(shí)現(xiàn)多重繼承?【答】單重繼承就是一個類只能有一個父類。多繼承就是可以有多個父類。現(xiàn)實(shí)中的對象往往表現(xiàn)出多種特性,用單重繼承無法客觀描繪,因此需要多重繼承。但是C++的多重繼承過于復(fù)雜,因此Java用“單重繼承+接口”代替了多重繼承,以提高運(yùn)行效率,增加安全性,降低復(fù)雜性。5.怎樣將數(shù)值類型的數(shù)據(jù)轉(zhuǎn)換成字符串?怎樣將字符串轉(zhuǎn)換成數(shù)值類型的數(shù)據(jù)?【答】Integer類的靜態(tài)方法parseInt()和實(shí)例方法intVal

溫馨提示

  • 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

提交評論