Spiegazione codice 3

di maracaibo25 il
6 risposte
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

  • 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.
  • 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
  • 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
  • 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.
  • andbin ha scritto:


    ... c'è una ALTRA variabile chiamata myStr ...
    Cosa che dice di aver compreso, tra l'altro ...
  • Ok grazie a tutti e due oregon e andbin
Devi accedere o registrarti per scrivere nel forum
6 risposte