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