# Class Point2D

• `java.lang.Object`
• `java.awt.geom.Point2D`
Implemented Interfaces:
Cloneable
Known Direct Subclasses:
Point, Point2D.Double, Point2D.Float

`public abstract class Point2D`
`extends Object`
`implements Cloneable`

This class implements a generic point in 2D Cartesian space. The storage representation is left up to the subclass. Point includes two useful nested classes, for float and double storage respectively.
Since:
1.2

## Nested Class Summary

`static class`
`Point2D.Double`
This class defines a point in `double` precision.
`static class`
`Point2D.Float`
This class defines a point in `float` precision.

## Constructor Summary

`Point2D()`
The default constructor.

## Method Summary

` Object`
`clone()`
Create a new point of the same run-time type with the same contents as this one.
` double`
`distance(double x, double y)`
Return the distance from this point to the given one.
`static double`
`distance(double x1, double y1, double x2, double y2)`
Return the distance between two points.
` double`
`distance(Point2D p)`
Return the distance from this point to the given one.
` double`
`distanceSq(double x, double y)`
Return the square of the distance from this point to the given one.
`static double`
`distanceSq(double x1, double y1, double x2, double y2)`
Return the square of the distance between two points.
` double`
`distanceSq(Point2D p)`
Return the square of the distance from this point to the given one.
` boolean`
`equals(Object o)`
Compares two points for equality.
`abstract double`
`getX()`
Get the X coordinate, in double precision.
`abstract double`
`getY()`
Get the Y coordinate, in double precision.
` int`
`hashCode()`
Return the hashcode for this point.
`abstract void`
`setLocation(double x, double y)`
Set the location of this point to the new coordinates.
` void`
`setLocation(Point2D p)`
Set the location of this point to the new coordinates.

### Methods inherited from class java.lang.Object

`clone`, `equals`, `extends Object> getClass`, `finalize`, `hashCode`, `notify`, `notifyAll`, `toString`, `wait`, `wait`, `wait`

## Constructor Details

### Point2D

`protected Point2D()`
The default constructor.

## Method Details

### clone

`public Object clone()`
Create a new point of the same run-time type with the same contents as this one.
Overrides:
clone in interface Object
Returns:
the clone

### distance

```public double distance(double x,
double y)```
Return the distance from this point to the given one.
Parameters:
`x` - the x coordinate of the other point
`y` - the y coordinate of the other point
Returns:
the distance

### distance

```public static double distance(double x1,
double y1,
double x2,
double y2)```
Return the distance between two points.
Parameters:
`x1` - the x coordinate of point 1
`y1` - the y coordinate of point 1
`x2` - the x coordinate of point 2
`y2` - the y coordinate of point 2
Returns:
the distance from (x1,y1) to (x2,y2)

### distance

`public double distance(Point2D p)`
Return the distance from this point to the given one.
Parameters:
`p` - the other point
Returns:
the distance
Throws:
`NullPointerException` - if p is null

### distanceSq

```public double distanceSq(double x,
double y)```
Return the square of the distance from this point to the given one.
Parameters:
`x` - the x coordinate of the other point
`y` - the y coordinate of the other point
Returns:
the square of the distance

### distanceSq

```public static double distanceSq(double x1,
double y1,
double x2,
double y2)```
Return the square of the distance between two points.
Parameters:
`x1` - the x coordinate of point 1
`y1` - the y coordinate of point 1
`x2` - the x coordinate of point 2
`y2` - the y coordinate of point 2
Returns:
(x2 - x1)^2 + (y2 - y1)^2

### distanceSq

`public double distanceSq(Point2D p)`
Return the square of the distance from this point to the given one.
Parameters:
`p` - the other point
Returns:
the square of the distance
Throws:
`NullPointerException` - if p is null

### equals

`public boolean equals(Object o)`
Compares two points for equality. This returns true if they have the same coordinates.
Overrides:
equals in interface Object
Parameters:
`o` - the point to compare
Returns:
true if it is equal

### getX

`public abstract double getX()`
Get the X coordinate, in double precision.
Returns:
the x coordinate

### getY

`public abstract double getY()`
Get the Y coordinate, in double precision.
Returns:
the y coordinate

### hashCode

`public int hashCode()`
Return the hashcode for this point. The formula is not documented, but appears to be the same as:
``` long l = Double.doubleToLongBits(getY());
l = l * 31 ^ Double.doubleToLongBits(getX());
return (int) ((l >> 32) ^ l);
```
Overrides:
hashCode in interface Object
Returns:
the hashcode

### setLocation

```public abstract void setLocation(double x,
double y)```
Set the location of this point to the new coordinates. There may be a loss of precision.
Parameters:
`x` - the new x coordinate
`y` - the new y coordinate

### setLocation

`public void setLocation(Point2D p)`
Set the location of this point to the new coordinates. There may be a loss of precision.
Parameters:
`p` - the point to copy
Throws:
`NullPointerException` - if p is null