Java 入門

ホーム > Java の基本 > クラス定義とオブジェクト

クラス定義とオブジェクト

スポンサーリンク

クラス定義

最も基本的なクラス定義は次のようになります。

class クラス名 {
     // ここにフィールド、コンストラクタ、メソッドを書く
}

継承するクラス、実装するインターフェイスがある場合は次のように書きます。

class クラス名 extends スーパークラス implements インターフェイス {
     // ここにフィールド、コンストラクタ、メソッドを書く
}

スパークラスはひとつだけ指定できます。インターフェイスはカンマで区切り複数指定できます。

それでは、具体的な例として「人」を表す Person クラスというのを実装してみましょう。

public class Person {

     // フィールド
     private int age;
     private String name;
     
     // コンストラクタ
     public Person( int a, String n ) {
          age = a;
          name = n;
     }
     
     public void setAge( int a ) {
          age = a;
     }
     
     public void setName( String n ) {
          name = n;
     }
     
     public int getAge() {
          return age;
     }
     
     public String getName() {
          return name;
     }
     
}

Person クラスには、年齢を表す age フィールド、名前を表す name フィールドがあります。 コンストラクタで age と name を初期化することもできますし、それぞれのアクセサメソッドで値を設定、取得することもできます。

メソッドは可変個の引数を受け取ることもできます。例えば、多角形クラスで頂点の数が様々な数である場合などで、 利用できます。

コンストラクタ

コンストラクタはクラスのオブジェクトを生成するときに呼ばれる特別なメソッドです。 コンストラクタにパラメータを渡すことで、オブジェクト生成時にオブジェクトを初期化できます。

さらに、Person クラスを継承して従業員 (Employee) クラスを定義しましょう。 従業員クラスには従業員 ID という属性を持たせましょう。

public class Employee extends Person {

     private int employeeID;

     public Employee( int a, String n, int eid ) {
          super( a, n );
          employeeID = eid;
     }

     public void setEmployeeID( int eid ) {
          employeeID = eid;
     }

     public int getEmployeeID() {
          return employeeID;
     }

}

従業員 (Employee) は人 (Person) です。そのため、Employee は Person を継承しています (「is-a の関係」といいます)。 Employee クラスは Person クラスよりも、従業員 ID というデータが増えているにもかかわらず、 Person クラスよりもコードは短くなっていますね。

コンストラクタの中で、super という特別なメソッドを呼び出しています。これはスーパークラスのコンストラクタを呼び出すためのものです。

また、パラメータ違いの複数のコンストラクタを実装することもできます。あるコンストラクタから、他のコンストラクタを呼ぶ場合は、 this(パラメータ, ...) を使います。

変数の初期化に関してもう少し詳しく知りたい方は、「変数の初期化」 をお読みください。

オブジェクトの生成

クラスのインスタンス (オブジェクト) を作成するには new キーワードを使います。

クラス名 変数名 = new クラス名 (コンストラクタへのパラメータ);

Employee クラスを利用するテストプログラムを作成します。

public class EmployeeTestApp1 {

     public static void main(String[] args) {

          Employee p = new Employee( 20, "Ichiro Suzuki", 100 );

          System.out.println( p.getAge() );
          System.out.println( p.getName() );
          System.out.println( p.getEmployeeID() );

     }

}

実行結果は次のとおりです。

20
Ichiro Suzuki
100

確かに Person クラス (スーパークラス) のメソッドも、Employee クラスのメソッドも呼び出せています。

スポンサーリンク
ホーム > Java の基本 > クラス定義とオブジェクト