No, le classi nidificate possono essere statiche oppure no; del resto seguendo la filosofia del linguaggio, se avessero dovuto essere per forza statiche, si sarebbero considerate "implicitamente" statiche e non sarebbe stato necessario specificarlo; ci sono altre caratteristiche del linguaggio che seguono questo filone di pensiero, per esempio tutti i metodi di un'interfaccia sono implicitamente pubblici e non è necessario specificarlo.Originariamente inviato da vfldj
Grazie ad entrambi!
Ho modificato il main mettendo Lista.Node n1 = new Lista.Node(5) e la classe Node static.
In effetti ora funziona
Non avevo mai fatto una cosa del genere, ok quindi in pratica quando ho una classe dentro l'altra quella più interna dev'essere Statica, giusto?
Comunque siete stati gentilissimi, che pazienza che avete avuto
Grazie grazie grazie
In inglese le classi nidificate (di ogni tipo) vengono chiamate "nested classes": se sono statiche vengono chiamate "static nested classes", se non sono statiche "inner classes"; in realtà poi esistono altri due tipi di nested classes.
http://docs.oracle.com/javase/tutori...OO/nested.html
Dai un'occhiata a questo link, se qualcosa non ti è chiaro fai una piccola ricerca su Google ed eventualmente chiedi qua (se l'argomento è riconducibile direttamente al programma che stai svolgendo) o apri un nuovo thread se hai dubbi generici sulle classi nidificate.
In questo caso specifico, la classe nodo dev'essere statica perché quelle non statiche possono esistere SOLO all'interno di un'istanza della classe che le contiene, quindi nel main per creare un nodo avresti dovuto creare anche una lista (per altro con una sintassi un po' contorta per chi non ha mai utilizzato queste cose), insomma una complicazione inutile, mentre così si tratta semplicemente di una classe messa dentro un'altra per comodità.



Rispondi quotando