home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1998 February / VPR9802A.ISO / APP_DEMO / VC / MAIN.BIN / Point.java < prev    next >
Text File  |  1997-10-27  |  4KB  |  146 lines

  1. /*
  2.  * @(#)Point.java    1.12 97/01/27
  3.  * 
  4.  * Copyright (c) 1995, 1996 Sun Microsystems, Inc. All Rights Reserved.
  5.  * 
  6.  * This software is the confidential and proprietary information of Sun
  7.  * Microsystems, Inc. ("Confidential Information").  You shall not
  8.  * disclose such Confidential Information and shall use it only in
  9.  * accordance with the terms of the license agreement you entered into
  10.  * with Sun.
  11.  * 
  12.  * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
  13.  * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  14.  * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
  15.  * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
  16.  * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
  17.  * THIS SOFTWARE OR ITS DERIVATIVES.
  18.  * 
  19.  * CopyrightVersion 1.1_beta
  20.  * 
  21.  */
  22. package java.awt;
  23.  
  24. /**
  25.  * A point representing a location in (x, y) coordinate space.
  26.  *
  27.  * @version     1.12, 01/27/97
  28.  * @author     Sami Shaio
  29.  */
  30. public class Point implements java.io.Serializable {
  31.     /**
  32.      * The x coordinate.
  33.      */
  34.     public int x;
  35.  
  36.     /**
  37.      * The y coordinate.
  38.      */
  39.     public int y;
  40.  
  41.     /*
  42.      * JDK 1.1 serialVersionUID 
  43.      */
  44.     private static final long serialVersionUID = -5276940640259749850L;
  45.  
  46.     /**
  47.      * Constructs and initializes a Point initialized with (0, 0).
  48.      */
  49.     public Point() {
  50.     this(0, 0);
  51.     }
  52.  
  53.     /**
  54.      * Constructs and initializes a Point with the same location as
  55.      * the specified Point.
  56.      * @param p a point
  57.      */
  58.     public Point(Point p) {
  59.     this(p.x, p.y);
  60.     }
  61.  
  62.     /**
  63.      * Constructs and initializes a Point from the specified x and y 
  64.      * coordinates.
  65.      * @param x the x coordinate
  66.      * @param y the y coordinate
  67.      */
  68.     public Point(int x, int y) {
  69.     this.x = x;
  70.     this.y = y;
  71.     }
  72.  
  73.     /**
  74.      * Returns the location of this point.
  75.      * This method is included for completeness, to parallel the
  76.      * getLocation method of Component.
  77.      */
  78.     public Point getLocation() {
  79.     return new Point(x, y);
  80.     }    
  81.  
  82.     /**
  83.      * Changes the point to have the specificed location.
  84.      * This method is included for completeness, to parallel the
  85.      * setLocation method of Component.
  86.      * @param p  the new location for the point
  87.      */
  88.     public void setLocation(Point p) {
  89.     setLocation(p.x, p.y);
  90.     }    
  91.  
  92.     /**
  93.      * Changes the point to have the specificed location.
  94.      * This method is included for completeness, to parallel the
  95.      * setLocation method of Component.
  96.      * @param x  the x coordinate of the new location
  97.      * @param y  the y coordinate of the new location
  98.      */
  99.     public void setLocation(int x, int y) {
  100.     move(x, y);
  101.     }    
  102.  
  103.     /**
  104.      * Changes the point to have the specified location.
  105.      * @param x  the x coordinate of the new location
  106.      * @param y  the y coordinate of the new location
  107.      */
  108.     public void move(int x, int y) {
  109.     this.x = x;
  110.     this.y = y;
  111.     }    
  112.  
  113.     /**
  114.      * Translates the point.
  115.      */
  116.     public void translate(int x, int y) {
  117.     this.x += x;
  118.     this.y += y;
  119.     }    
  120.  
  121.     /**
  122.      * Returns the hashcode for this Point.
  123.      */
  124.     public int hashCode() {
  125.     return x ^ (y*31);
  126.     }
  127.  
  128.     /**
  129.      * Checks whether two pointers are equal.
  130.      */
  131.     public boolean equals(Object obj) {
  132.     if (obj instanceof Point) {
  133.         Point pt = (Point)obj;
  134.         return (x == pt.x) && (y == pt.y);
  135.     }
  136.     return false;
  137.     }
  138.  
  139.     /**
  140.      * Returns the String representation of this Point's coordinates.
  141.      */
  142.     public String toString() {
  143.     return getClass().getName() + "[x=" + x + ",y=" + y + "]";
  144.     }
  145. }
  146.