Try using it in your preferred language.

English

  • English
  • 汉语
  • Español
  • Bahasa Indonesia
  • Português
  • Русский
  • 日本語
  • 한국어
  • Deutsch
  • Français
  • Italiano
  • Türkçe
  • Tiếng Việt
  • ไทย
  • Polski
  • Nederlands
  • हिन्दी
  • Magyar
translation

To jest post przetłumaczony przez AI.

제이온

[Efektywny Java] Element 4. Aby zapobiec tworzeniu instancji, użyj prywatnego konstruktora

  • Język pisania: Koreański
  • Kraj referencyjny: Wszystkie kraje country-flag

Wybierz język

  • Polski
  • English
  • 汉语
  • Español
  • Bahasa Indonesia
  • Português
  • Русский
  • 日本語
  • 한국어
  • Deutsch
  • Français
  • Italiano
  • Türkçe
  • Tiếng Việt
  • ไทย
  • Nederlands
  • हिन्दी
  • Magyar

Tekst podsumowany przez sztuczną inteligencję durumis

  • Podczas tworzenia klasy pomocniczej, która zawiera tylko metody statyczne i pola, konstruktor powinien być prywatny, aby zapobiec tworzeniu instancji.
  • Zapewnia to, że nikt nie będzie mógł wywołać konstruktora z zewnątrz klasy, a także pozwala na jawne sterowanie publicznym konstruktorem domyślnym generowanym przez kompilator.
  • Prywatny konstruktor uniemożliwia dziedziczenie, co pozwala ograniczyć zamierzone użycie klas pomocniczych i zwiększyć czytelność kodu.

Czasami przydatne jest użycie klasy zawierającej tylko statyczne metody i pola statyczne.


Typowymi przykładami są klasy pomocnicze, takie jak java.lang.Math, java.util.Arrays, które grupują metody związane z operacjami matematycznymi lub tablicami. Możliwe jest również zgromadzenie statycznych metod fabrycznych tworzących obiekty implementujące konkretny interfejs, na przykład java.util.Collections.


Tego typu klasy pomocnicze nie wymagają zmiennych ani metod instancji, więc konstruktor nie jest wymagany. Jeśli jednak konstruktor nie zostanie jawnie zdefiniowany, kompilator automatycznie utworzy publiczny konstruktor domyślny. W rezultacie użytkownik nie jest w stanie rozróżnić, czy konstruktor został utworzony automatycznie.


Aby temu zapobiec, można zastosować klasę abstrakcyjną, ale nie można stworzyć instancji klasy abstrakcyjnej. Wystarczy stworzyć podklasę i stworzyć instancję tej podklasy.


public abstract class Person {

    public static void speak(String message) {
        System.out.println(message);
    }
}

public class Student extends Person {

    public Student() {
        super();
    }


Dlatego aby zapobiec tworzeniu instancji klasy pomocniczej, należy ustawić modyfikator dostępu konstruktora na private.


public abstract class Person {

    private Person() {
        throw new AssertionError();
    }

    public static void speak(String message) {
        System.out.println(message);
    }


Ustawienie modyfikatora dostępu konstruktora na private oznacza, że ​​nie można uzyskać do niego dostępu z zewnątrz klasy. Dodatkowo, wyjątek zostanie wygenerowany, jeśli konstruktor zostanie wywołany wewnętrznie.


Takie prywatne konstruktory mogą być trudne do zrozumienia dla użytkowników, dlatego warto dodać komentarze. Należy również pamiętać, że zablokowanie konstruktora za pomocą modyfikatora private uniemożliwia dziedziczenie.


Źródło

제이온
제이온
제이온
제이온
[Efektywny Java] Element 5. Użyj wstrzykiwania zależności zamiast jawnego zarządzania zasobami Jeśli klasa zależy od zewnętrznych zasobów, lepiej nie używać singletonów ani statycznych klas narzędzi. Wstrzykiwanie zależności może poprawić elastyczność, ponowne użycie i łatwość testowania klasy, a wzorzec fabryki metod może prowadzić do bardziej wyd

28 kwietnia 2024

[Efektywny Java] Punkt 2. Jeśli konstruktor ma wiele parametrów, rozważ użycie buildera Użycie wzorca buildera podczas tworzenia obiektów z wieloma parametrami może uczynić kod bardziej przejrzystym i czytelnym. Tworzysz obiekt buildera z parametrami obowiązkowymi, a następnie używasz metod setter do ustawienia parametrów opcjonalnych i w ko

27 kwietnia 2024

[Java] Koncepcja refleksji i sposób użycia Refleksja to API, które udostępnia dostęp do informacji o klasach w trakcie wykonywania programu Java, umożliwiając manipulowanie klasami. W czasie wykonywania można tworzyć klasy, uzyskiwać dostęp do pól i metod, ale należy zachować ostrożność, ponieważ

25 kwietnia 2024

[Javascript] Struktura obiektu (V8) Obiekt JavaScript w silniku V8 jest optymalizowany jak struktura w zależności od stanu, przełączając się między szybkim trybem i trybem słownika, który działa jako mapa skrótów. Szybki tryb jest szybki, gdy klucz i wartość są prawie stałe, ale może spowol
곽경직
곽경직
곽경직
곽경직
곽경직

18 marca 2024

[Bez stopnia, przetrwać jako programista] 14. Podsumowanie często zadawanych pytań na rozmowach kwalifikacyjnych dla początkujących programistów Przewodnik po przygotowaniu do rozmów kwalifikacyjnych dla programistów. Wyjaśnia takie pojęcia często pojawiające się podczas rozmów jak: obszary pamięci głównej, struktury danych, RDBMS i NoSQL, programowanie proceduralne i obiektowe, nadpisywanie i prz
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자

3 kwietnia 2024

Modelowanie danych koncepcyjnych Modelowanie danych koncepcyjnych to proces oddzielania jednostek i przedstawiania relacji między nimi w postaci diagramu ERD. Jednostki to niezależne jednostki informacji, a atrybuty to dane posiadane przez jednostki. Identyfikator jednoznacznie identyfik
제이의 블로그
제이의 블로그
제이의 블로그
제이의 블로그

8 kwietnia 2024

[Nie będąc specjalistą, przetrwanie jako programista] 7. Co pomaga, a co nie pomaga w znalezieniu pracy w nowym zawodzie Przy przygotowywaniu się do pracy jako programista, blogi techniczne są mało efektywne, ale GitHub jest zalecany do zarządzania projektami i udostępniania kodu źródłowego. Spośród różnych certyfikatów warto zdecydowanie przygotować się do egzaminu na Inży
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자

29 marca 2024

[Bez specjalistycznego wykształcenia, jako programista] 17. Portfolio dla początkującego programisty, do jakiego stopnia? Portfolio dla początkującego programisty powinno koncentrować się na umiejętnościach programistycznych. Zamiast implementować infrastruktury, lepiej skupić się na dopracowaniu podstawowych funkcji CRUD i zdobyciu doświadczenia w integracji z zewnętrznymi
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자

3 kwietnia 2024

Modelowanie danych fizycznych Modelowanie danych fizycznych to proces projektowania tabel relacyjnych baz danych w celu uczynienia ich użytecznymi w praktyce. Osiąga się to poprzez optymalizację wydajności poprzez efektywne wykorzystanie przestrzeni dyskowej, partycjonowanie danych, p
제이의 블로그
제이의 블로그
제이의 블로그
제이의 블로그
제이의 블로그

9 kwietnia 2024