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

Dies ist ein von KI übersetzter Beitrag.

제이온

[Effektives Java] Artikel 4. Verwenden Sie einen privaten Konstruktor, um die Instanziierung zu verhindern

  • Schreibsprache: Koreanisch
  • Referenzland: Alle Länder country-flag

Sprache auswählen

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

Von durumis AI zusammengefasster Text

  • Wenn Sie eine Utility-Klasse mit statischen Methoden und Feldern erstellen, müssen Sie den Konstruktor privat machen, um die Instanziierung zu verhindern.
  • Dadurch wird verhindert, dass der Konstruktor von außerhalb der Klasse aufgerufen wird, und Sie können den vom Compiler automatisch generierten öffentlichen Standardkonstruktor explizit steuern.
  • Ein privater Konstruktor verhindert die Vererbung, wodurch die beabsichtigte Verwendung der Utility-Klasse eingeschränkt und die Lesbarkeit des Codes verbessert wird.

Manchmal ist es sinnvoll, Klassen zu verwenden, die nur statische Methoden und statische Felder enthalten.


Ein typisches Beispiel dafür sind Utility-Klassen wie java.lang.Math, java.util.Arrays, die Methoden für mathematische Operationen bzw. Arrays zusammenfassen. Oder java.util.Collections, die statische Factory-Methoden für die Erstellung von Objekten, die eine bestimmte Schnittstelle implementieren, zusammenfassen.


Diese Utility-Klassen benötigen keinen Konstruktor, da sie keine Instanzvariablen oder Methoden haben, die benutzt werden könnten. Wenn man aber keinen Konstruktor angibt, erstellt der Compiler automatisch einen öffentlichen Standardkonstruktor. Daher kann der Benutzer nicht erkennen, ob der Konstruktor automatisch generiert wurde.


Um dies zu verhindern, werden Utility-Klassen manchmal als abstrakte Klassen definiert. Allerdings kann man abstrakte Klassen nicht instanziieren, da man einfach eine Unterklasse erstellen und sie instanziieren kann.


public abstract class Person {

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

public class Student extends Person {

    public Student() {
        super();
    }


Um die Instanziierung einer Utility-Klasse zu verhindern, sollte man den Zugriffsschutz des Konstruktors auf private setzen.


public abstract class Person {

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

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


Wenn der Zugriffsschutz des Standardkonstruktors auf private gesetzt ist, kann man von außerhalb der Klasse nicht darauf zugreifen. Außerdem wurde sichergestellt, dass der Standardkonstruktor nicht innerhalb der Klasse aufgerufen werden kann, da eine Ausnahme ausgelöst wird.


Diese privaten Konstruktoren können aus Anwendersicht schwer zu verstehen sein, daher ist es sinnvoll, sie mit Kommentaren zu versehen. Es ist anzumerken, dass das Blockieren des Konstruktors durch private auch die Vererbung unmöglich macht.


Quelle

제이온
제이온
제이온
제이온
[Effektives Java] Punkt 5: Verwenden Sie Dependency Injection anstelle von expliziten Ressourcen Wenn eine Klasse von externen Ressourcen abhängt, sollten Singleton- und statische Utility-Klassen vermieden werden. Durch Dependency Injection können Sie die Flexibilität, Wiederverwendbarkeit und Testbarkeit der Klasse verbessern. Die Verwendung des Fac

28. April 2024

[Effektives Java] Item 1. Statische Fabrikmethoden in Betracht ziehen Statische Fabrikmethoden sind eine flexible und effiziente Möglichkeit, Instanzen zu erstellen, anstatt Konstruktoren zu verwenden. Sie können benannt werden, Instanzen zurückgeben, die bestimmten Bedingungen entsprechen, und die Leistung durch Caching ve

27. April 2024

[Effektives Java] Artikel 3. Garantieren Sie Singleton mit einem privaten Konstruktor oder einem Aufzähltyp Dieser Artikel stellt drei Methoden zur Implementierung des Singleton-Musters in Java vor (öffentliches statisches Mitglied, statische Fabrikmethode, Aufzähltyp) und erläutert die Vor- und Nachteile jeder Methode sowie Vorsichtsmaßnahmen bei der Serialisi

27. April 2024

[Javascript] Objektstruktur (V8) Das JavaScript-Objekt wird in der V8-Engine je nach Zustand als strukturierte, optimierte Fast-Mode oder als Hashmap-basierter Dictionary-Mode dargestellt. Der Fast-Mode ist schnell, wenn Schlüssel und Werte fast fixiert sind, aber bei der Hinzufügung neu
곽경직
곽경직
곽경직
곽경직
곽경직

18. März 2024

Wie Rust Konsistenzfehler verhindert Rust ist eine leistungsstarke Sprache, die die Herausforderungen der konkurrenten Programmierung bewältigt. Dank des Typsystems und des Besitzmodells ist der Datenaustausch und die gemeinsame Nutzung zwischen Threads sicher. Durch Muster der internen Vari
곽경직
곽경직
곽경직
곽경직
곽경직

28. März 2024

Konzeptionelles Datenmodellieren Konzeptionelles Datenmodellieren ist der Prozess, Entitäten zu trennen und die Beziehungen zwischen Entitäten in einem ERD darzustellen. Entitäten sind unabhängige Informationseinheiten, und Attribute sind die Daten, die eine Entität besitzt. Ein Bezeichn
제이의 블로그
제이의 블로그
제이의 블로그
제이의 블로그

8. April 2024

[Nicht-Fachmann, Überleben als Entwickler] 9. Websites, die sich gut für Portfolios eignen Dieser Artikel stellt drei Arten von Websites vor, die sich gut als Bewerbungs-Portfolio für Empfänger von staatlichen Förderungen oder Bootcamp-Teilnehmer eignen. Sie können eine firmeninterne Groupware, ERP oder ein internes Personalmanagementsystem ent
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자

30. März 2024

Logisches Datenmodellieren Logisches Datenmodellieren ist der Prozess der Transformation eines konzeptionellen Datenmodells in das relationale Datenbankparadigma unter Verwendung von Mapping-Regeln. Dabei werden 1:1-, 1:N- und N:M-Beziehungen verarbeitet und die Datenintegrität dur
제이의 블로그
제이의 블로그
제이의 블로그
제이의 블로그
제이의 블로그

9. April 2024

Kollaborationswerkzeuge, Slack-Kanäle verwalten Dieser Artikel bietet Tipps zur Verwaltung von Slack-Kanälen. Sie können allgemeine Chats, Ankündigungen, öffentliche und private Kanäle für verschiedene Abteilungen, projektbezogene Kanäle usw. effektiv betreiben, basierend auf der Größe und Kultur Ihres
여행가고싶은블로거지만여행에대해다루진않을수있어요
여행가고싶은블로거지만여행에대해다루진않을수있어요
Bild zur Organisation von Slack-Kanälen
여행가고싶은블로거지만여행에대해다루진않을수있어요
여행가고싶은블로거지만여행에대해다루진않을수있어요

8. Februar 2024