作业帮 > 综合 > 作业

定义一个类LOCATION,用数据成员x,y表示该类对象在二维坐标系的坐标位置

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/04 18:14:36
定义一个类LOCATION,用数据成员x,y表示该类对象在二维坐标系的坐标位置
用函数成员move移动对象坐标位置,然后以类LOCATION为基类派生出点类POINT再利用点类POINT派生出圆类CIRCLE.定义点类和圆类相应的move和draw函数.在主函数中定义各类的对象并调用成员函数以测试功能.
非常感谢高手的指点哈~
public abstract class Location {
public abstract double getX();
public abstract double getY();
public abstract void move(double x,double y);
public abstract void draw();
}
public class Point extends Location {
private double x;
private double y;
public Point() {
\x09this.x = 0;
\x09this.y = 0;
}
public Point(double x,double y) {
\x09this.x = x;
\x09this.y = y;
}
@Override
public double getX() {
\x09return x;
}
@Override
public double getY() {
\x09return y;
}
@Override
public void move(double x,double y) {
\x09this.x = x;
\x09this.y = y;
\x09
\x09System.out.println("move to Point:(" + this.getX() + "," + this.getY() + ")");
}
@Override
public void draw() {
\x09System.out.println("draw positon:(" + this.getX() + "," + this.getY() + ")");
\x09
}
}
public class Circle extends Location {
private Point point;
private double radius;
public Circle() {
\x09this.point = new Point();
\x09radius = 10;
}
public Circle(Point point,double radius) {
\x09this.point = point;
\x09this.radius = radius;
}
@Override
public double getX() {
\x09return point.getX();
}
@Override
public double getY() {
\x09return point.getY();
}
@Override
public void move(double x,double y) {
\x09this.point.move(x,y);
}
@Override
public void draw() {
\x09System.out.println("draw positon:Point (" + this.getX() + "," + this.getY() + "),radius= " + this.getRadius());
}
public double getRadius() {
return radius;
}
public void setRadius(double radius) {
this.radius = radius;
}
}
测试类
public class MyTest {
public static void main(String[] args) {
\x09Point p1 = new Point();
\x09Point p2 = new Point(88,86.55);
\x09p1.draw();
\x09p1.move(120.87,66.34);
\x09p2.draw();
\x09p2.move(666,777);
\x09
\x09Circle c1 = new Circle();
\x09c1.draw();
\x09c1.move(22,33);
\x09Circle c2 = new Circle(new Point(55,66),33);
\x09c2.draw();
\x09c2.move(888,999);
}
}
此处的draw不是真的画图哦
再问: @Override 这个是什么意思啊? 我才学c++不久 还不是很清楚啊 还有还有 这道题用虚函数怎么做啊 能给点提示么? 谢谢 谢谢呦~^_^
再答: @override有注释文档的作用 但它对于编程粗心的人可是个很人性化的功能 如果想重写父类的方法,比如toString()方法的话,在被重载的方法前面加上@Override ,这样编译的时候系统可以帮你检查方法的正确性 呵呵,这个对于初学者来说,可以不用考虑,没事。 我这个是Java的代码。