フィールド(メンバ変数)とメソッド

オブジェクト指向プログラミング(OOP)の基本概念の一つである「フィールド(メンバ変数)とメソッド」について詳しく説明します。


フィールド(メンバ変数)

フィールドとは、クラスが持つ**データの状態や属性(プロパティ)**を表す変数のことです。
「メンバ変数」とも呼ばれ、クラスの内部に定義され、インスタンスごとに保持されるデータです。

特徴

  • 各インスタンス(オブジェクト)ごとに独立した値を持つ。

  • クラスの外からアクセスする場合、アクセス修飾子(privatepublicなど)に従う。

  • クラス全体で共有する静的なフィールドはstatic修飾子を付ける。

例(Java風)

java
class Person { String name; // フィールド(名前) int age; // フィールド(年齢) }

上記のPersonクラスには、nameageという2つのフィールドがあり、個々のPersonインスタンスが自分のnameageを持ちます。


メソッド

メソッドは、クラスに属する処理(振る舞い)を定義する関数です。
インスタンスのフィールドを利用した処理を行ったり、外部からの操作を受け付けたりするために使われます。

特徴

  • インスタンスメソッドは、インスタンスが生成されて初めて使用できる。

  • クラスに共通する処理には、staticメソッドを使う。

  • 他のオブジェクトとのメッセージのやり取りの手段として利用される。

例(Java風)

java
class Person { String name; int age; void introduce() { System.out.println("私は" + name + "です。年齢は" + age + "歳です。"); } }

このintroduceメソッドは、フィールドnameageを使って自己紹介を出力する処理を実行します。


フィールドとメソッドの関係

  • フィールドはデータを表す

  • メソッドはデータに対する処理や操作を定義する

この2つを組み合わせることで、データと振る舞いを1つの単位(=オブジェクト)にまとめるというオブジェクト指向の核心的な思想が実現されます。これを**カプセル化(Encapsulation)**と呼びます。


補足:アクセサ(getter)とミューテータ(setter)

データの直接操作を避けるために、フィールドはprivateにして、外部からのアクセスはメソッドを通じて行うのが一般的です。

java
class Person { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }

このようにすることで、データの保護と制御が可能になります。


以上が「フィールド(メンバ変数)」と「メソッド」の概要です。オブジェクト指向プログラミングでは、これらを通じてデータと操作を一体化した設計が行われます。

生成日:2025/06/01