資源描述:
《java實(shí)現(xiàn)一個(gè)圓類》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、Wyf實(shí)現(xiàn)一個(gè)圓類實(shí)驗(yàn)類型:驗(yàn)證性實(shí)驗(yàn)?zāi)康模赫莆認(rèn)ava語(yǔ)言類的定義、數(shù)據(jù)域封裝、構(gòu)造方法實(shí)驗(yàn)內(nèi)容:一、定義一個(gè)名為Circle的圓類,位于shape包中。要求如下:(1)該類需要描述圓在二維坐標(biāo)系中的位置,圓心的橫、縱坐標(biāo)值均取整數(shù);描述圓的半徑,取雙精度類型。(2)無(wú)參構(gòu)造方法將圓心坐標(biāo)設(shè)為坐標(biāo)圓點(diǎn),半徑設(shè)為1.0;有參構(gòu)造方法需要根據(jù)參數(shù)值設(shè)置圓心坐標(biāo)和半徑值。(3)提供一個(gè)計(jì)算圓面積的方法doublegetArea()。(4)提供一個(gè)判斷當(dāng)前圓對(duì)象與參數(shù)圓對(duì)象是否相交的方法(相交方式見下圖):booleanisIntersecte
2、d(Circleanother)(5)提供一個(gè)判斷當(dāng)前圓對(duì)象是否包含參數(shù)圓對(duì)象的方法(包含方式見下圖):booleancontains(Circleanother)(6)提供一個(gè)判斷當(dāng)前圓對(duì)象與參數(shù)圓對(duì)象的大小關(guān)系的方法(判斷依據(jù)是半徑,半徑之差的絕對(duì)值小于0.0001認(rèn)為相等;返回負(fù)數(shù)表示當(dāng)前圓對(duì)象小,0表示相等,正數(shù)表示當(dāng)前圓對(duì)象)intcompareTo(Circleanother)(7)提供返回當(dāng)前圓的字符串的方法,格式為:[Circle(x,y)-raduis]StringtoString()二、定義一個(gè)包含main方法的類Te
3、stCircle,位于shape包中。要求如下:(1)main方法中調(diào)用以下方法。(2)編寫靜態(tài)方法createArray,生成位置和大小均隨機(jī)的10個(gè)圓對(duì)象,置于數(shù)組中。(3)編寫靜態(tài)方法sort對(duì)這10個(gè)圓對(duì)象進(jìn)行升序排序,并輸出。(4)編寫靜態(tài)方法computeArea計(jì)算這10個(gè)圓中互不相交和包含的圓的面積之和。提交要求:打包為可以執(zhí)行的JAR文檔,其中要包含源程序文件。代碼;packageshape;/****@author華南*/publicclassCircle{privateintx;privateinty;private
4、doubleradius;publicCircle(){this(0,0,1.0);}publicCircle(intx,inty,doubleradius){this.x=x;this.y=y;this.radius=radius;}/***@returnthex*/publicintgetX(){returnx;}/***@paramxthextoset*/publicvoidsetX(intx){this.x=x;}/***@returnthey*/publicintgetY(){returny;}/***@paramytheyto
5、set*/publicvoidsetY(inty){this.y=y;}/***@returntheradius*/publicdoublegetRadius(){returnradius;}/***@paramradiustheradiustoset*/publicvoidsetRadius(doubleradius){this.radius=radius;}publicdoublegetArea(){returnradius*radius*Math.PI;}publicbooleanisIntersected(Circleanothe
6、r){doublea;doubleb;doubled;a=Math.abs(radius-another.radius);b=radius+another.radius;d=Math.sqrt((x-another.x)*(x-another.x)+(y-another.y)*(y-another.y));if(a7、ther.radius);d=Math.sqrt((x-another.x)*(x-another.x)+(y-another.y)*(y-another.y));if(0<=d&&d=0.001)returni=-1;else
8、if(e>0&&a>=0.001)returni=1;elseif(e==0
9、
10、a<0.001)returni=0;returni;}@OverridepublicStringtoString