Articles

Javaのミューテータメソッドとは何ですか?

javaのミューテータメソッドとは何か、ミューテータとアクセサメソッドを使用する利点について説明します。 すべての説明には、説明する例が含まれています。

カードイメージキャップ

この記事では、javaとアクセサメソッドでどのようなミューテータメソ さらに、mutatorメソッドとaccessorメソッドを使用する利点を理解し、いくつかのjavaの例を参照してください。

ミューテータとアクセサメソッドの概念は、オブジェクト指向プログラミングとカプセル化と密接に関連しています。 オブジェクト指向プログラミングに慣れていない場合。 私は以下の簡単な紹介が含まれていますが、詳細をご希望の場合は、ドキュメントをチェックしてください。

目次

オブジェクト指向プログラミングの要約

オブジェクト指向プログラミングは、問題のエンティティをクラスとして表 クラスには状態とメソッドがあり、状態は表現内の関連するデータを含む変数のセットです。 そして、メソッドは、私たちのクラスが実行できる操作を決定します。例えば、Circleクラスを定義することができます。

public class Circle {private float radius; public Circle(float newRadius) { this.radius = newRadius; } public double area(){ return Math.PI * Math.pow(radius, 2); } }

このクラスはcircleの概念を表しています。 Circleクラスの状態には、半径と、円の領域を返すarea()という名前のメソッドがあります。

次のコードをCircleクラスに追加してテストできます。

public static void main(String args){ Circle circle1 = new Circle(3); System.out.println(circle1.area()); }

出力:オブジェクト指向プログラミングを使用してクラスを定義し、クラスのオブジェクトcircle1Circlecircle1radius変数にアクセスする方法がないため、変更できません。 私ができることは、異なる半径を持つ新しいCircleオブジェクトを作成することだけです。 これを修正するにはどうすればよいですか?

あなたは2つのことをすることができます。

; 一つは、うまく設計されたクラスにつながり、もう一つは、設計を維持するために貧しい、挑戦につながります。 1つのオプションは、radiusフィールドをパブリックフィールドとして宣言することです。 以下の変更を参照してください。

public class Circle {public float radius; public Circle(float newRadius) { this.radius = newRadius; } public double area(){ return Math.PI * Math.pow(radius, 2); } public static void main(String args){ Circle circle1 = new Circle(3); System.out.println(circle1.radius); circle1.radius = 5; System.out.println(circle1.radius); } }

出力:

3.05.0

他のオプションは、radiusフィールドにアクセスして変更するメソッ このメカニズムはカプセル化とも呼ばれます。

JavaのMutatorメソッド定義

javaのmutatorメソッド、および任意のオブジェクト指向プログラミング言語は、クラス内の変数を変更できるメソッドです。 Privateは変数のアクセスレベルであり、変数を変更する唯一の方法はmutatorメソッドを使用することです。 このようにして、ミューテータメソッドは、クラスに保存されたデータの有効性と品質を制御することができます。

たとえば、前のコードスニペットでは、setRadius()メソッドはミューテータメソッドです。 このメソッドを変更して、データ検証を追加することができます。 たとえば、データ検証の例では、新しい半径が負の数であるかどうかを確認することができます。

Javaでのアクセサメソッド定義

アクセサメソッドは、クラスフィールドをクラス外の他のメソッドまたはクラスに読み取ることを可能にす この方法では、クライアントコードがクラスフィールドにアクセスする方法を制御できます。

ミューテータとアクセサの例

ミューテータとアクセサのメソッドを説明するためにいくつかの例を見てみましょう。 Setterとgetterは、アクセサとミューテータのメソッドを参照する別の方法です。以下に、getterをクラスに追加する方法の例を示します。 クラスはProductgetPrice()getName()pricenameであるクラス変数にアクセスすることを可能にします。そして今、私はミューテータを追加しますので、私はクラス変数にアクセスして変更することができます。上記のように、setterメソッドsetPrice()setName()には検証も含まれており、渡されたデータがいくつかの基準を満たしていることを確認しています。 たとえば、要件の1つは、価格が常にゼロを超える必要があるということです。 パラメータが有効でない場合、コードは例外をスローします。 それ以外の場合は、新しい値が割り当てられます。

ミューテータの命名規則

javaでは、これらのメソッド、アクセサ、およびミューテータの名前は特定の命名規則に従う必要があります。 これらのルールは完全に安定しているため、従うことが不可欠です。 これらの規則に従わないと、他の人があなたのコードを読んでいるときに不満や混乱を招く可能性があります。

ミューテータの命名規則から始めましょう。 メソッドはpublicとして宣言し、voidを返す必要があります。 さらに、メソッド名は小文字でsetageという変数がある場合、ミューテータメソッドは次のようになります:

public void setAge(int age){...}

アクセサの命名規則

ミューテータと一緒に、同様の命名規則に従うアクセサを見てきました。 ルールは、メソッドがpublicとして宣言されるべきであるということです。 さらに、メソッド名はgetage変数のアクセサメソッドを作成しましょう:

public int getAge(){...}

ミューテータとアクセサの利点

これまで、javaのアクセサとミューテータメソッドをいくつかの例で見てきました。 そして、これらのメソッドを宣言するときに従うべき命名規則に慣れてください。 しかし、これらの方法はどのように有用ですか? 主な利点はカプセル化です。 これは基本的に、これらのメソッドを作成することによって、クラスの内部詳細を他のコンポーネントから隠していることを意味します。 他のコンポーネントはAPI経由でのみ通信できます。

その結果、クラスはデカップリングされます; それぞれに依存しないため、チームメンバーが異なるクラスやコンポーネントを並行して作成できるため、開発を迅速に行うことができます。 維持の緩和のほかに、部品が変更することができるので他の依存した部品の小さい影響と。

結論

要約すると、この記事では、javaのミューテータメソッドとアクセサメソッドは、クラス変数の読み書きを可能にするメソッドであること 彼らの主な目的は、よくカプセル化され、互いにデカップリングされたクラスを設計するのを助けることです。私はあなたが記事が役に立つことを願って、このブログを読んで、サポートするためにそんなにありがとう!

私はあなたがこの記事を見つけ 幸せなコーディング!