我们将为这个实验练习创建的第一个类是Bug类。Bug类的对象模拟生活在二维表面上的Bug。每个bug都包含位置信息,将bug放置在平面上的特定点上:
Private double x;私有双y;
Bug类有一个默认构造函数,它将Bug的坐标初始化为原点:
public Bug() {x = 0.0;Y = 0.0;}
创建一个名为Bug的新类,并将成员变量和此处所示的构造函数放在该类中。
bug可以做两件事:它们可以跳转到一个新的位置,它们可以打印当前位置。
为一个方法编写代码
Public void jump()
当调用时,会导致bug跳转到一个新的,随机选择的位置。要计算bug的新位置,请使用Math.random()生成一个介于0和1之间的随机双d。这将决定bug跳跃的距离。接下来,使用2*Math.PI*Math.random()生成一个介于0和2 π之间的角θ。计算新点的坐标,也就是到bug旧点的距离和角度,并使它们成为bug的新坐标。
为一个方法编写代码
Public void print()
它将错误的位置打印到System.out。
创建第二个名为BugTest的类。在这个类中编写一个main方法,完成以下工作。
print ()
方法。接下来,添加一个方法
公共双距离()
到Bug类,该类计算并返回Bug到原点的距离。
在你的BugTest类中编写一个新的main方法,它将:
为了帮助您完成这项工作,您可能会发现编写第二个方法很有用
public static double averageDistance(Bug[] A)
它计算数组A中赢博体育bug到原点的平均距离。
下面是一个Point类的代码,它可以用来表示空间中的点。
公共类点{私有双x;私有双y;Point(double xCoord,double yCoord) {x = xCoord;y = yCoord;}公共双getX(){返回x;}公共双getY(){返回y;}公共double magnitude(){返回Math.sqrt(x*x+y*y);}}
将此Point类作为新类添加到项目中。
这个类的对象被认为是不可变的,这意味着一旦它们被创建,它们的内部数据就不会改变。这个类提供了访问方法,我们可以调用这些方法来查询Point的内部状态,但是没有mutator方法,这些方法允许我们在创建对象后改变对象的内部状态。
例如,如果我们用下面的代码创建一个Point对象
Point p = new Point(2.0,0.5);
点p将保持固定在位置(2.0,0.5)。如果我们想用一个新的位置创建一个新的点,我们将不得不用一个新的对象替换原来的point对象:
p = new Point(1.7,0.6);
接下来,通过删除成员变量来修改前面编写的Bug类
Private double x;私有双y;
然后用一个新的成员变量替换它们
private点位置;
Point对象位置将存储bug的位置信息。
一旦你做了这个改变,你将需要重写Bug类的方法的大部分代码来使用location而不是x和y。根据需要重写Bug方法并再次运行程序。修改后的程序的行为应该与原始版本相似。由于您只更改了Bug对象的内部结构,因此不需要更改BugTest类中的任何代码。
一旦你得到你的程序的最终版本工作,电子邮件给我评分。