首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >逻辑卡在我的项目中

逻辑卡在我的项目中
EN

Stack Overflow用户
提问于 2013-06-21 04:48:00
回答 1查看 85关注 0票数 0

因为我之前的问题是关于arrayoutofbound的,所以错误解决了,但是被否决了(没有恶意:D,但这是我的第一个问题,所以你应该期待一些“错误”)。不管怎样,我会用一个新的问题再试一次。这是我在我的编程II实验课考试中的一个专题练习。首先,它需要一个名为Point的类来描述2d空间中具有x和y坐标的点(小菜一碟)。

此外,它需要一个名为Line的类(一条线通常由2维空间中的2个点组成)(这是否意味着line类一定要继承Point类?)并且描述了具有2个点的2-d空间中的线(也是小菜一碟)。此外,它还需要一个名为void MoveLine(Point,Point)的方法,该方法将移动这条线(这里开始使用stuck :D)。

最后需要创建一个主类,使用3个对象A,B,C作为点(使用Point类中的2个构造函数),然后在屏幕上打印Point B的信息。之后,它需要创建两个对象D,E作为线,并用0值初始化线D,使用点A和B初始化线E。要继续,它需要在屏幕上打印线E的信息(到目前为止还不错),但它希望我们以一种与点(1,1)交叉点c的方式移动线E。这是我的问题所在。最后,它让我们在屏幕上打印E行的新信息。你能给我指出正确的方向吗?谢谢!

下面是我到目前为止创建的完整代码,以避免像我上一个问题中那样的混乱。

代码语言:javascript
复制
public class Point {
    protected double x;
    protected double y;

    public Point() {
        //First constructor-no arguments
    }

    public Point(double x1, double y1) {
        //Second constructor-2 arguments
        x = x1;
        y = y1;
    }

    public void setX(int x1) {
        x = x1;
    }

    public double getX() {
        return x;
    }

    public void setY(int y1) {
        y = y1;
    }

    public double getY() {
        return y;
    }

    public String toString() {
        return "("+x+","+y+")";
    }
}

类线

代码语言:javascript
复制
public class Line extends Point{
    private Point pStart;
    private Point pEnd;

    public Line() {
        //First constructor-no arguments
    }

    public Line(Point p1, Point p2) {
        //Second constructor-2 arguments
        pStart = p1;
        pEnd = p2;
    }

    public void setStartPoint(Point p1) {
        pStart = p1;
    }

    public Point getStartPoint() {
        return pStart;
    }

    public void setEndPoint(Point p2) {
        pEnd = p2;
    }

    public Point getEndPoint() {
        return pEnd;
    }

    public String toString() {
        return "Line's start point: "+pStart.toString()+"\t"+"Line's end point:    "+pEnd.toString();
    }

    public void MoveLine(Point p, Point mp) {
        //My problem :D 
        p.x += mp.x;
        p.y += mp.y;
    }
}

主类

代码语言:javascript
复制
public class TestProgram {
    public static void main(String[] args) {
        Point A = new Point();
        Point B = new Point(4,5);
        Point C = new Point(1,1);
        Point zeroStartPoint = new Point(0,0);
        Point zeroEndPoint = new Point(0,0);

        A.setX(8);
        A.setY(13);

        System.out.println("Point B: "+B.toString());

        Line D = new Line();
        Line E = new Line(A,B);

        D.setStartPoint(zeroStartPoint);
        D.setEndPoint(zeroEndPoint);

        System.out.println("Line E: "+"\n"+E.toString());

         MoveLine(E.pStart,);   //WTF? my problem no.2

        System.out.println("Line E: "+"\n"+E.toString());

        /* As you can see my problem is more about logic 
           and less about programming. Any ideas? */
    }
}

感谢您花时间阅读这篇文章。我期待着你的回复。

EN

回答 1

Stack Overflow用户

发布于 2013-06-21 05:05:08

继续我的评论,移动E行以包含(即交叉)点(1,1)的一个非常简单的方法是将 pStart或pEnd更改为等于(1,1)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17223484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档