Sobes.tech
Junior — Middle

Millised piirangud on privaatsete konstruktorite kasutamisel klassides?

sobes.tech AI

Vastus AI-lt

Privaatsed konstruktorid klassides on järgmised piirangud:

  • Neid ei saa väljast klassist kutsuda, see tähendab, et objekti selle klassi kohta ei saa luua new operaatoriga väljaspool klassi.
  • Tavaliselt kasutatakse mustrite, näiteks Singleton, rakendamiseks või klasside loomisel, millel on statiliste meetodite kogum (abikäsklassid).
  • Privaatse konstruktoriga klassi ei saa pärida, kuna alamklassid ei saa kutsuda baasklasside konstruktorit.

Näide privaatse konstruktoriga Singletoni kasutamisest:

public class Singleton {
    private static final Singleton instance = new Singleton();

    private Singleton() {
        // privaatne konstruktor
    }

    public static Singleton getInstance() {
        return instance;
    }
}

Seega piirab privaatne konstruktor objektide loomist ainult klassi sees ja keelab nende loomise väljaspool klassi.