クラス


オブジェクト: 属性(値)とメソッド(手続き、動作)を記憶するメ モリ領域
クラス:     オブジェクトを生成するためのテンプレート(雛 形)
インスタンス: クラスをメモリ上に実態として配置したオブジェクト

クラスの定義

      class クラス名 {
          変数の宣言
          コンストラクタの宣言
          メソッドの宣言
      }


[例] クラス Point

01    public class Point {
02        double x, y;                      // 変数
03        Point(double x, double y) {       // コンストラクタ
03            this.x = x;
04            this.y = y;

05        }
06        Point() { this(0.0,0.0); }
07
       /*  メソッドの宣言  */
08
       public void setPoint(double x, y) {
09            this.x = x;
10            this.y = y;
11        }
12        public void translatePoint(double a, double b) {
13            x += a;
14            y += b;
15        }
16        public double getX() { return x; }
17        public double getY() { return y; }
18    }

変数     

02行:
属性としてdouble形の変数 x, y を持つ

コンストラクタ

クラス定義に従ってオブジェクトを生成する際に、変数の初期化を行う関数
C++言語とは異なり、Java言語にはデストラクタはない

03, 06行:
オーバーロードされたコンストラクタ
Point(x, y)
Point()
オーバーロード
名前が同じでも引数が異なる関数が複数存在する

メソッド

setPoint(x,y)       -- (x,y)にセットする
translatePoint(x,y) -- 現在の位置から(x,y)だけ平行移動する
double getX()       -- x座標の値を返す
double getY()       -- y座標の値を返す



クラスの利用


01  public static class Example2 {
02    static void main(String[] args) {
03      Point p1 = new Point();
04      System.out.println("p1: x="+p1.getX()+", y="+p1.getY());
05      p1.setPoint(2.0, 1.0);
06      System.out.println("p1: x="+p1.getX()+", y="+p1.getY());
07      Point p2 = new Point(1.0,2.0);
08      System.out.println("p2: x="+p2.getX()+", y="+p2.getY());
09      p2.translatePoint(2.0,5.0);
10      System.out.println("p2: x="+p2.getX()+", y="+p2.getY());
11    }
12  }

03, 07行:
クラスPointのインスタンス化
new -- new演算子により、変数p1, p2にオブジエクト(作成されたインスタンス)への参照が代入される。

newオペレータ
04行:
p1.getX() --  オブジェクト(p1)のメソッド(getX())を呼び出す。
"p1: x="+p1.getX()+... -- 「+」演算子により文字列を連結している。
"p1: x="が文字列であるので、形の自動変換機能により、p1.getX()はdoubleからStringに変換された後、文字列として連結される。


new 演算子

コンストラクタを使用してクラスのインスタンスを作成する(インスタンス化)

01    Point p1 = new Point();
02    Point p2 = new Point(2.0,1.0);
03    Point p3;
04    Point p4 = p2;

new演算子で生成されるインスタンス

上の例では、