ホームページ  >  記事  >  Java  >  Javaで不変クラスを作成するにはどうすればよいですか?例を挙げて説明する

Javaで不変クラスを作成するにはどうすればよいですか?例を挙げて説明する

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-08 22:07:31331ブラウズ

How to create a immutable class in java? explain with example

Java での不変クラスの作成

不変クラスとは、インスタンスの作成後に変更できないクラスです。これは、スレッドセーフなアプリケーションを作成し、データの整合性を確保するのに役立ちます。

不変クラスの主な特徴

  • すべてのフィールドは非公開で最終的なものです。
  • setter メソッドは提供されません。
  • フィールドの初期化はコンストラクターを通じて行われます。
  • 可変オブジェクトの防御コピーは、必要に応じて返されます。

不変クラスの例

    public final class ImmutablePoint {
        private final int x;
        private final int y;

        public ImmutablePoint(int x, int y) {
            this.x = x;
            this.y = y;
        }

        public int getX() {
            return x;
        }

        public int getY() {
            return y;
        }

        // Example of returning a new instance instead of modifying the current one
        public ImmutablePoint move(int deltaX, int deltaY) {
            return new ImmutablePoint(this.x + deltaX, this.y + deltaY);
        }
    }

使用例

    public class Main {
        public static void main(String[] args) {
            ImmutablePoint point1 = new ImmutablePoint(1, 2);
            System.out.println("Point1: (" + point1.getX() + ", " + point1.getY() + ")");

            // Moving the point creates a new instance
            ImmutablePoint point2 = point1.move(3, 4);
            System.out.println("Point2: (" + point2.getX() + ", " + point2.getY() + ")");
            System.out.println("Point1 remains unchanged: (" + point1.getX() + ", " + point1.getY() + ")");
        }
    }

結論

Java で不変クラスを作成するには、final フィールドを持ち、セッター メソッドを持たないクラスを定義する必要があります。これにより、オブジェクトが作成されると、その状態は変更できなくなります。不変クラスを使用すると、特に同時プログラミングのシナリオにおいて、より安全で予測可能なコードが得られます。

以上がJavaで不変クラスを作成するにはどうすればよいですか?例を挙げて説明するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。