Visualizzazione dei risultati da 1 a 2 su 2

Discussione: contalettere

  1. #1

    contalettere

    mio caro moderatore...
    ecco a voi il mio esercizio fatto, è sempre quello dei nomi che iniziano con m
    volevo confrontare il mio esercizio con una persona con molta più esperienza di me
    Ma visto che in italia si pensa solo alla regressione del cittadino con regole stupide ciò non è possibile quindi chiedo umilmente perdono a tutta la comunity di html... questo è il mio esercizio con il relativo errore...
    Vedete dove sbaglio e datemi un consiglio...
    // prima classe


    import java.io.*;
    public class Nompersona {
    private String nome;
    public int contatore;
    public void InserisciNome (){
    InputStreamReader Input = new InputStreamReader (System.in);
    BufferedReader Tastiera = new BufferedReader (Input);
    for (int i = 1; i<20;i++){
    System.out.println ("inserisci il nome della persona:"+i);
    try{
    nome = Tastiera.readLine();
    }
    catch (Exception e){}
    }
    }
    public int Restituisci (){
    contatore = 0;
    while (contatore<=20){
    if (nome.charAt(0) == 'M')
    System.out.println (contatore++);
    }
    return contatore;
    }
    }


    // classe chiamante

    ublic class ContaPrimaLettera {

    /**
    * @param args
    */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    Nompersona stampa = new Nompersona ();
    stampa.InserisciNome();
    Nompersona conta = new Nompersona ();
    conta.Restituisci();
    }

    }
    //errore

    Exception in thread "main" java.lang.NullPointerException
    at Nompersona.Restituisci(Nompersona.java:19)
    at ContaPrimaLettera.main(ContaPrimaLettera.java:12)
    grazie per l'aiuto

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: contalettere

    Originariamente inviato da hunter85
    questo è il mio esercizio con il relativo errore...
    Vedete dove sbaglio e datemi un consiglio...
    Per quanto riguarda l'errore, è dovuto al fatto che nel main istanzi un nuovo oggetto Nompersona.

    Nompersona stampa = new Nompersona ();
    stampa.InserisciNome();
    Nompersona conta = new Nompersona ();
    conta.Restituisci();


    che chiaramente non ha più nulla a che fare con quello che avevi fatto/gestito con il primo oggetto. Nel secondo oggetto istanziato il campo nome è null, da lì il NullPointerException.

    Altre cose: la indentazione del codice sarebbe da migliorare e se vogliamo seguire le convenzioni suggerite dalla Sun, pure i nomi di metodi/variabili sarebbero da cambiare. Nulla di grave, comunque, solo una questione estetica e di stile.
    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.