[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends] Re: 初めまして





前橋さん:
>Pointなんて、所詮 xと yをメンバにするクラスに過ぎ
> ないので、こんなもん使おうが使おまいが、大差ないのでは...

いっそのこと、MyPoint クラスを作ってしまうと勉強になるのでは
ないでしょうか。
JDK のソース見ながら、簡易版を作ってみてそれでも動かなければ、
それはPointクラスの問題なのか、使い方の問題なのかわかるような
気がしますが。どうでしょう。

public class Point implements java.io.Serializable {

    public int x;
    public int y;
    private static final long serialVersionUID = -5276940640259749850L;

    public Point() {
      this(0, 0);
    }
    public Point(Point p) {
      this(p.x, p.y);
    }

    public Point(int x, int y) {
      this.x = x;
      this.y = y;
    }

    public Point getLocation() {
      return new Point(x, y);
    }

    public void setLocation(Point p) {
      setLocation(p.x, p.y);
    }

    public void setLocation(int x, int y) {
      move(x, y);
    }

    public void move(int x, int y) {
      this.x = x;
      this.y = y;
    }

    public void translate(int x, int y) {
      this.x += x;
      this.y += y;
    }

    public int hashCode() {
      return x ^ (y*31);
    }

    public boolean equals(Object obj) {
      if (obj instanceof Point) {
          Point pt = (Point)obj;
          return (x == pt.x) && (y == pt.y);
      }
      return false;
    }

    public String toString() {
      return getClass().getName() + "[x=" + x + ",y=" + y + "]";
    }
}


--
Hattori Nariaki
hattori@xxxxxxxxxx