簡體   English   中英

如何移動點並打印新位置?

[英]How can I move a point and print the new position?

我是Java的新手,我收到了一個賦值,要求我編寫一個名為PointerTester的類,它有兩個Point作為實例變量。 我需要在坐標(0.0,0.0)和一個在(10.0,12.0)初始化其中一個。 然后我需要將每個點移動x中的+2.0和Y中的-3.0,查詢點的坐標,並打印出值。

到目前為止我有這個:

public class PointerTester{
/*instance variables*/
    private double pointOneX;
    private double pointOneY;
    private double pointTwoX;
    private double pointTwoY;
    private double deltaX;
    private double deltaY;

    /*constructor to initialize*/
    public PointerTester (){
        pointOneX = 0.0;
        pointOneY = 0.0;
        pointTwoX = 10.0;
        pointTwoY = 12.0;
        deltaX = 2.0;
        deltaY = -3.0;
    }

    /*constructor to initialize to specific value*/
    PointerTester(double pointOneX, double pointOneY, double pointTwoX, double pointTwoY){
        this.pointOneX = pointOneX;
        this.pointOneY = pointOneY;
        this.pointTwoX = pointTwoX;
        this.pointTwoY = pointTwoY;
    }

    /*command to change value*/
    public void moveBy(double deltaX, double deltaY){
        this.pointOneX = this.pointOneX + deltaX;
        this.pointOneY = this.pointOneY + deltaY;
        this.pointTwoX = this.pointTwoX + deltaX;
        this.pointTwoY = this.pointTwoY + deltaY;
    }

    /*Queries*/
    public double getOneX(){
        return pointOneX;
    }
    public double getOneY(){
        return pointOneY;
    }
    public double getTwoX(){
        return pointTwoX;
    }
    public double getTwoY(){
        return pointTwoY;
    }
    /*print values*/
    public static void main(String[] args){
        PointerTester pointOne = new PointerTester();
        PointerTester pointTwo = new PointerTester();
        System.out.println("Point One after move (" + pointOne + ")");
        System.out.println("Point Two after move (" + pointTwo + ")");
    }
}

我無法弄清楚如何正確輸出值,或者我是否完全錯誤地解決了這個問題。

編輯似乎我需要使用我最初認為應該是獨立的代碼

public class Point{
    public double x;
    public double y;


    public Point(double x, double y){
        this.x = x;
        this.y = y;
    }
    public void setX(double x){
        this.x = x;
    }
    public void setY(double y){
        this.y = y;
    }
    public double getX(){
        return x;
    }
    public double getY(){
        return y;
    }
}

如何將其合並到我的代碼中?

我認為要開始你應該有一個名為“Point”的單獨的類,它封裝了一個X和Y值,並包含一個“moveBy”方法。 它還可以實現“toString()”,這樣“System.out.println”將為它打印一些不錯的東西。 [編輯:或者只使用java.awt.Point。]

除此之外,我會把它留給你作為你的功課。

您可能想要使用一些Point對象。

Point p1 = new Point(); 點p2 =新點(10,12);

然后,您可以使用點類中的setLocation或translate方法。 也許整件事看起來像這樣? 希望這可以幫助。

main(){

//make some points
Point p1 = new Point();
Point p2 = new Point(10,12);

//move our points
p1.translate(2,-3);
p2.translate(2,-3);

//print our points
System.out.println(p1);
System.out.println(p2);
}

您可以實現toString方法。 這里有一些例子: http//www.javapractices.com/topic/TopicAction.do?Id=55

您正在嘗試打印PointerTester對象而不是其中包含的值。 System.out.println(pointOne.getOneX())至少應該停止拋出異常並允許您正確打印。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM