アクセサー/ゲッター - インスタンス変数の値を検査するために使用されるパブリック メソッド クライアントがクラスを使用できるようにするために、ADT の実装者は、多くの場合、ユーザーが「見る」ことができるようにする 1 つ以上のパブリック関数を提供する必要があります (検査) オブジェクトのプライベート インスタンス変数の現在の値。これらの「読み取り専用」タイプのメソッドは、アクセサー関数と呼ばれます。
たとえば、クラス TwoDice の 2 つの適切なアクセサ関数は getDice1() と getDice2() で、サイコロの 1 つの現在の値を見つけるために使用できます。getDice1() の定義は次のとおりです。
public int getDice1()
{
return dice1 ;
}
getDice2() の同様の定義を使用します。以下に示すように、これらの関数を使用して、最初のサイコロの値を整数変数 valueOfDie1 に格納できます。
TwoDice roll = new TwoDice() ;
int valueOfDie1 = roll.getDice1() ;
メソッド呼び出し roll.getDice1() では、オブジェクト roll が現在のオブジェクト (メソッドが呼び出されるオブジェクト) であるため、このオブジェクトに getDice1() を適用すると値 roll.dice1 が返されます。
Mutators /Setters - インスタンス変数の値を変更するために使用されるパブリック メソッド。ミューテーターには、インスタンス変数の値が許容範囲を超えないようにするためのデータ検証を含める必要があります。たとえば、TwoDice クラスには、TwoDice オブジェクトが作成されると、その値を変更できないという興味深いプロパティがあります。クライアント コードで変更できるようにするパブリック メソッドは提供されていません。このようなオブジェクトは不変であると言われます。つまり、一度作成すると変更することはできません。多くの Java 独自のクラスには、不変オブジェクトのみを提供するというこのプロパティがあります。そのような 2 つの例は、String クラスと Color クラスです。
クラス デザイナーは、多くの場合、ミューテーターまたはセッター メソッドと呼ばれるものを提供して、クライアント コードがオブジェクトの値を変更できるようにします。これは、個人データのセキュリティを侵害する可能性があるため、潜在的に危険です。したがって、ADT の実装者は、属性 (インスタンス変数) の値が許容値の範囲内で適切に設定されるように、適切なデータ検証を提供することが不可欠です。TwoDice クラスの適切なミューテーター メソッドは setDice1( int n ) と setDice2( int n ) であり、これらの最初の定義を以下に示します。
public void setDice1( int n )
{
assert (n >= 1) && (n <= 6) : "value of dice1 out of range: " + n ;
dice1 = n ;
}
ここで興味深いのは、偽と評価された場合にプログラムの実行が終了するアサーションの使用です。