2017小孩上学租赁合同:java的一道问题

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/01 12:57:34
• [AS0702]练习类层次结构的设计和打包。
– 定义一个抽象基类Shape,表示图形。它包含以下成员:
• 表示一个图形对象的位置的protected数据成员(可以是点对象,或坐标x、y);
• 两个public和abstract类型的方法:一个用于移动图形的方法move(),一个显示图形的方法show()。
– 从Shape派生出子类:
• 直线Line,用两个图形点表示;
• 矩形Rectangle,用对角线上的两个点表示;
• 圆Circle,用圆心和半径表示。
• 实现每个子类的toString()方法。
– 把上述类和接口都加进包as07.graphic。
• 为包as07.graphic创建归档文件mygraphic.jar(包含.java和.class文件)。
• 在包as07.graphic之外定义一个测试类TestGraphic,通过选择派生类的10个随机对象测试包as07.graphic中的类,然后为每个对象调用show()方法,在派生类中使用toString()方法
如果有解出来的,我会追加分的

你是武大java选修课的吧 ^_^ 同志啊
看老师的课件,第6课里面的例子改一下就行了
nipperhjw用的是C++,不是java
我自己做了一下,不知道对不对,仅供参考:
1.Shape.java:

package as07.graphic;
public abstract class Shape {
protected double x1,y1,x2,y2;
public abstract void move(double mov_x, double mov_y);
public abstract void show();
}

2.Line.java:
package as07.graphic;
public class Line extends Shape {
public Line (double dot1_x,double dot1_y,double dot2_x,double dot2_y) {
x1 = dot1_x ;
y1 = dot1_y ;
x2 = dot2_x ;
y2 = dot2_y ;
}
public void show () {
if ( x1 == x2 ) {
if ( y1 == y2 )
System.out.println("这是一个点 ("+x1 + ","+y1+")");
else System.out.println("直线:\tx="+x1);
}
else if ( y1 == y2 ) {
System.out.println("直线:\ty="+y1);
}
else {
float k = (float) ( ( y2 - y1 ) / (x2 -x1 ) ); // k为斜率
if (x1<0)
System.out.print("直线:\ty="+ k +"*(x+"+ (0-x1) + ")" );
else System.out.print("直线:\ty="+ k +"*(x-"+ x1 + ")" );
if (y1<0)
System.out.println( "-" + (0-y1) );
else System.out.println( "+" + y1 )
}
}
public void move (double mov_x, double mov_y) {
x1 += mov_x ;
x2 += mov_x ;
y1 += mov_y ;
y2 += mov_y ;
show();
}
public String toString() {
if ( x1 == x2 && y1==y2 )
return "这是一个点,它通过 (" +x1+","+y1+")";
else return "这是一条直线,它通过 (" +x1+","+y1+") 和 ("+x2+","+y2+")";
}
}

……太多了,其余的Rectangle.java和Circle.java仿Line.java
这个作业上周不是已经要求提交了吗?

给你类的结构,剩下的东西都很简单了,自己做吧!也得自已动动手啊!

//图形类,所有以下图形的基类
class Shape
{
public:
graphics(); //构造函数,可以自己添加一些重载
virtual void move(); //移动
virtual void show(); //显示图形
virtual void toString();
protected:
point position;// ... //一些私有变量定义
};
//直线Line,用两个图形点表示
class Line:public Shape
{
public:
Line(); //构造函数,可以自己添加一些重载
virtual void move(); //移动
virtual void show(); //显示图形
virtual void toString();
private:
point start,end;//起妈点
};
//矩形Rectangle,用对角线上的两个点表示
class Rectangle:public Shape
{
public:
Rectangle(); //构造函数,可以自己添加一些重载
virtual void move(); //移动
virtual void show(); //显示图形
virtual void toString();
private:
point lefttop, rightbottom;//矩形的左上和右下的坐标
};
//圆Circle,用圆心和半径表示
class Circle:public Shape
{
public:
Circle(); //构造函数,可以自己添加一些重载
virtual void move(); //移动
virtual void show(); //显示图形
virtual void toString();
private:
point center; //圆心坐标,是一个point对象
double r; //半径
};

现在的大学生啊!~~哎~!~ ^*^!~!