第9章java考試試卷(蔣曉明,周誠(chéng)).doc_第1頁(yè)
第9章java考試試卷(蔣曉明,周誠(chéng)).doc_第2頁(yè)
第9章java考試試卷(蔣曉明,周誠(chéng)).doc_第3頁(yè)
第9章java考試試卷(蔣曉明,周誠(chéng)).doc_第4頁(yè)
第9章java考試試卷(蔣曉明,周誠(chéng)).doc_第5頁(yè)
已閱讀5頁(yè),還剩17頁(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.關(guān)于JAVA中的抽象類方法,下面哪個(gè)是正確的?AI.它不包含方法. II.它不能被定義為PUBLIC. (a) 只有I (b) 只有II (c) I 和 II(d) 沒(méi)有2.下面對(duì)抽象類描述不正確的是(C) A.抽象類只能作為基類使用。 B.抽象類不能定義對(duì)象。 C.抽象類可以實(shí)例對(duì)象。 D.可以實(shí)現(xiàn)多態(tài)。3.下列關(guān)于接口和抽象類的說(shuō)法不正確的是?(A )A) 接口也有構(gòu)造方法B) 實(shí)現(xiàn)接口時(shí),需對(duì)接口中的所有方法都要實(shí)現(xiàn)C) 抽象類也有構(gòu)造方法D) 抽象類可以派生出子類4.下列變量定義不合法的是 (C )A) boolean flag=true; B) int k = 1+a;C) char ch = “a”; D) float radius = 1/2;5.有關(guān)類的說(shuō)法正確的是? (B )A) 類具有封裝性,所以類的數(shù)據(jù)是不能被訪問(wèn)的B) 類具有封裝性,但可以通過(guò)類的公共接口訪問(wèn)類中的數(shù)據(jù)C) 聲明一個(gè)類時(shí),必須用public修飾符D) 每個(gè)類中,必須有main方法,否則程序無(wú)法運(yùn)行6.下列說(shuō)法正確的是(A)A) 非抽象類不能包含抽象方法B) 非抽象類可以包含抽象方法C) 抽象類不能包含抽象方法D) 任何類都不能包含抽象方法7.下列說(shuō)法正確的是(B)A) 允許申明沒(méi)有抽象方法的抽象類B) 不允許申明沒(méi)有抽象方法的抽象類C) 允許申明含有抽象方法的普通類D) 任何類都可以申明抽象方法8.下列說(shuō)法不正確的是(A)A) 一個(gè)抽象父類的子類可以不實(shí)現(xiàn)所有的抽象方法B) 一個(gè)抽象父類的子類必須實(shí)現(xiàn)所有的抽象方法C) 如果一個(gè)抽象父類的子類不能實(shí)現(xiàn)所有的抽象方法,它必須申明為抽象D) 如果一個(gè)抽象父類的子類可以不為抽象9.下列說(shuō)法正確的是(A)A) 子類可以申明為抽象的,即使它的父類是具體的B) 子類必須申明為抽象的,即使它的父類是具體的C) 子類不能申明為抽象的,即使它的父類是具體的D) 以上說(shuō)法都錯(cuò)誤10.下列說(shuō)法正確的是(A)A) 可以用NEW創(chuàng)建抽象類實(shí)例B) 不可以用NEW創(chuàng)建抽象類實(shí)例C) 抽象類不可以用作數(shù)據(jù)類型D) 以上說(shuō)法都錯(cuò)誤11.下列說(shuō)法正確的是(A)A) 接口中數(shù)據(jù)必須是常量B) 接口中數(shù)據(jù)可以不是常量C) 抽象類不可以有非常量的數(shù)據(jù)域D) 以上說(shuō)法都錯(cuò)誤12.下列說(shuō)法正確的是(B)A) 接口中數(shù)據(jù)必須是常量B) 接口中數(shù)據(jù)可以不是常量C) 抽象類不可以有非常量的數(shù)據(jù)域D) 以上說(shuō)法都錯(cuò)誤13.在下面類的定義中,哪個(gè)定義了一個(gè)合法的抽象類?Cclass A abstract void ufinished() (a)class A abstract void unfinished(); (b)abstract class A abstract void unfinished(); (c)public class abstract A abstract void unfinished();abstract class A abstract int unfinished(); (d)14.下面哪一個(gè)事正確的接口?Dinterface A void print(); (a) abstract interface A extends I1,I2 abstract void print(); (c)abstract interface A print(); (b)interface A void print(); (d)15.下列說(shuō)法錯(cuò)誤的有(D)A) Integer i=new Interger(“23”); B) Integer i=new Integer(23)C) Integer i=Interger.valueOf(“23”)D) Double d=new Double();16.下列說(shuō)法錯(cuò)誤的有(B)A) Double d=Double.valueof(“23.45”) B) int i=(Integer.valueOf(23).intValue()C) double d=(Double.valueOf(“23”).doubleValue()D) int i=(Double.valueOf(“23.4”).intValue()17.描述JDK1.5中裝箱和開(kāi)箱的特點(diǎn)。在JDK1.5中,下面的哪個(gè)語(yǔ)句不正確嗎?(D)A)Number x=3; B)Integer x=3; C)Double x=3; D) Value(); 18下列說(shuō)法錯(cuò)誤的有(A)A)抽象類可以有使用該抽象類構(gòu)造方法創(chuàng)建的實(shí)例。B)抽象類可以被擴(kuò)展。 C) 總可以成功地把子類實(shí)例轉(zhuǎn)化成父類的對(duì)象。D) 接口編譯成獨(dú)立的字節(jié)碼文件。(正確)19.下列說(shuō)法正確的有(C)A)非抽象類的子類不能是抽象類。B)總可以成功地把父類實(shí)例轉(zhuǎn)化成子類的對(duì)象。 C) 子類不能覆蓋父類中的具體方法,將其聲明成抽象方法。D) 以上全錯(cuò)20.下列說(shuō)法正確的有(C)A)非抽象類的子類不能是抽象類。B)總可以成功地把父類實(shí)例轉(zhuǎn)化成子類的對(duì)象。 C) 子類不能覆蓋父類中的具體方法,將其聲明成抽象方法。D) 以上全錯(cuò)21.下列說(shuō)法正確的有(A)A)一個(gè)接口只能擴(kuò)展其他接口,不能擴(kuò)展類。B)一個(gè)接口除了能擴(kuò)展其他接口,也能擴(kuò)展類。 C) 抽象類可以有具體的方法。D) 以上全錯(cuò)22.下列數(shù)據(jù)類型的包裝類錯(cuò)誤的有(A)A)byte-ByteB)short-Short C) int-IntD) long-Long23.下列數(shù)據(jù)類型的包裝類錯(cuò)誤的有(A)A)float-FloatB)double-Double C)charCharD) boolean-Boolean24.下列說(shuō)法錯(cuò)誤的有(D)A)一個(gè)接口可以擴(kuò)展一個(gè)或多個(gè)接口。B)一個(gè)類僅能繼承一個(gè)父類。 C) 即使父類具體,子類也可以是抽象的。D) 以上全錯(cuò)25.下面哪個(gè)定義的是合法類(C)A) class A abstract void unfinished() B) class A abstract void unfinished(); C) abstract class A abstract void unfinished(); D) public class abstract A abstract void unfinished(); 26.下列說(shuō)法申明抽象方法的有(B)A)public abstract method()。B)public abstract void method()。 C) public void abstract Method()。D) public abstract void method() 27.A是一個(gè)抽象類,B是一個(gè)具體實(shí)例,下面正確的是(B)A)A a = new A();B)A a = new B();。 C) B b = new A()。D) B b = new B()28.假設(shè)Calendar calendar = new GregorianCalendar(),下面哪個(gè)返回一年中的月份(BD)A. calendar.get(Calendar.MONTH)B. calendar.get(Calendar.MONTH_OF_YEAR)C. calendar.get(Calendar.WEEK_OF_MONTH)D. calendar.get(Calendar.WEEK_OF_YEAR)29.假設(shè)Calendar calendar = new GregorianCalendar(),下面哪個(gè)返回一年中的星期(A)A. A. calendar.get(Calendar.MONTH)B. calendar.get(Calendar.MONTH_OF_YEAR) C. calendar.get(Calendar.WEEK_OF_MONTH) D. calendar.get(Calendar.WEEK_OF_YEAR)30.假設(shè)Calendar calendar = new GregorianCalendar(),下面哪個(gè)返回一個(gè)月有多少天(D)A. calendar.get(Calendar.MONTH) B. calendar.get(Calendar.MONTH_OF_YEAR) C. calendar.get(Calendar.WEEK_OF_MONTH) D. calendar.get(Calendar.WEEK_OF_YEAR)31.下面哪個(gè)定義的是正確的接口(D)A) interface A void print() ; B) abstract interface A print(); C) abstract interface A abstract void print() ;D) interface A void print();32.下面程序的運(yùn)行結(jié)果是(D)interface A class C class B extends D implements A public class Test extends Thread public static void main(String args) B b = new B(); if (b instanceof A) System.out.println(b is an instance of A); if (b instanceof C) System.out.println(b is an instance of C); class D extends C A)什么都沒(méi)有B)b is an instance of A.C)b is an instance of C.D)b is an instance of A followed by b is an instance of C33.下面哪個(gè)是從String 轉(zhuǎn)換為Double(D)A)d = Double.parseDouble(s);B)d = (new Double(s).doubleValue();C)d = Double.valueOf(s).doubleValue();D)All of the above34.下面哪個(gè)是從Double轉(zhuǎn)換為String(A)A)s = (new Double(d).toString();B)s = (Double.valueOf(s).toString();C)s = new Double(d).stringOf();D)s = String.stringOf(d)35. Integer.parseInt(10, 2)輸出是什么(B)A)1B)2C)10D)無(wú)效的申明 36.下面的程序輸出什么(A)public class Test public static void main(String args) java.math.BigInteger x = new java.math.BigInteger(3); java.math.BigInteger y = new java.math.BigInteger(7); x.add(y); System.out.println(x); A)3B)4C)10D)1137.判斷下面代碼正誤(A)public class Test public static void main(String args) int x = new Integer(3); System.out.println(Value(); System.out.println(Integer)pareTo(new Integer(4); A)錯(cuò)誤,X不能轉(zhuǎn)為整數(shù)B)錯(cuò)誤,Integer不能轉(zhuǎn)為intC)錯(cuò)誤,int不能轉(zhuǎn)為IntegerD)正確38.下面說(shuō)法正確的是(D)A)以下全錯(cuò)B)抽象類不可以具有數(shù)據(jù)和方法C)常規(guī)類也可以包含抽象方法D)抽象類和常規(guī)類一樣具有數(shù)據(jù)和方法39. 下面說(shuō)法正確的是(C)A)抽象類不可以被多次繼承B)抽象類可以繼承多個(gè)類C)抽象類可以被多次繼承D)以上說(shuō)法全錯(cuò)40. 下面說(shuō)法正確的是(D)A)接口中所有數(shù)據(jù)域都是PUBLICB)接口中所有數(shù)據(jù)域都是FINALC)接口中所有數(shù)據(jù)域都是STATICD)以上說(shuō)法全對(duì)41. 下面說(shuō)法正確的是(A)A)接口中所有方法都是PUBLIC ABSTRACTB)接口中所有方法都是PUBLICC)接口中所有方法都是PRIVATED)接口中所有方法都是PROTECTED42.接口如何繼承其他接口(B)A)使用EXTENDSB) 使用EXTENDC)使用IMPLEMENTSD)使用IMPLEMENT43.接口如何實(shí)現(xiàn)其他接口(C)A)使用EXTENDSB) 使用EXTENDC)使用IMPLEMENTSD)使用IMPLEMENT44.抽象類如何繼承其他抽象類(A)A)使用EXTENDSB) 使用EXTENDC)使用IMPLEMENTSD)使用IMPLEMENT45.下列說(shuō)法正確的是(B)A)一個(gè)類可以有多個(gè)父類,也能有多個(gè)接口B)一個(gè)類只能有一個(gè)父類,但能有多個(gè)接口C)一個(gè)類只能有一個(gè)父類和一個(gè)接口D)一個(gè)類可以有多個(gè)父類,但只能有一個(gè)接口46.接口中所有方法的默認(rèn)修飾是什么(D)A)privateB)private abstractC)public D)public abstract47.下列說(shuō)法正確的是(A)A)接口可以繼承其他接口,抽象類也可以繼承其他抽象類B) 接口不可以繼承其他接口,抽象類也可以繼承其他抽象類C)接口可以繼承其他接口,抽象類不可以繼承其他抽象類D)接口不可以繼承其他接口,抽象類也不可以繼承其他抽象類48.寫列說(shuō)法正確的是(D)A)一個(gè)抽象類中可以含有Data Fields,接口不可以B) 一個(gè)抽象類中不可以含有Data Fields,接口也不可以C)一個(gè)抽象類中可以含有Data Fields,接口也可以D)一個(gè)抽象類中可以含有Data Fields,接口也可以49.下列關(guān)于抽象類和接口的說(shuō)的法有誤的是(D)A)接口的好處是將實(shí)現(xiàn)與表現(xiàn)相分離B)抽象類與接口都用于抽象C)抽象類可以有自己部分實(shí)現(xiàn)D)以上說(shuō)法全錯(cuò)50.關(guān)于抽象類和接口的異同,下列說(shuō)法錯(cuò)誤的是(A)A)實(shí)現(xiàn)程度相同B)接口是抽象類的一個(gè)特列C)接口中只申明方法,不實(shí)現(xiàn)D)抽象類可以實(shí)現(xiàn),也可以不實(shí)現(xiàn)二、填空題1、含有抽象方法的類必須(聲明為抽象類)2、一個(gè)類能有(一)個(gè)父類,可以有(多)個(gè)接口.3、在接口中 所有方法的修飾默認(rèn)是( public abstract).4、抽象方法只有(方法頭標(biāo)志),而沒(méi)有(實(shí)現(xiàn))5、包含抽象方法的類必須(聲明為抽象類)6、在一個(gè)由抽象類擴(kuò)展出來(lái)的非抽象類中,必須實(shí)現(xiàn)(所有)抽象方法。7、接口是一種與類相似的結(jié)構(gòu),只包含(常量)和(抽象方法)8、體為空的接口稱為(標(biāo)記接口)。9、關(guān)鍵字native表明這個(gè)方法(不是用Java編寫的),而是在java虛擬機(jī)中(為本地平臺(tái)實(shí)現(xiàn)的)10、在java中,(基本數(shù)據(jù))類型不作為對(duì)象使用,這樣做的原因是效率問(wèn)題11、Java提供了一個(gè)方便的方法,將基本數(shù)據(jù)類型并入對(duì)象 或包裝成對(duì)象,對(duì)應(yīng)的類稱為(包裝類)12、每個(gè)數(shù)值包裝類都實(shí)現(xiàn)了抽象方法(doubleValue)、(intValue)、(longValue)、(shortValue)和(floatValue),它們都定義在(Number)類中。13、把數(shù)值字符串轉(zhuǎn)換為Int值,使用(Integer)類中的(pareInt)方法14、Integer、Double、Character和String都實(shí)現(xiàn)了接口(Comparable),所以這些類的對(duì)象都可以使用(CompareTo)方法進(jìn)行比較15、將基本類型的值轉(zhuǎn)換為包裝類對(duì)象,稱為(裝箱(boxing)相反的過(guò)程稱為(開(kāi)箱(unboxing)16、一個(gè)接口可以擴(kuò)展(一或多)個(gè)接口17、byte的包裝類是(Byte),short的是Short,int 的是(Integer),long的是Long,float的是Float,double的是(Double),char的是Character,boolean的是(Boolean).18、非抽象類(不能)包含抽象方法。19、在接口中,所有的數(shù)據(jù)域的修飾符都是(public final static).20、抽象類的子類(覆蓋父類的所有抽象方法),否則的話該子類也應(yīng)該為抽象類三、簡(jiǎn)答題1描述基本類型的包裝類,為什么需要這些包裝類?答:在java中,基本數(shù)據(jù)類型不作為對(duì)象使用,這樣做的原因是效率問(wèn)題。因?yàn)樘幚韺?duì)象需要額外的系統(tǒng)開(kāi)銷,如果將基本類型處理為對(duì)象,就會(huì)給語(yǔ)言的效率帶來(lái)大量負(fù)面影響。然而,許多java中的方法需要對(duì)象作為參數(shù)。Java提供了一個(gè)方便的方法,將基本數(shù)據(jù)類型并入對(duì)象或包裝成對(duì)象。對(duì)應(yīng)的類稱為包裝類。2.可以在類中定義compareTo方法而不實(shí)現(xiàn)Comparable接口,實(shí)現(xiàn)Compareble接口的好處是什么?答:通用編程;實(shí)現(xiàn)接口即類似于一種“多重繼承”;3.給出下面術(shù)語(yǔ)的定義:抽象類、接口。抽象類和接口的相同和不同之處是什么? 答:抽象類:沒(méi)有具體的實(shí)例,無(wú)法實(shí)現(xiàn)多重繼承,可以有非抽象方法。 接口:只包含常量和抽象方法。 相同點(diǎn):沒(méi)有具體的實(shí)例,可以編譯為獨(dú)立的字節(jié)碼 不同點(diǎn):抽象類除了包含常量和抽象方法外,還包含變量和具體的方法4.什么是抽象類?答:抽象類表示該類中可能已經(jīng)有一些方法的具體定義,但是接口就僅僅只能定義各個(gè)方法的界面(方法名,參數(shù)列表,返回類型),并不關(guān)心具體細(xì)節(jié)。5.抽象類的用法?答:1)在繼承抽象類時(shí),必須覆蓋該類中的每一個(gè)抽象方法,而每個(gè)已實(shí)現(xiàn)的方法必須和抽象類中指定的方法一樣,接收相同數(shù)目和類型的參數(shù),具有同樣的返回值,這一點(diǎn)與接口相同。2)當(dāng)父類已有實(shí)際功能的方法時(shí),該方法在子類中可以不必實(shí)現(xiàn),直接引用的方法,子類也可以重寫該父類的方法(繼承的概念)。3)而實(shí)現(xiàn) (implement)一個(gè)接口(interface)的時(shí)候,是一定要實(shí)現(xiàn)接口中所定義的所有方法,而不可遺漏任何一個(gè)。4)另外,抽象類不能產(chǎn)生對(duì)象的,但可以由它的實(shí)現(xiàn)類來(lái)聲明對(duì)象。有鑒于此,在實(shí)現(xiàn)接口時(shí),我們也常寫一個(gè)抽象類,來(lái)實(shí)現(xiàn)接口中的某些子類所需的通用方法,接著在編寫各個(gè)子類時(shí),即可繼承該抽象類來(lái)使用,省去在每個(gè)都要實(shí)現(xiàn)通用的方法的困擾。6.介紹1個(gè)你熟悉的接口?答:略7.引入接口的原因?答:在Java中引進(jìn)接口主要是為了解決多繼承的問(wèn)題。1)接口中不能有非抽象方法,但抽象類中可以有。2)一個(gè)類能實(shí)現(xiàn)多個(gè)接口,但只能有一個(gè)父類。3)接口并不屬于繼承結(jié)構(gòu),它實(shí)際與繼承無(wú)關(guān),因此無(wú)關(guān)的類也可以實(shí)現(xiàn)同一個(gè)接口。8、下面的代碼有什么錯(cuò)誤?Public class Test Public static void main(String agrs) GeometricObject x=new Circle(3); GeometricObject y=x.clone(); System.out.println(x=y);答:其中clone()方法位Object類中的保護(hù)方法,如果想用clone方法,可以(1)在類中重寫clone方法;(2)實(shí)現(xiàn)java.lang.Cloneable接口。9.如何把整數(shù)轉(zhuǎn)換為字符串?如何把數(shù)值字符串轉(zhuǎn)換為整數(shù)?如何把double數(shù)轉(zhuǎn)換為字符串?如何把數(shù)值字符串轉(zhuǎn)換為double數(shù)?答:用new Interger(int).toString()方法將整數(shù)轉(zhuǎn)化為字符串;Integer.pareInt(String)方法將數(shù)值字符串轉(zhuǎn)換為整數(shù);Double(double).toString()方法將double數(shù)轉(zhuǎn)換為字符串;Double.pareDouble(String)方法將數(shù)值字符串轉(zhuǎn)換為double 數(shù);10、接口如何使用?答:在AWT中,java使用了大量的監(jiān)聽(tīng)器。這些監(jiān)聽(tīng)器都是回調(diào)方法。在XML解析器SAX中,也使用了回調(diào)方法來(lái)解析XML文檔。接口要比抽象類還要抽象。抽象類需要子類繼承,而Java是單繼承,所以抽象類被限制了。而接口不同,一個(gè)類可以實(shí)現(xiàn)多個(gè)接口。好比人類與程序員類之間的關(guān)系??梢哉f(shuō)程序員是人類的子類,如果程序員是一個(gè)接口。用人類的子類來(lái)實(shí)現(xiàn)它就會(huì)更好。這個(gè)子類還可以去實(shí)現(xiàn)會(huì)計(jì)接口、音樂(lè)家接口等等。四、是非題1、 抽象類可以使用該抽象類的構(gòu)造方法創(chuàng)建的實(shí)例 (錯(cuò))2、 抽象類可以被擴(kuò)展 (對(duì))3、 總可以成功地把子類的實(shí)例轉(zhuǎn)化為父類的實(shí)例 (對(duì))4、 總可以成功地把父類的實(shí)例轉(zhuǎn)化為子類的實(shí)例 (錯(cuò))5、 接口編譯成獨(dú)立的字節(jié)碼文件 (對(duì))6、 非抽象父類的子類不能是抽象類 (錯(cuò))7、 子類不能覆蓋父類中的具體方法,將其聲明成抽象方法 (錯(cuò))8、 抽象類不能用new運(yùn)算符實(shí)例化,但仍然可以定義它的構(gòu)造方法 (對(duì))9、 有抽象方法的類不一定是抽象類 (錯(cuò))10、 接口是一種與類相似的結(jié)構(gòu),包含的常量、變量和抽象方法 (錯(cuò))11、 接口中每個(gè)方法只有頭標(biāo)記,沒(méi)有實(shí)現(xiàn)部分 (對(duì))12、 JAVA對(duì)類的擴(kuò)展允許多重繼承 (錯(cuò))13、 所有的類共享同一個(gè)根:Object,但接口沒(méi)有共同的根 (對(duì))14、 每一個(gè)包裝類都是從抽象類Number擴(kuò)展而來(lái)的 (對(duì))15、 一個(gè)接口只能擴(kuò)展一個(gè)接口 (錯(cuò))16、 Number numberRef=new Interger2 不會(huì)導(dǎo)致運(yùn)行時(shí)錯(cuò)誤 (錯(cuò))17、 Java.lang.Cloneable是一個(gè)標(biāo)記接口,使得它的每個(gè)類的對(duì)象都課克隆 (對(duì))18、 Java.util.Arrays.sort(Object )對(duì)可比較對(duì)象數(shù)組進(jìn)行排序 (對(duì))19、 每個(gè)數(shù)值包裝類都實(shí)現(xiàn)了抽象方法doubleValue (對(duì))20、 所有包裝類的實(shí)例都是永久的,一旦對(duì)象創(chuàng)建后它們內(nèi)部的值就不能再改變 (對(duì))五、編程題1.創(chuàng)建一個(gè)ComparableCylinder的類,它擴(kuò)展Cylider類并實(shí)現(xiàn)Comparable接口。實(shí)現(xiàn)compareTo方法,使其根據(jù)體積比較兩個(gè)圓柱。編寫測(cè)試程序找出兩個(gè)ComparableCylinder對(duì)象中的較大者。答:public class Exercise9_2 / Main method public static void main(String args) / Create two comarable rects ComparableCylinder cylinder1 = new ComparableCylinder(2, 5); ComparableCylinder cylinder2 = new ComparableCylinder(3, 4); / Display the max rect ComparableCylinder rect = (ComparableCylinder)Max.max(cylinder1, cylinder2); System.out.println(The max rects width and height are + rect.getWidth() + and + rect.getHeight(); System.out.println(rect); / Rectangle1.java: The Rectangle1 class that extends GeometricObjectclass Rectangle1 extends GeometricObject1 protected double width; protected double height; / Default constructor public Rectangle1() this(1.0, 1.0, white, 1.0); / Construct a rectangle with specified width and height public Rectangle1(double width, double height) this.width = width; this.height = height; / Construct a rectangle with specified width, height, weight, and color public Rectangle1(double width, double height, String color, double weight) super(color, weight); this.width = width; this.height = height; / Getter method for width public double getWidth() return width; / Setter method for width public void setWidth(double width) this.width = width; / Getter method for height public double getHeight() return height; / Setter method for height public void getHeight(double height) this.height = height; / Implement the findArea method in GeometricObject public double findArea() return width*height; / Implement the findPerimeter method in GeometricObject public double findPerimeter() return 2*(width + height); public int compareTo(Object object) if (this.findArea() (Rectangle)object).findArea() return 1; else if (this.findArea() = (Rectangle)object).findArea() return 0; else return -1; /*Override the equals() method defined in the Object class*/ public boolean equals(Rectangle1 rectangle) return (width = rectangle.getWidth() & (height = rectangle.getHeight(); / Override the toString() method defined in the Object class public String toString() return Rectangle1 width = + width + and height = + height; class ComparableCylinder extends Rectangle1 implements Comparable / Construct a CompareCircle with specified radius public ComparableCylinder(double w, double h) super(w, h); / Implement the compareTo method defined in Comparable public int compareTo(Object o) if (findArea() (Rectangle1)o).findArea() return 1; else if (findArea() (Rectangle1)o).findArea() return -1; else return 0; 2.編寫一個(gè)方法,求數(shù)組中所有幾何對(duì)象的面積之和。方法頭如下: Public static double sumArea(GeometricObject a) 編寫測(cè)試程序,創(chuàng)建三個(gè)對(duì)象(一個(gè)圓、一個(gè)圓柱和一個(gè)矩形)的數(shù)組,并使用sumArea方法求它們的總面積。答:public class Exercise9_8 public static void main(String args) new Exercise9_8(); public Exercise9_8() GeometricObject a = new Circle(5), new Cylinder(4, 5), new Rectangle(2, 3); System.out.println(The total area is + sumArea(a); public static double sumArea(GeometricObject a) double sum = 0; for (int i = 0; i a.length; i+) sum += ai.findArea(); return sum; / Rectangle.java: The Rectangle class that extends GeometricObjectpublic class Rectangle extends GeometricObject private double width; private double height; /*Default constructor*/ public Rectangle() this(1.0, 1.0); /*Construct a rectangle with width and height*/ public Rectangle(double width, double height) this(width, height, white, false); /*Construct a rectangle with specified width, height, filled, and color*/ public Rectangle(double width, double height, String color, boolean filled) super(color, filled); this.width = width; this.height = height; /*Return width*/ public double getWidth() return width; /*Set a new width*/ public void setWidth(double width) this.width = width; /*Return height*/ public double getHeight() return height; /*Set a new height*/ public void setHeight(double height) this.height = height; /*Implement the findArea method in GeometricObject*/ public double findArea() return width*height; /*Implement the findPerimeter method in GeometricObject*/ public double findPerimeter() return 2*(width + height); /*Override the equals method defined in the Object class*/ public boolean equals(Rectangle rectangle) return (width = rectangle.getWidth() & (height = rectangle.getHeight(); /*Override the toString method defined in the Object class*/ public String toString() return Rectangle width = + width + and height = + height; 3.寫4個(gè)類一個(gè)測(cè)試類PersonTest.java一個(gè)抽象類Person.java一個(gè)繼承Person類的類Employee.java一個(gè)繼承Person類的類student.java答:類PersonTest.javaimport java.text.*;public class PersonTest public static void main(String args) Person people=new Person2; people0=new Employee(張西門,6000); people1=new student(李東門,計(jì)算機(jī)應(yīng)用); for(int i=0;ipeople.length;i+) Person e =peoplei; System.out.println(e.getname()+, +e.getJieShao(); 類Person.javaabstract class Person public Person(String aName) name=aName; public abstract String getJieShao(); public String getname() return name; private String name;類Employee.javaclass Employee extends Personpublic Employee(String aName,double aGongZi)super(aName);GongZi=aGongZi;public String getJieShao()return 職工+name+的月工資為:+GongZi;private double GongZi;類student.javaclass student extends Personpublic student(String aName,String aZhuanYe)super(aName);ZhuanYe=aZhuanYe;public String getJieShao()return 學(xué)生+name+的專業(yè)是:+ZhuanYe;private String ZhuanYe;4. 在某個(gè)包中創(chuàng)建一個(gè)接口,內(nèi)含3個(gè)方法,然后在另一個(gè)包中實(shí)現(xiàn)此接口/ interfaces.TestEx5.java/ TIJ4 Chapter Interfaces, Exercise 5, page 320/ Create an interface containing three methods, in its own package. Implement it/ in another package./* Solution includes, in package interfaces.ex5:* package interfaces.ex5;* public interface Ex5 *void sayOne();*void sayTwo();*void sayThree();* */import interfaces.ex5.*;public class TestEx5 implements Ex5 public void sayOne() System.out.println(one); public void sayTwo() System.out.println(two); public void sayThree() System.out.println(three); public static void main(String args) TestEx5 x = new TestEx5();x.sayOne();x.sayTwo();x.sayThree();5.證明接口內(nèi)所有方法都自動(dòng)是PUBLIC / interfaces.TestEx6.java/ TIJ4 Chapter Inter

溫馨提示

  • 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)論