定义一个描述平面坐标系统中点及其操作的类Point.(Java)

1个回答

  • public class Point {

    private double x;

    private double y;

    public Point(double x, double y){

    this.x = x;

    this.y = y;

    }

    public double getX() {

    return x;

    }

    public double getY() {

    return y;

    }

    public void shiftPoint(double w, double h){

    x += w;

    y += y;

    }

    public boolean pointEquals(Point point){

    if(point.x == x && point.y == y)

    return true;

    return false;

    }

    public void whatQuadrant(){

    int a = 1;

    if( x < 0 && y > 0)

    a = 2;

    else if(x < 0 && y < 0)

    a = 3;

    else if(x > 0 && y < 0 )

    a = 4;

    if( x == 0 && y == 0 )

    System.out.println("点("+x+","+y+")在原点");

    else if(x == 0 && y !=0 )

    System.out.println("点("+x+","+y+")在Y轴");

    else if( y == 0 && x != 0 )

    System.out.println("点("+x+","+y+")在X轴");

    else

    System.out.println("点("+x+","+y+")在第"+a+"象限");

    }

    public double findDistance(Point p){

    BigDecimal b = new BigDecimal(Double.toString(Math.sqrt(Math.pow(x - p.x, 2) + Math.pow(y - p.y, 2))));

    return b.setScale(2, BigDecimal.ROUND_CEILING).doubleValue();

    }

    public String toString(){

    return "("+x+","+y+")";

    }

    public static void main(String [] args){

    Point p =new Point(3,2);

    System.out.println("x="+p.getX()+"y="+p.getY());

    p.pointEquals(new Point(3,2));

    p.shiftPoint(5,6);

    System.out.println("x="+p.getX()+"y="+p.getY());

    p.whatQuadrant();

    System.out.println(p.findDistance(new Point(0,0)));

    System.out.println(p.toString());

    }

    }