Java toString不起作用

惯性9

我对月食有个赞扬,它从点(p1,p2,p3,...,p10)计算矩形,高度和宽度。

我的积分是这样打印的:

Point@659e0bfd, Point@2a139a55, Point@15db9742, Point@6d06d69c, Point@7852e922, Point@4e25154f, Point@70dea4e, Point@5c647e05, Point@33909752, Point@55f96302

您能告诉我它看起来如何吗?我不明白这些toString方法。其余代码看起来不错吗?

    import java.util.ArrayList;
import java.util.List;

public class App {      //new public class App


    public static void main(String[] args) {

        Point p1 = new Point(10.681,-48.857);   // new Points (x,y)
        Point p2 = new Point(96.980,20.724);
        Point p3 = new Point(66.647,-66.558);
        Point p4 = new Point(-2.674,-58.571);
        Point p5 = new Point(40.11,-12.342);
        Point p6 = new Point(27.782,46.809);
        Point p7 = new Point(54.759,-46.709);
        Point p8 = new Point(-33.89,-90.787);
        Point p9 = new Point(15.84,-67.553);
        Point p10 = new Point(19.481,51.331);


        List<Point> list1 = new ArrayList<Point>(); // Create ArrayList and add Points
        list1.add(p1);
        list1.add(p2);
        list1.add(p3);
        list1.add(p4);
        list1.add(p5);
        list1.add(p6);
        list1.add(p7);
        list1.add(p8);
        list1.add(p9);
        list1.add(p10);

        public String toString() {
            return Point;

        }

        new BoundingBox(list1);
        double c = BoundingBox.height();
        double d = BoundingBox.width();

        System.out.println("Das Array beinhaltet die Punkte" + list1 ); // This prints: "Das Array beinhaltet die Punkte" and the list
        System.out.println("Die BoundingBox hat die Hohe " + c + " und die Breite " + d + "\n" );   // This prints the height and the width
        System.out.println("Der maximale Punkt der BBox betragt (" + BoundingBox.getMaxPoint() +")." ); // This prints:
        System.out.println("Der minimale Punkt der BBox betragt (" + BoundingBox.getMinPoint() +")." ); // This prints:


    }
}

边界框

import java.util.List;

public class BoundingBox {      //new class BoundingBox
private static Point minPoint;      //new 
private static Point maxPoint;


public BoundingBox(List<Point> manyPoints) {
    double minX = manyPoints.get(0).getX();
    double maxX = manyPoints.get(0).getX();
    double minY = manyPoints.get(0).getY();
    double maxY = manyPoints.get(0).getY();

    for (int i = 0; i < manyPoints.size(); i++) {
        Point test = manyPoints.get(i);
        test.getX();

        if (test.getX() < minX) {
            minX = test.getX();     

        }

        if (test.getX() > maxX) {
            maxX = test.getX();
        }

        if (test.getY() < minY) {
            minY = test.getY();

        }

        if (test.getY() > maxY) {
            maxY = test.getY();

        }

        minPoint = new Point(minX, minY);
        maxPoint = new Point(maxX, maxY);

    }
}

public static double width() {
    double a = (maxPoint.getX() - minPoint.getX());     // calculate the width
    return a;
}

public static double height() {
    double b = (maxPoint.getY() - minPoint.getY());     // calculate the width
    return b;
}

public static Point getMaxPoint() {
    return maxPoint;
}

public static Point getMinPoint() {
    return minPoint;
}

}

观点

public class Point {


private double x;  
private double y;

public Point(double xnew, double ynew) { 
    x = xnew;
    y = ynew;
}

public double getX() {  
    return x;
}

public void setX(double xnew) {
    x = xnew;
}

public double getY() {
    return y;
}

public void setY(double ynew) {
    y = ynew;
}




}

您应该toString在Point类中重写

public class Point {
    ...
    @Override
    public String toString ()
    {
        return x + "," + y; // or whatever you wish to display
    }
    ...
}

哦,目前尚不清楚您打算在App课堂上做什么

    public String toString() {
        return Point;

    }

这甚至不应该通过编译。除非你要打印的App情况下,你不必重写toStringApp

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章