Rectpublic class Rect extends Object This class represents a rectangle. Its fields represent the coordinates
of the corners of the rectangle. Its methods define operations that can
be performed on Rect objects. |
Fields Summary |
---|
public int | x1 | public int | y1 | public int | x2 | public int | y2 |
Constructors Summary |
---|
public Rect(int x1, int y1, int x2, int y2)The is the main constructor for the class. It simply uses its arguments
to initialize each of the fields of the new object. Note that it has
the same name as the class, and that it has no return value declared in
its signature.
this.x1 = x1;
this.y1 = y1;
this.x2 = x2;
this.y2 = y2;
| public Rect(int width, int height)This is another constructor. It defines itself in terms of the one above this(0, 0, width, height);
| public Rect()This is yet another constructor. this(0, 0, 0, 0);
|
Methods Summary |
---|
public Rect | intersection(Rect r)Return the intersection of this rectangle with another.
I.e. return their overlap.
Rect result = new Rect((this.x1 > r.x1) ? this.x1 : r.x1,
(this.y1 > r.y1) ? this.y1 : r.y1,
(this.x2 < r.x2) ? this.x2 : r.x2,
(this.y2 < r.y2) ? this.y2 : r.y2);
if (result.x1 > result.x2) { result.x1 = result.x2 = 0; }
if (result.y1 > result.y2) { result.y1 = result.y2 = 0; }
return result;
| public boolean | isInside(int x, int y)Test whether the specified point is inside the rectangle
return ((x >= x1) && (x <= x2) && (y >= y1) && (y <= y2));
| public void | move(int deltax, int deltay)Move the rectangle by the specified amounts
x1 += deltax; x2 += deltax;
y1 += deltay; y2 += deltay;
| public java.lang.String | toString()This is a method of our superclass, Object. We override it so that
Rect objects can be meaningfully converted to strings, can be
concatenated to strings with the + operator, and can be passed to
methods like System.out.println()
return "[" + x1 + "," + y1 + "; " + x2 + "," + y2 + "]";
| public Rect | union(Rect r)Return the union of this rectangle with another. I.e. return the
smallest rectangle that includes them both.
return new Rect((this.x1 < r.x1) ? this.x1 : r.x1,
(this.y1 < r.y1) ? this.y1 : r.y1,
(this.x2 > r.x2) ? this.x2 : r.x2,
(this.y2 > r.y2) ? this.y2 : r.y2);
|
|