資源描述:
《Java矩形信息實驗報告》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、應(yīng)用數(shù)學(xué)學(xué)院信息與計算科學(xué)專業(yè)學(xué)號姓名教師評定_________________實驗題目繼承與接口一、實驗?zāi)康呐c要求實驗?zāi)康模?、掌握類的繼承關(guān)系。2、掌握接口的定義與使用。實驗要求:按下列要求編寫Java程序:1、定義接口Printx,其中包括一個方法printMyWay(),這個方法沒有形參,返回值為空。2、編寫矩形類,矩形類要求實現(xiàn)Printx接口,有求面積、求周長的方法,printMyWay()方法要能顯示矩形的邊長、面積和周長。3、編寫正方形類作為矩形類的子類,正方形類繼承了矩形類求面積和周長的方法,新增加求對角線長的方法,重寫printMyWay()方法,要求該方法能
2、顯示正方形的邊長、面積、周長和對角線長。二、實驗方案編輯該實驗源程序如下:packageprintxdemo;//定義接口PrintxinterfacePrintx{publicvoidprintMyWay();}//定義矩形類Rectangle實現(xiàn)Printx接口classRectangleimplementsPrintx{protecteddoublelength;protecteddoublewidth;publicRectangle(doublelength,doublewidth){this.length=length;this.width=width;}publicS
3、tringgetTangle(){return"該矩形:t"+"長為:"+this.length+";寬為:"+this.width;}publicStringgetArea(){return"面積為:"+(this.length*this.width);}publicStringgetGirth(){return"周長為:"+2*(this.length+this.width);}publicvoidprintMyWay(){System.out.println(this.getTangle());System.out.println(this.getArea());Sy
4、stem.out.println(this.getGirth());}}//定義正方形類Square繼承長方形類RectangleclassSquareextendsRectangle{publicdoubleside;publicSquare(doubleside){super(side,side);}publicStringgetTangle(){return"該正方形:t"+"邊長為:"+this.length;}publicStringgetDiag(){return"對角線長為:"+Math.sqrt(2.0*this.length*this.length);}p
5、ublicvoidprintMyWay(){super.printMyWay();System.out.println(this.getDiag());}}publicclassPrintxDemo{publicstaticvoidmain(String[]args){Rectanglerec=newRectangle(5.0,4.0);rec.printMyWay();Squaresqu=newSquare(6.0);squ.printMyWay();}}編譯、調(diào)試得出結(jié)果。一、實驗結(jié)果和數(shù)據(jù)處運行上述程序:可得如下運行結(jié)果:該矩形:長為:5.0;寬為:4.0面積為:20.0周
6、長為:18.0該正方形:邊長為:6.0面積為:36.0周長為:24.0對角線長為:8.48528137423857二、結(jié)論因為接口中只能定義常量和空方法,而且接口允許多繼承,所以運用接口編輯程序,可以提高程序的靈活度。而繼承雖然沒有接口靈活,但是可以讓代碼被很好地復(fù)用,降低了類的冗余度,有效地提高了資源的利用率。比如程序中,子類Square繼承了父類Rectangle的一些方法,省去了對getArea()和getGirth()的再次聲明定義。一、問題與討論什么時候該接口,什么時候該用繼承?分析:使用接口實現(xiàn)而不用類繼承的主要原因有:在應(yīng)用程序要求很多可能不相關(guān)的對象類型以提供某種
7、功能的情況下,用接口適用性會更強;接口比基類更靈活,因為可以定義單個實現(xiàn)來實現(xiàn)多個接口;在無需從基類繼承實現(xiàn)的情況下,接口更好;在無法使用類繼承的情況下接口是很有用的。使用類繼承而不用接口實現(xiàn)的主要原因有:抽象類提供簡單易行的方法來控制組件版本。通過更新基類,所有繼承類都隨更改自動更新,而接口辦不到。結(jié)論:如果創(chuàng)建的功能將在大范圍的全異對象間使用,則使用接口。而如果創(chuàng)建的功能將在大范圍的同類對象間使用,則使用繼承。編程中能用接口實現(xiàn)的應(yīng)該盡量用接口。