面相对象的设计

本文详细介绍了如何使用Java创建表示三维坐标中点的类,并实现计算两点间距离及方法重载的功能。通过实例展示了构造方法、设置方法、获取距离方法及方法重载的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*

         时间:2011年11月15日9:45:52;

         目的:定义一个Point类,来表示三维坐标中的点,要求如下:

                                     1.可以生成具有特定坐标的点的对象;

                                     2.可以提供设定坐标的点的方法;

                                     3.可以提供计算该点到坐标原点的距离的方法。

*/

public class Point{

         privateint x;

         privateint y;

         privateint z;

        

         Point(int_x,int _y,int _z){

                   x= _x;

                   y= _y;

                   z= _z;

         }

        

         publicvoid setX(int xPoint){

                   x= xPoint;

         }

        

         publicvoid setY(int yPoint){

                   y= yPoint;

         }

        

         publicvoid setZ(int zPoint){

                   z= zPoint;

         }

        

         publiclong getDistance(Point p){

                   return(x - p.x)*(x - p.x) + (y - p.y)*(y - p.y) + (z - p.z)*(z - p.z);

         }

        

         publicstatic void display(Point p){           //显示坐标信息;

                   System.out.println("("+p.x+","+p.y+","+p.z+")");

         }

        

         publicstatic void main(String[] args){

                   Pointa = new Point(1,1,1);

                   display(a);

                   Pointp = new Point(0,0,0);

                   System.out.println(a.getDistance(p));

                  

                   a.setX(6);

                   a.setY(8);

                   a.setZ(10);

                   display(a);

                   System.out.println(a.getDistance(newPoint(0,0,0)));

         }

}

/*

         运行结果:

         --------------------------

         (1,1,1)

         3

         (6,8,10)

         200

         --------------------------

         总结:

         这个程序,一开始只能定义出构造方法,和set()方法,其他的比如计算平方和与显示坐标都不会写。计算平方和的方法是看视频学会的,但是显示坐标的方法

视频中没有,而且我写的也有问题。我开始时照着自己的思路写的,但是编译的时候提示我要采用static,我就照着用了,结果成功了。如果不用static

我还没想出来。

*/

 

/*

         时间:2011年11月15日10:23:11;

         目的:方法的重载

*/

public class Overload{

                   voidmax(int a,int b){

                            System.out.println(a>b?a:b);

                   }

                  

                   voidmax(float a,float b){

                            System.out.println(a>b?a:b);

                   }

                  

                   voidmax(short a,short b){

                            System.out.println(a>b?a:b);

                   }

                  

         publicstatic void main(String[] args){

                   Overloada = new Overload();

                   a.max(1.0f,2.3f);

         }

}

/*

         结果:

         -------------------

         2.3

         -------------------

         总结:

         刚开始写的时候,我定义了两个类,即把max()方法写在一个Test类中,把main()方法写在Overload类中,但是编译的时候老是通不过。编译器总是要我把

Test声明成public,但是我明明是这么做的。后来看老师的视频,从头到位只有一个类,我修改了一下,成功了。

         还有一个问题,我刚开始的时侯在max()中写的是max(1.0,2,3),编译出错了。float类型的数据后面一定要加f标识。

*/

 

/*

         时间:2011年11月15日11:00:14;

         目的:构造方法的重载

*/

public class TestOverload{

         publicstatic void main(String[] args){

                   Persona = new Person();

                   a.info();

                   Personb = new Person(4);

                   b.info();

                   Personc =new Person(3,14);

                   c.info("c");

         }

}

 

class Person{

         Person(){

                   id= 1;

                   age= 20;

         }

        

         Person(int_id){

                   id= _id;

                   age= 23;

         }

        

         Person(int_id,int _age){

                   id= _id;

                   age= _age;

         }

        

         voidinfo(){

                   System.out.println(id+""+age);

         }

        

         voidinfo(String s){

                   System.out.println(s+""+id+" "+age);

         }

        

         intid;

         intage;

}

/*

         运行结果:

         ------------------------

         120

         423

         c3 14

         ------------------------

         总结;

         这个程序编的很顺利,没出问题。现在在想一个问题:在一个程序中出现两个类,是不是要把含有main()方法的类放在最前面呢?

*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值