Spisu treści:

Jak możemy uczynić klasę niezmienną w Javie z polem daty?
Jak możemy uczynić klasę niezmienną w Javie z polem daty?

Wideo: Jak możemy uczynić klasę niezmienną w Javie z polem daty?

Wideo: Jak możemy uczynić klasę niezmienną w Javie z polem daty?
Wideo: Java w Pigułce (12/17) Klasy i metody 2024, Kwiecień
Anonim

Zrozumiemy, co właściwie oznaczają te wytyczne, tworząc niezmienną klasę ze zmiennym obiektem z polem Date

  1. Nie podawaj metod „ustawiających” - metod, które modyfikują pola lub przedmioty do którego odwołuje się pola .
  2. Robić wszystko pola ostateczna i prywatna.
  3. Nie zezwalaj podklasom na zastępowanie metod.

W jaki sposób możemy uczynić klasę niezmienną w Javie?

Klasa niezmienna w Javie

  1. Zadeklaruj klasę jako ostateczną, aby nie można było jej przedłużyć.
  2. Ustaw wszystkie pola jako prywatne, aby bezpośredni dostęp nie był dozwolony.
  3. Nie podawaj metod ustawiających dla zmiennych.
  4. Ustaw wszystkie pola modyfikowalne jako ostateczne, aby ich wartość można było przypisać tylko raz.
  5. Zainicjuj wszystkie pola za pomocą konstruktora wykonującego głębokie kopiowanie.

Następnie pojawia się pytanie, do czego służy immutable class w Javie? Niezmienna klasa oznacza, że po utworzeniu obiektu nie możemy zmienić jego zawartości. w Jawa , całe opakowanie zajęcia (jak Integer, Boolean, Byte, Short) i String klasa jest niezmienny . Możemy tworzyć własne klasa niezmienna także.

Ludzie pytają również, czy klasa Date jest niezmienna w Javie?

Data nie jest niezmienny , musimy wykonać kopię obronną Jawa . wykorzystaj. Data pole podczas zwracania odwołania do tej zmiennej instancji. Stwórzmy hipotetyczną osobę klasa który ma imię i rodowód jako jedyni dwaj członkowie.

Jak możemy uczynić obiekt niezmiennym?

Aby obiekt był niezmienny, musisz wykonać następujące kroki:

  1. Nie używaj żadnych metod, które mogą zmienić pola Twojej klasy. Na przykład nie używaj seterów.
  2. Unikaj używania publicznych pól innych niż końcowe. Jeśli twoje pola są publiczne, musisz zadeklarować je jako ostateczne i zainicjować je w konstruktorze lub bezpośrednio w linii deklaracji.

Zalecana: