Javaのゲッターとセッターの説明

ゲッターとセッターは、特にクラスを作成するときにデータを保護するために使用されます。

インスタンス変数ごとに、getterメソッドはその値を返し、setterメソッドはその値を設定または更新します。これを考えると、ゲッターとセッターはそれぞれアクセサーミューテーターとしても知られています

慣例により、ゲッターは「get」という単語で始まり、セッターは「set」という単語で始まり、その後に変数名が続きます。どちらの場合も、変数名の最初の文字は大文字になります。

public class Vehicle { private String color; // Getter public String getColor() { return color; } // Setter public void setColor(String c) { this.color = c; } }

getterメソッドは、属性の値を返します。setterメソッドはパラメーターを受け取り、それを属性に割り当てます。

ゲッターとセッターが定義されたら、メインでそれを使用します。

public static void main(String[] args) { Vehicle v1 = new Vehicle(); v1.setColor("Red"); System.out.println(v1.getColor()); } // Outputs "Red"

ゲッターとセッターを使用すると、値を制御できます。実際に値を設定する前に、セッターで指定された値を検証できます。

なぜゲッターとセッターを使用するのですか?

ゲッターとセッターを使用すると、コード内で重要な変数にアクセスして更新する方法を制御できます。たとえば、次のセッターメソッドについて考えてみます。

public void setNumber(int number) { if (number  10) { throw new IllegalArgumentException(); } this.number = num; }

このsetNumberメソッドを使用することで、の値numberが常に1から10の間であることを確認できます。これは、number変数を直接更新するよりもはるかに優れています。

obj.number = 13;

number直接更新すると、コードのどこかで意図しない副作用が発生する可能性があります。ここで、number13に設定すると、確立したい1から10の制約に違反します。

numberプライベート変数を作成してsetNumberメソッドを使用すると、これが発生するのを防ぐことができます。

一方、の値を読み取る唯一の方法numberは、getterメソッドを使用することです。

public int getNumber() { return this.number; }