Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di angelo85ct
    Registrato dal
    Dec 2007
    Messaggi
    322

    Chi mi puo spiegare il motivo dell'output di questo esempio??

    Chi mi puo spiegare il motivo dell'output di questo esempio??

    codice:
    public class Student { public String name; …}
    public class GradStudent extends Student {
    String name; // adombramento del campo della superclasse
    public GradStudent(String name) {this.name = name;
    }
    void twoNames() {
    System.out.println(”Student: " + name);
    System.out.println(”Grad Student: " + super.name);
    }
    public static void main (String [] args){
    GradStudent fred = new GradStudent("Fred");
    fred.twoNames();
    }
    }
    Output:
     Student: fred
     Grad Student: null
    perchè esce null?? e su student fred??

    Student: fred
     Grad Student: nul

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502

    Re: Chi mi puo spiegare il motivo dell'output di questo esempio??

    Originariamente inviato da angelo85ct
    Chi mi puo spiegare il motivo dell'output di questo esempio??

    codice:
    public class Student { public String name; …}
    public class GradStudent extends Student {
    String name; // adombramento del campo della superclasse
    public GradStudent(String name) {this.name = name;
    }
    void twoNames() {
    System.out.println(”Student: " + name);
    System.out.println(”Grad Student: " + super.name);
    }
    public static void main (String [] args){
    GradStudent fred = new GradStudent("Fred");
    fred.twoNames();
    }
    }
    Output:
     Student: fred
     Grad Student: null
    perchè esce null?? e su student fred??

    Student: fred
     Grad Student: nul
    Ma nell'altro post andbin ti aveva spiegato tutto per bene su super, this, ereditarietà ecc...

    Prova a ragionarci su, dai.
    al volante son nervoso

  3. #3
    Utente di HTML.it L'avatar di angelo85ct
    Registrato dal
    Dec 2007
    Messaggi
    322
    Ma che ne so, io qui sto fondendo,non sono proprio riuscito a capirlo questo esempio
    puo' essere che viene stampato null perchè String name di Sudente non viene passato nulla????

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da angelo85ct
    Ma che ne so, io qui sto fondendo,non sono proprio riuscito a capirlo questo esempio
    puo' essere che viene stampato null perchè String name di Sudente non viene passato nulla????
    Se in GradStudent non si fa "qualcosa" per passare/settare in qualche modo il valore per il name di Student, ovviamente name di Student rimane a null.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it L'avatar di angelo85ct
    Registrato dal
    Dec 2007
    Messaggi
    322
    ma se oltre a scrivere: this.name = name;
    avrei messo pure: super.name = name; averei referenziato name di student?

    un'altra cosa, sarebbe stato lo stesso scrivere this.name = name; senza this??

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da angelo85ct
    ma se oltre a scrivere: this.name = name;
    avrei messo pure: super.name = name; averei referenziato name di student?
    Sì.

    Originariamente inviato da angelo85ct
    un'altra cosa, sarebbe stato lo stesso scrivere this.name = name; senza this??
    Sì.

    P.S.: se è un semplice esempio per testare il "hiding" ok. Ma altrimenti avrebbe poco senso. Perché ci dovrebbero essere 2 name? A livello concettuale sarebbe logico che sia Student ad avere il name e GradStudent qualcos'altro ... ma in più!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it L'avatar di angelo85ct
    Registrato dal
    Dec 2007
    Messaggi
    322
    questi sono gli esempi presenti nelle slide del mio proff, che piu' che aiutare a me mi confondo...

    Cmq grazie per le spiegazioni

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502
    Originariamente inviato da angelo85ct
    questi sono gli esempi presenti nelle slide del mio proff, che piu' che aiutare a me mi confondo...

    Cmq grazie per le spiegazioni
    Non s'è mai vista una slide che non confonda

    Usi qualche IDE. Perché se tu facessi il debug passo passo vedresti quali istruzioni vengono chiamate.
    Ovviamente solo come verifica dei ragionamenti che hai prima fatto senza ausilio del debug.
    al volante son nervoso

  9. #9
    Utente di HTML.it L'avatar di angelo85ct
    Registrato dal
    Dec 2007
    Messaggi
    322
    uso solo scite

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da angelo85ct
    un'altra cosa, sarebbe stato lo stesso scrivere this.name = name; senza this??
    No, scusa per prima ma ero distratto. Il this serve perché è ovvio che il parametro name fa lo "shadowing" del name variabile di istanza.
    Sorry per la svista.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.