Wie lässt sich sicherstellen, dass nur ein Objekt einer Klasse erstellt werden kann?

Indem die Objektbildung in der Klasse selbst erfolgt und das Objekt als statische Instanz abgerufen werden kann.

Der Konstruktor der Klasse wird private deklariert. Somit ist kein Zugriff von außen möglich und eine Objektbildung unterbunden. Ein Objekt der Klasse wird jedoch als statisches, finales, nach außen unsichtbares Feld erstellt. Der Zugriff hierauf wird durch eine getter-Methode - hier getInstance() gewährleistet.

public class Singleton {
    private static final Singleton OBJ = new Singleton();
     
      private Singleton() {
          System.out.println("Objekt gebildet...");
      }
          
      public static Singleton getInstance() {
        return OBJ;
      }
}

Ein Aufruf erfolgt über die statische Methode:

Singleton s = Singleton.getInstance();

und liefert immer das gleiche Objekt.

Wenn Ihnen javabeginners.de gefällt, freue ich mich über eine Spende an diese gemeinnützigen Organisationen.