資源描述:
《實(shí)驗(yàn)四 抽象類、接口和圖形》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、實(shí)驗(yàn)四抽象類、接口和圖形(上課被教師驗(yàn)收的同學(xué)不用提交實(shí)驗(yàn)結(jié)果,并注意在教師處簽名。未完成的同學(xué)請?zhí)峤粚?shí)驗(yàn)結(jié)果,即將程序直接粘貼至本DOC文件,并在郵件名的標(biāo)題中注明:學(xué)號+姓名+實(shí)驗(yàn)三)1.給出下面程序的輸出:ValueistoosmallContinueafterthecatchblockContinueafterthecatchblock2.假設(shè)下面的try-catch塊中的statement2引起一個異常:NoNoYesNo1.在下面的定義中,哪個定義了一個合法的抽象類?2.C4.為什么下面兩行代碼可以編譯,但會導(dǎo)致運(yùn)行時(shí)錯誤?NumbernumbeRef=newInteger(0
2、);DoubledoubleRef=(Double)numberRef;1.下面的說法為真還是為假?(1)除了不能使用new操作符創(chuàng)建抽象類的實(shí)例之外,一個抽象類可以像非抽象類一樣使用。T(2)clone()為Object的protected方法,可以在Object的子類當(dāng)中使用。(3)可以將newint[10]、newString[100]、newObject[50]或者newCalendar[20]賦值給一個Object[]類型的變量。(4)抽象類可以使用該抽象類的構(gòu)造方法創(chuàng)建實(shí)例。(5)接口被編譯成獨(dú)立的字節(jié)碼文件。(6)非抽象父類的子類不能是抽象類。2.編寫一個方法,返回對象數(shù)組中
3、最大的對象。方法簽名如下:publicstaticObjectmax(Comparable[]a)所有對象都是Comparable接口的實(shí)例。對象在數(shù)組中的順序是由CompareTo方法決定的。編寫測試程序,創(chuàng)建一個由10個字符串構(gòu)成的數(shù)組、一個由10個整數(shù)構(gòu)成的數(shù)組和一個由10個日期構(gòu)成的數(shù)組,找出數(shù)組中最大的字符串、整數(shù)和日期。7.創(chuàng)建一個自定制面板,它可以顯示X、O或者空白。顯示什么是重畫面板時(shí)隨時(shí)決定的。使用Math.random()方法隨機(jī)產(chǎn)生整數(shù)0、1或2,對應(yīng)于面板上顯示X、0或者空白。創(chuàng)建一個包含9個自定制面板的框架,如圖15-29b所示。8.編寫一個方法,求數(shù)組中所有幾何
4、對象的面積之和。方法簽名如下:publicstaticdoublesumArea(GeometricObject[]a)編寫測試程序,創(chuàng)建四個對象(兩個圓和兩個矩形)的數(shù)組,然后使用sumArea方法求它們的總面積。(GeometricObjectclass和Circleclass在此提供,請自擬Rectangle類)//Circle.java:ThecircleclassthatextendsGeometricObjectpublicclassCircleextendsGeometricObject{privatedoubleradius;/**Defaultconstructor*/p
5、ublicCircle(){this(1.0);}/**Constructcirclewithaspecifiedradius*/publicCircle(doubleradius){this(radius,"white",false);}/**Constructacirclewithspecifiedradius,filled,andcolor*/publicCircle(doubleradius,Stringcolor,booleanfilled){super(color,filled);this.radius=radius;}/**Returnradius*/publicdouble
6、getRadius(){returnradius;}/**Setanewradius*/publicvoidsetRadius(doubleradius){this.radius=radius;}/**ImplementthegetAreamethoddefinedinGeometricObject*/publicdoublegetArea(){returnradius*radius*Math.PI;}/**ImplementthegetPerimetermethoddefinedinGeometricObject*/publicdoublegetPerimeter(){return2*r
7、adius*Math.PI;}/**Overridetheequals()methoddefinedintheObjectclass*/publicbooleanequals(Circlecircle){returnthis.radius==circle.getRadius();}/**OverridethetoString()methoddefinedintheObjectclass*/publicStringtoSt