Quote Originariamente inviata da Mrk31 Visualizza il messaggio
Intendevo che pur essendo due concetti nettamente distinti Singleton e Classe statica si "somigliano":
- Non sono "istanziabili"
- l'idea di utilizzo è che molti oggetti possano utilizzare la "stessa istanza" senza passarla come parametro, ma solo importandola
- vengono utilizzati in modo simile
es. CalsseStatica.metodo() Singleton.getInstance().metodo();
La differenza principale è che la classe statica viene inizializzata "Subito ed in ogni caso", mentre il Singleton in modo "Lazy".

Quindi potrebbero esserci casi in cui entrambi potrebbero essere "sovrapponibili/intercambiabili/entrambiValidi"...
No.

Una classe "static" (ripeto: deve essere "membro" di un'altra classe) PUO' essere istanziata.
Una nested static class ha gli stessi identici principi (stesse regole, stesso ciclo di vita, ecc...) di una classe "top-level" (non contenuta dentro qualcosa). È semplicemente da vedere come se fosse in un "namespace" che è fatto dalla classe top-level che la contiene.

codice:
public class TopLevel {
    // ....

    public static class Nested {
        // ....
    }
}

Per poterla istanziare dall'esterno devi fare: new TopLevel.Nested()

Tutto qui. Per il resto cambia nulla come regole e concetti.

P.S. deduco che hai le idee un po' confuse su questo argomento.