Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2014
    Messaggi
    15

    Dubbio sul passaggio di oggetti ai metodi

    codice:
    public class Prova{
        public static void main(String args[])
        {
            Scanner s=new Scanner(System.in);
            Contenitore contenitore=null;
            Operazioni.leggi(s,contenitore);
            System.out.println(contenitore);
        }
    }
    Piccolo dubbio: all'interno del metodo statico leggi, ad un certo punto scrivo:
    codice:
    contenitore=new Contenitore();
    e provando a stampare contenitore all'interno di quel metodo trovo che è stato inizializzato correttamente.
    Poi però, stampando contenitore in questo main, lo trovo ancora a null, ovvero il reference contenitore viene inizializzato a null nel main, assegnato a new Contenitore() in leggi ma poi esci da questo metodo ancora a null. Qualcuno sa spiegarmi il perchè?? Grazie.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da andy_ Visualizza il messaggio
    Piccolo dubbio: all'interno del metodo statico leggi, ad un certo punto scrivo:
    codice:
    contenitore=new Contenitore();
    e provando a stampare contenitore all'interno di quel metodo trovo che è stato inizializzato correttamente.
    Poi però, stampando contenitore in questo main, lo trovo ancora a null, ovvero il reference contenitore viene inizializzato a null nel main
    Il 'contenitore' nel main è una variabile .... il parametro 'contenitore' del metodo leggi è un'altra variabile, inizializzata con il valore passato come argomento nella chiamata.
    Se cambi il valore del parametro assegnando un qualunque altro oggetto, la variabile nel chiamante (nel tuo main) NON cambia. Sono due cose distinte.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    4
    per assegnare il valore alla variabile contenitore nel main dovrai prevedere un metodo che ritorni un oggetto di tipo Contenitore da assegnare a tale variabile. Non volendo fare ciò dovrai allora mettere il System.out.println(contenitore) nel metodo leggi per visualizzare il valore da te voluto. Oppure :
    codice:
    public class Prova{
        public static void main(String args[])
        {
            Scanner s=new Scanner(System.in);
            Contenitore contenitore=null;
            contenitore=Operazioni.leggi(s,contenitore); /* il metodo leggi della classe Operazioni dovrà ritornare un oggetto Contenitore*/
            System.out.println(contenitore);            
        }
    }
    

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.