北京信息科技大学Java语言程序设计

上传人:daj****de2 文档编号:53414729 上传时间:2022-02-10 格式:DOC 页数:8 大小:237KB
收藏 版权申诉 举报 下载
北京信息科技大学Java语言程序设计_第1页
第1页 / 共8页
北京信息科技大学Java语言程序设计_第2页
第2页 / 共8页
北京信息科技大学Java语言程序设计_第3页
第3页 / 共8页
资源描述:

《北京信息科技大学Java语言程序设计》由会员分享,可在线阅读,更多相关《北京信息科技大学Java语言程序设计(8页珍藏版)》请在装配图网上搜索。

1、实验4抽象类与接口【实验宗旨】 每天做一点编程练习。【实验目得】1、学习与掌握Java抽象类得定义与使用.2、学习与掌握Java接口得定义与使用。3、进一步学习与掌握通用程序设计方法。【实验步骤 (解题过程 )】参见实验 2.【实验内容】1、( p a r e a b l eC irlce 类)创建名为 pare a b leC i r c le 类,它扩展 Cir cl e类并实现pareabl e接口。画出UM图,实现pareT o方法,使其可以根据面 积比较两个圆。编写一个测试程序求出 par e ableCi r cl e对象得两个实例中得 较大者。说明:来源编程练习 14、2 (P3

2、99)。(2)j av a、I a ng、p ar eab le 接口参 见1 4、5小节(P378).Cir c le类得实现,参见程序清单11、2(P 3 0 3)。 【实验预习】1. 问题描述:该题描述得就是创建一个parea b leCir c le类来实现两个圆得比较.2. 创建两个pare able Circle类得实例,利用p a r a b le接口 ,并调用p arabl e Max方法实现。【附程序代码】SuppressWar nings( ” u n c h eck ed) public class t es t pareab l eCircle / 主方法public

3、st a t i c v o i d ma i n (Stri ng ar gs)?p?are a bleCir c le C1=ne w pare a bleCircle (1 0) ;? pareableCir cle C2=ne w p ar eab leCir c le (3);?Sy stem、ou t、printin (The max niu m Ci rc le is + p arab le Max(C 1 ,C2) +得圆 ) ;/ 比较两个圆得大小public stat i c p arab le p arabl eMax(pa ra bl e C1, pa r a ble

4、C 2)?f (C1、par eTo( C2) 0)?e t ur n C1 ;?e?lse re tu rn C2;pu bl ic c l a ss p a r e ableC i r c l e exte nd s Cir c le i mpleme nt s p ara b le ?/ 建立个指定半径得圆par eable C ir c le( d oubl e radiu s )?s upe r (rad i us);/ para b le接口得方法p ublic i n t par eT o( O b j ect o ) ?f (getArea ()(par e ableC irc

5、l e)o)、g e tArea()?r eturn 1 ;?e l s e if (ge t Area() (pa r eab l eCir cle)o )、g e tAr ea() ret u rn 1 ;els e return 0 ;?p ub l ic class Circ l e ex te nd s Ge om etricObject1 p r ivate d o ub le ra d iu s ;p ub lic Circle () p ubl i c C ircle( d ouble r a di us )t his、r adius = rad i us;/ 返回半径pu b

6、l ic do ubl e ge t Radi us()retur n r a di us;/ 设置一个新得半径public v o id s etRadiu s(do uble radius) th i s、 r a di u s = ra diu s;/ 返回圆得面积publiret/pubc dou ble ge t Are a() u rn rad iu s * ra diusMath 、 PI;返回圆得直径i c double g n 2*retur/ /返回圆得周长publ ic do ublr etu r n 2*/ 打印圆得信息puet Di a meter rad i us;

7、getPeri m etra d ius * Math) PI;blic Str i ng r etu rn an dtoString() created in ” t he rad i usis g etDateCreate d () + r a dius ;【Um图】CompareableCircleCompareableCircle(radius: double) +compareTo(o: Object): int【实验过程及运行结果】口苣理ra: GW ndowss/stenn32cmc/LeMe*= 口最夭的圆为半径是wWl inlhu Hay 29 21 = 19=25 GST

