欢迎来到天天文库
浏览记录
ID:11598273
大小:34.50 KB
页数:7页
时间:2018-07-12
《java使用对象详解》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、让我们建立一个例子来实现一些简单的二维图形,这将会给我们一个使用更多类的机会。我们定义两个类;一个是点对象类,另一个是线对象类,然后使用这两个类确定线的交点。我们将称此例子为TryGenmetry,因此你要将程序文件存储在该名字的目录或文件夹下。该例子中包括了大量的代码行,我们将逐步地把它们集中在一起,并且试着理解每段代码的执行过程。试试看--Point类我们首先为点对象定义一个很基本的类:classPoint{//Coordinatesofthepointdoublex;doubley;//Createapointfromcoordinatespoint(doublexVal,dou
2、ble,yVal){x=xVal;y=yVal;}//CreateapointfromanotherPointobjectPoint(finalPointoldPoint)(x=oldPoint.x;//Copyxcoordinatey=oldPoint.y;//Copyycoordinate}//Moveapointvoidmove(doublexDelta,doubleyDelto){//Parametervaluesareincrementstothecurrentcoordinatesx+=xDelte;y+=yDelte;}//Calculatethediscancetoan
3、otherpoinedoubledistance(fina)PointaPoint{return(x-aPoint.x)*(x-aPoint.x)+(y+aPoint.y)*(y-apoint,y);}//Convertapointtoastringpublicstringtostring(){rsturnDouble.tostring()}}应该将Point.java保存到目录TryGeometry中。如何操作这是一个简单的类,它仅有两个实例变量x和Y,作为Point对象的坐标。在此,我们有两个构造函数:一个是通过自变量传递一对数值来建立一个点;另一个是根据一个己存在的点来建立一个新
4、的Point对象。在类中包含有三个方法。第一个是move方法,它可以为每个坐标值加上一个增量来将Point移动到另一个位置上。另一个是distance()方法,它可以计算从当前的Point对象到自变量传入的Point对象之间的距离。这个方法应用勾股定理计算距离,如下图所示。最后一个是toString()方法,它可以返回一个描述当前点坐标的字符串。如果一个类定义了toString)方法,那么这个类的对象就可以作为字符串连接运算符十的一个操作数,因此,你可以在任何类中实现这个方法,并使对象按照这种方式应用。在必要的时候,编译器将自动地插入一个对toString()的调用。例如,假定theP
5、oint是一个Point类型的对象,我们编写语句system.put.println(Thepointisat+thePoint);taString()方法将被自动地调用来把thePoint型转换为String型。其结果将被追加到String文字中。我们己经把taString()方法说明为public,在这里要让这个类能够通过编译,这样处理是必要的。我们将在本章稍后解释其原因。注意,我们是如何使用定义在类Double中的静态toStringf()方法,将x的值转换成String型的。编译器将为"+"操作左面的操作数y自动地插入一个对相同方法的调用,来把它转换成String对象。试试看-
6、-Line类我们可以在Line类中定义使用Point对象:ClassLine{pointstart//Startpointoflinepointend//Endpointofline//Createalinefromtwopointsline(finalPointstart,finalPointend)(this.start=newPoint(Start);this.end=newpoint(end);)//CreatealineformtwocoordinatepairsLine(doublexStart.doubleystart,doublexEnd,doubleyEnd){sta
7、rt=newpoint(xStart,ystart);//Createthestartpoint通常你应该避免在两个对象之间存在这种隐含地依赖关系。在Line类的toStrins方法中,我们可以在一个Line对象的String表示形式中直接地使用Point对象,这是因为Point类也定义了toString方法。我们现在已经定义了两个类。在这些类定义中,包括了定义每个类对象的基本数据。我们还定义了一些被认为很有用的方法,并且增加了几个有不同输入参
此文档下载收益归作者所有