フィールドとメソッド

オブジェクトを作成するためのクラスでは、そのオブジェクトが持つデータや処理を定義します。クラスの中で定義するデータのことをフィールド、処理のことをメソッドと呼びます。ここでは、オブジェクト指向におけるフィールドとメソッドについて解説します。

フィールドとメソッド

オブジェクトの設計図だるクラスには、オブジェクトが持つデータや処理を定義します。クラスの中で定義される「データ」のことをフィールド(field)、「処理」のことをメソッド(method)と呼びます。

フィールドはオブジェクトに関するデータ(例:名前や価格など)を定義し、メソッドはオブジェクトに行わせる処理(例:データを表示したり更新するなど)を定義します。

フィールドとは

フィールドとは、クラスの中で定義する変数のことです。オブジェクトが持つデータを保存するのに使用します。フィールドは「メンバ変数」と呼ばれることもあります。

例として自動車を表す Car クラスで考えてみます。自動車には色々なデータがありますが、今回作成するクラスでは名前と販売価格の 2 つのデータを持たせることにしました。この場合、 Car クラスでは名前と販売価格という 2 つのフィールドを持ちます。

class Car {
  String name;   // フィールド
  double price;  // フィールド
}

同じ Car クラスから複数のオブジェクトを作成した場合でも、それぞれのオブジェクトのフィールドの値は異なる場合があります。

メソッドとは

メソッドとは、クラスの中で定義する処理のことです。オブジェクトに対して行う操作を定義します。メソッドは「メンバメソッド」と呼ばれることもあります。

先ほどの自動車を表す Car クラスで考えてみます。今回作成するクラスでは販売価格を表示するメソッドと名前を返す処理を定義することにしました。この場合、 Car クラスでは showPrice() と getName() の 2 つのメソッドを持ちます。

class Car {
  String name;
  double price;

  void showPrice() {      // メソッド
    System.out.println(price);
  }

  String getName() {      // メソッド
    return name;
  }
}

オブジェクトに対してメソッドを呼び出すことで、オブジェクトにあらかじめ定義した処理を実行させることができます。

フィールドとメソッドの利用

オブジェクトのフィールドに値を設定したり、オフジェクトのメソッドを呼び出したりするには、作成したオブジェクトに対して「.(ドット)」を使ってアクセスします。

先ほどの Car クラスからオブジェクトを作成し、そのオブジェクトのフィールドに値を設定したり、メソッドを呼び出したりしてみます。

public class Sample {
  public static void main(String[] args) {

    Car myCar = new Car();

    myCar.name = "アクエリアス";   // フィールドへ代入
    myCar.price = 3200;        // フィールドへ代入

    myCar.showPrice();         // メソッド呼び出し
    System.out.println(myCar.getName());
  }
}

class Car {
  String name;
  double price;

  void showPrice() {
    System.out.println(price);
  }

  String getName() {
    return name;
  }
}

フィールドへのアクセスは myCar.name や myCar.price のように行い、メソッドの呼び出しは myCar.showPrice() や myCar.getName() のようにして呼び出しています。

なお今回のサンプルは簡潔にするために直接フィールドへ値を設定できるようにしていますが、このように外部から直接フィールドの値を変更できてしまうと予期せぬ値が代入される可能性があります。その為、フィールドの値を直接操作できないようにしておき、メソッドを通してのみフィールドの値を操作できるようにすることが多いです。このあたりのお話はカプセル化のページで詳しく解説します。

-- --

オブジェクト指向におけるフィールドとメソッドについて解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。