Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 18 su 18
  1. #11
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    143
    avrò sicuramente fatto qualche casino io..

    codice:
    public class UsaLista {
    	public static void main(String[] args) {
    
    		Lista lista = new Lista();
    
    		Node n1 = new Node(5);
    		Node n2 = new Node(2);
    		System.out.println(n1);
    		lista.insert_front(n1);
    		lista.insert_front(n2);
    
    		lista.printList();
    
    	}
    }

  2. #12
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Originariamente inviato da vfldj
    Non va lo stesso..

    C:\...\UsaLista.java:9: error: method push_front in class Lista cannot be applied to given types;
    lista.insert_front(n1);
    ^
    required: Lista.Node
    found: Node
    reason: actual argument Node cannot be converted to Lista.Node by method invocation conversion
    Dall'errore sembra che tu abbia messo la classe Node dentro la classe Lista... è così?

    Originariamente inviato da vfldj
    Anche io farei così peccato che mi è stato richiesto di aggiungere un nodo e non un intero...
    Comunque grazie
    Quando si dice di aggiungere un nodo alla lista s'intende che la lista internamente dovrà aggiungere un nodo per contenere il nuovo elemento, ma l'interfaccia è sempre quello, l'elemento da inserire è l'intero.

  3. #13
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    143
    Dall'errore sembra che tu abbia messo la classe Node dentro la classe Lista... è così?
    Si è così, non va fatto in questo modo?
    Mi sa che delle liste allora non ho capito proprio nulla.. E' anche che ho dei file scritta dalla prof che fanno così, una classe principale Lista che all'interno contiene la classe Node.. Io ho fatto uguale..

    Quando si dice di aggiungere un nodo alla lista s'intende che la lista internamente dovrà aggiungere un nodo per contenere il nuovo elemento, ma l'interfaccia è sempre quello, l'elemento da inserire è l'intero.
    L'esercizio mi dice di creare diversi metodi tra i quali insert_front(Node): inserimento di un nodo in testa;
    Ho interpretato male io il testo?

  4. #14
    Originariamente inviato da vfldj
    Si è così, non va fatto in questo modo?
    Mi sa che delle liste allora non ho capito proprio nulla.. E' anche che ho dei file scritta dalla prof che fanno così, una classe principale Lista che all'interno contiene la classe Node.. Io ho fatto uguale..


    L'esercizio mi dice di creare diversi metodi tra i quali insert_front(Node): inserimento di un nodo in testa;
    Ho interpretato male io il testo?
    Se la professoressa fa cosi e desideri adeguarti allora nel main, quando crei i Node devi specificare dove si trova la classe Node ovvero in Lista, quindi se devi creare n1 di tipo Node fai cosi:

    Lista.Node n1 = new Lista.Node(5);

    Poi potrai passarlo nei metodi di Lista.

    Per quanto riguarda il testo dell' esercizio credo sia interpretato bene poiche specifica "Node " e non "nodo".

  5. #15
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Nel precedente post non ho dichiarato la classe interna Node come static, ma ormai non ho più i permessi per editarlo: se qualche mod che passa gentilmente lo aggiunge

    Originariamente inviato da vfldj
    Si è così, non va fatto in questo modo?
    Mi sa che delle liste allora non ho capito proprio nulla.. E' anche che ho dei file scritta dalla prof che fanno così, una classe principale Lista che all'interno contiene la classe Node.. Io ho fatto uguale..
    Si è corretto, però la prossima volta dillo che sono una dentro l'altra, nel primo post le hai postate separate

    A questo punto però, dall'esterno (quindi dal main) non basta scrivere Nodo ma bisogna scrivere Lista.Nodo, e dichiarare la classe Nodo static.
    Come vedi questo approcio, oltre a sembrarmi sbagliato, è anche più rognoso e richiede conoscenze riguardo alle classi nidificate.

    Originariamente inviato da vfldj
    L'esercizio mi dice di creare diversi metodi tra i quali insert_front(Node): inserimento di un nodo in testa;
    Ho interpretato male io il testo?
    Direi di no, anche io l'avrei interpretato così, ma a questo punto farei una chiacchierata con l'insegnante per avere delucidazioni sul motivo...

    EDIT: preceduto

  6. #16
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    143
    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

  7. #17
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    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
    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.

    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à.

  8. #18
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    143
    Originariamente inviato da Kaamos
    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.

    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à.
    Va bene, grazie ancora

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.