8、2614the radius is 価 屈的圆J在运行过程中遇到得错误就是,在写para b leMax方法时,我写得返回值就是para b leC ire le 类型。应该返回值得类型就是parable类型。这样直接调用了它得ToS tr in g方法.2、(将Cir e l c类变成可比较得)改写程序清单112(P 30 3 )中得C i r cle 类,它扩展 G eome tric Obj ect 类(程序清单 141( P371), 并实现p a reabl e接口。覆盖O b je ct类中得equa ls方法。当两个Circle对象 所表示得圆得半径相等时,则这两个对象就是相同得

9、。画出包括Circle、Geome tricObje e t与p a re ble得UM图.编写测试程序,判断两个圆就是否相同。如果不同,按照练习1得思路,比较两个圆对象得大小.(来源:编程练习14、5(P399)。【实验预习】1. 问题描述:创建Cir e l e类,比较两个圆得大小。2. 创建两个Circle类得实例,调用par eTo方法与e qua l s方法,比较两个圆 得大小。【附程序代码】pu b lic cla ss t e s t C ircle 2 pu bl i c static v o id m ain (Str ing a rgs ) ?Ci r cle 1 C1 =

10、n ew Cir cle1(2) ; / 建立一个半径为 2 得圆Circ 1 e1 C2 =new Ci rcle1( 3 ) ; / / 建立一个半径为 3 得圆?Sy s t em out、pr intln(C1、equal s (C2);?Sy stem、out、p rintln(C1 、p a r eTo (C2);p ublic class C ir cle1 ex t ends Ge o metr i cOb jectimplemen t sparab 1 e pri vat e dou bl e r ad i u s ;pub 1 ic Circle 1() p u b 1 i

11、 e Circ 1 e1 (d oub l e r ad i us)thi s、r ad i us = ra d i u s;/ 返回半径public double getRadiu s () r e tu rn rad i us;/ 设置一个新得半径pub 1 ic vo i d s etR ad ius(d ou ble radius) this 、radius = rad i us;/ 返回圆得面积pu b li c d o u bl e g et A rea() re t urn ra d ius * r a di us * Math、P I;/ 返回圆得直径publ i c doub

12、l e get D iam e ter ()return 2 * rad i us;/ 返回圆得周长pu b lic double ge tPe r i me ter () re tu rn 2 * r ad i us *M ath、PI ;/ 打印圆得信息public Str i ng t oSt r in g( )retu r n cre ated i n + ge tDat eCreated ( )” an d t h e radius is ” + radi us ;/par ab le 接口得方法publi c int pa re To (Obje c t o )i f (thi s

13、、ge t A re a() ( (Circ 1 e 1) o)、g e tAre a () retu rn 1;e lse if (t his、ge tA re a () v (Ci r cle 1 )o )、g etAr e a() ret u rn - 1;e lser e t u rn 0;/覆盖O bje ct中得equ a l s方法public bo o1 ean equals(O b ject o ) return this、ge t Are a ()= =(Ci rc lei ) o)、get A rea();【UM图】【实验过程与运行结果】rai 苣琏员:C :Wi n d

14、owssystem 3 2cmd.UI 回 S3E:和多态jaua tes tCircle2falseE;它帛承和多态colai* f0*dVII1kF啃呻 |F在实验过程中,不会编写c qu a 1 s得覆盖方法.解决方法:应该就是写成;public b oolean eq u a 1 s(Obje c t o) r etur n th is、g etAre a () = ( (C ire 1 e 1 )o )、ge t Area( ) ; 3、(求几何对象得面积之与)编写一个方法,求数组中所有几何对象得面积之与。 方法签名如下:pu b 1 i c sta t i c doub 1 e s

15、 u mArea(Ge om et r i c Obje ct a)编写测试程序,创建4个对象(两个圆形与两个矩形)得数组,然后使用sumA rea 方法求它们得总面积。说明:来源:编程练习14、8( P 4 0 0 );分别实现Geonetri e O bjeet 类(程序清单14- 1(P 3 7 2) )、Re eta ngl e类(程序清单1 1- 3 ( P305、与 Ci r e 1 e类(程序清单1 1 2 (P3 03);建立Geometri c Object类层次结构 (图 14-2 (P372)。【附程序代码】pu b lie c1 ass A rea publie s t

16、a tie void mai n( St r in g ar g s)new Are a();publi c Area ()Geom etricObject a = ne w C ircle (5) , new Cir c le( 6 ), new Re ct an gle (2, 3),ne w R ect a ngl e (2, 3 ”;Sy stem、ou t、p r intl n( The t o tal a rea i s + sumArea(a);p ublic static d ouble s umAr ea (Geome tr i cO b j ect a)do uble su

17、m = 0;fo r (int i =0; i a、length; i+)su m += ai 、 getAr ea( );r et u rn su m;/ 矩形类cla ss R e ctangle e x tends G e o met r icObject p r ivat e doubl e w id t h ;p r ivate d oub le heig h t;/ 创建一个指定长与宽得矩形pu b lic R ectang l e( d oub l e wid th , d oubl e h eig ht)this 、 wi dth = width ;this 、 height

18、= hei g ht;/ 返回矩形得宽pub l i c dou b l e get Wi dt h( )return wi d th ;/ 设定矩形得宽publi c void se tWi d th( d ou bl e width )th is、 width = width ;/ 返回举矩形得高p u b li c double get Height () r etu r n h e ight ;/ 设定矩形得高p u bl ic void setHei g ht( d oubl e height) t h is 、h eigh t = heigh t ;/ 返回矩形面积public d

19、 ou ble getArea() return wid th h eig ht ;/ 求矩形得周长pu bl ic doub l e get Pe ri m eter( ) re tu rn 2* (width+ heigh t);/ /覆盖equa l s方法publ i c boolea n e quals(Rect a ngle rectan g l e ) retu r n (w i dt h = rec t angle、getWid th () ) & (h e ig h t = rec ta ngle、g etH e ig ht();/返回基本信息publicS tring to

20、 St rin g()re turnRecta nglew idth = + width +and he i g h t = + hei g ht;【运行结果】【思考题】1、 练习1与练习2中,使用了不同得方法建立了可比较得 Circle类。结合编程实 现,说说您对不同设计方案得想法与体会。利用不同得设计方案可易于解决不同得实际问题 2、练习3中,如果将方法sum Ar ea得参数数组定义为C ir 1 ce,可以实现相 应得功能吗?定义为Obj e ct呢?为什么?结合本题,说说您对通用程序设 计得理解前者不可以,后者可以。编程就就是让计算机为解决某个问题而使用某种程序设 计语言编写程序代码

21、,并最终得到结果得过程。为了使计算机能够理解人得意图, 人类就必须要将需解决得问题得思路、方法、与手段通过计算机能够理解得形式 告诉计算机,使得计算机能够根据人得指令一步一步去工作,完成某种特定得任务。3、说说抽象类与接口得相同与不同之处。、?相同点都不能被直接实例化,都可以通过继承实现其抽象方法。都就是面向抽象编程得技术基础,实现了诸多得设计模式。不同点接口支持多继承;抽象类不能实现多继承。接口只能定义抽象规则;抽象类既可以定义规则,还可能提供已实现得成员。 接口就是一组行为规范;抽象类就是一个不完全得类 , 着重族得概念。 接口可以用于支持回调;抽象类不能实现回调,因为继承不支持。接口只包含方法、 属性、索引器、事件得签名 , 但不能定义字段与包含实 现得方法 ; 抽象类可以定义字段、属性、包含有实现得方法。接口可以作用于值类型与引用类型; 抽象类只能作用于引用类型。 例如, S tru c t就可以继承接口,而不能继承类。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!