Spiegazione codice 3

di il
6 risposte

Spiegazione codice 3

Ragazzi mi spiegate questo codice grazie
public class App {
 
  String myStr = "7007";

  public void doStuff(String str) {
      int myNum = 0;
      try {
           String myStr = str;
           myNum = Integer.parseInt(myStr);
      } catch (NumberFormatException ne) {
         System.out.println("Error");
      }
      System.out.println("myStr: " + myStr + ",myNum: " +  myNum);
  }
  
  public static void main (String[] args) {
      App obj = new App();
      obj.doStuff("9009");
  }
} 
il risultato è myStr: 7007,myNum: 9009

6 Risposte

  • Re: Spiegazione codice 3

    maracaibo25 ha scritto:


    il risultato è myStr: 7007,myNum: 9009
    E quale sarebbe il dubbio?
    Noti che ci sono 2 variabili chiamate myStr? Quella dichiarata nel try effettua uno "shadowing" della variabile di istanza ma esiste appunto solo nel try.
  • Re: Spiegazione codice 3

    andbin ha scritto:


    E quale sarebbe il dubbio?
    Noti che ci sono 2 variabili chiamate myStr? Quella dichiarata nel try effettua uno "shadowing" della variabile di istanza ma esiste appunto solo nel try.
    ok il myStr,ma perche invece il myNum diventa 9009? Forse perche la variabile myNum è dichiarata e inizializzata all'interno di doStuffe quindi stavolta nel try vengono eseguite le operazione col valore di 9009
  • Re: Spiegazione codice 3

    Che vuoi dire? È ovvio che diventi 9009 ... è il valore assunto con

    String myStr = str;
    myNum = Integer.parseInt(myStr);

    È codice di base non serve un forum ma solo un buon libro
  • Re: Spiegazione codice 3

    maracaibo25 ha scritto:


    ok il myStr,ma perche invece il myNum diventa 9009? Forse perche la variabile myNum è dichiarata e inizializzata all'interno di doStuffe quindi stavolta nel try vengono eseguite le operazione col valore di 9009
    Quale è il problema? Segui il "flusso" del codice e capisci cosa succede. Tenendo solo presente che all'interno del try { } c'è una ALTRA variabile chiamata myStr, che di fatto "nasconde" quella di istanza in quel breve blocco di codice del try.
  • Re: Spiegazione codice 3

    andbin ha scritto:


    ... c'è una ALTRA variabile chiamata myStr ...
    Cosa che dice di aver compreso, tra l'altro ...
  • Re: Spiegazione codice 3

    Ok grazie a tutti e due oregon e andbin
Devi accedere o registrarti per scrivere nel forum
6 risposte