版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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 / 主方法p
3、ublic 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
4、 ra bl e C1, pa r a ble 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
5、 (getArea ()(par e ableC ircl 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 h
6、is、r adius = rad i us;/ 返回半径pu bl 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*/
7、 打印圆得信息puet Di a meter rad i us;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图】CompareableCircle<<create>>CompareableCircle(radius: double) +compareTo(o: Object): int【实验过程及运行结果】口苣'理ra: GW n
8、dowss/stenn32cmc/LeMe*= 口最夭的圆为半径是wWl inlhu Hay 29 21 = 19=25 GST 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 reab
9、l e接口。覆盖O b je ct类中得equa ls方法。当两个Circle对象 所表示得圆得半径相等时,则这两个对象就是相同得。画出包括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
10、2 pu bl i c static v o id m ain (Str ing a rgs ) ?Ci r cle 1 C1 =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
11、 1 e pri vat e dou bl e r ad i u s ;pub 1 ic Circle 1() p u b 1 i 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
12、() re t urn ra d ius * r a di us * Math、P I;/ 返回圆得直径publ i c doubl 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 ”
13、 + radi us ;/par ab le 接口得方法publi c int pa re To (Obje c t o )i f (thi s、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、g
14、e t Are a ()= =(Ci rc lei ) o)、get A rea();【UM图】【实验过程与运行结果】rai 苣琏员:C :Wi n dowssystem 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( ) ;
15、3、(求几何对象得面积之与)编写一个方法,求数组中所有几何对象得面积之与。 方法签名如下:pu b 1 i c sta t i c doub 1 e s 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);建立G
16、eometri c Object类层次结构 (图 14-2 (P372)。【附程序代码】pu b lie c1 ass A rea publie s ta 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
17、 " + sumArea(a);p ublic static d ouble s umAr ea (Geome tr i cO b j ect a)do uble sum = 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
18、b lic R ectang l e( d oub l e wid th , d oubl e h eig ht)this 、 wi dth = width ;this 、 height = 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 ;/ 设
19、定矩形得高p u bl ic void setHei g ht( d oubl e height) t h is 、h eigh t = heigh t ;/ 返回矩形面积public d 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 St rin g()re turnRecta nglew idth = " + width +"and he i g h t =" + h
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 物业员工月绩效考核制度
- 物资管理审计制度
- 生猪期货风控制度
- 电子厂内部稽核审计制度
- 病理科教育培训制度
- 监理教育培训管理制度
- 矿山内部审计制度
- 社会团体选人用人制度
- 社区文化教育培训制度
- 离任资产审计制度
- 2026年湖北国土资源职业学院单招综合素质考试题库带答案详解
- 2026云南楚雄市司法局第一批司法协理员招聘10人考试参考题库及答案解析
- 2026年及未来5年中国铍行业市场全景监测及投资战略咨询报告
- 2026年辽宁大连市高职单招职业适应性测试试题题库(答案+解析)
- 中小学戏剧表演剧本《茶馆》第一幕
- 安全三类人员教育培训课件
- 湿巾工厂安全培训
- 核电行业防造假管理制度(3篇)
- JJF 1033-2023计量标准考核规范
- 《中国饮食文化》第1章 中国饮食文化的历史发展
- 回顺炮掘工程施工组织设计
评论
0/150
提交评论