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);

