首頁 > Java > java教程 > 如何在java中建立不可變類別?舉例說明

如何在java中建立不可變類別?舉例說明

Patricia Arquette
發布: 2024-10-08 22:07:31
原創
424 人瀏覽過

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

Creating an Immutable Class in Java

An immutable class is a class whose instances cannot be modified after they are created. This is useful for creating thread-safe applications and ensuring data integrity.

Key Characteristics of an Immutable Class

  • All fields are private and final.
  • No setter methods are provided.
  • Initialization of fields occurs through the constructor.
  • Defensive copies of mutable objects are returned when necessary.

Example of an Immutable Class

    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);
        }
    }
登入後複製

Usage Example

    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() + ")");
        }
    }
登入後複製

Conclusion

Creating an immutable class in Java involves defining a class with final fields and no setter methods. This ensures that once an object is created, its state cannot be changed. Using immutable classes can lead to safer and more predictable code, especially in concurrent programming scenarios.

以上是如何在java中建立不可變類別?舉例說明的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板