Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    4

    [JAVA] problema con il metodo set()

    Ciao a tutti..
    premetto che uso NetBeans IDE 5.5 .
    devo fare un programma che in un ArrayList registri giorno per giorno le assenze degli alunni della classe.Alla fine,usando un HashMap,totalizare le ore di assenza,poi stampare il tutto.
    Con qualche aiuto l'ho fatto,ma non ho capito alcune cose,ora elenco il codice..

    Questa è la classe Alunno:
    codice:
    public class Alunno {
        private String cognome;
        private String nome;
        private int oreA;
        
        public Alunno(String cognome,String nome,int oreA) {
            this.cognome=cognome;
            this.nome=nome;
            this.oreA=oreA;
        }
        public String getCognome(){
            return cognome;
        }
        public String getNome(){
            return nome;
        }
        public int getOreA(){
            return oreA;
        }
        public void setOreA(int x){
            oreA=x;
        }
        public String toString(){
            return "Cognome: "+cognome+"Nome: "+nome+"Ore di assenza: "+oreA;
        }
    }
    potreste spiegarmi il metodo set presente qua sopra??

    il main:
    codice:
    public static void main(String[] args) {
    
            ArrayList <Alunno> la = new ArrayList <Alunno>();
            HashMap<String,Alunno> ha= new HashMap<String,Alunno>();
            for (int i = 0; i < 10; i++) {
                String cognome=JOptionPane.showInputDialog("Inserisci il cognome");
                String nome=JOptionPane.showInputDialog("Inserisci il nome");
                int oreA=Integer.parseInt(JOptionPane.showInputDialog("Inserisci le ore di assenza"));
                Alunno nuovoAlunno=new Alunno(cognome,nome,oreA);
                la.add(nuovoAlunno);
            }
          Alunno alunnoUno;Alunno alunnoDue;
          for (int i = 0; i < la.size(); i++) {
              alunnoUno=la.get(i);
              String chiave=alunnoUno.getCognome()+alunnoUno.getNome();
              if(ha.containsKey(chiave)){
                  alunnoDue=ha.get(chiave);
                  int y=alunnoDue.getOreA()+alunnoUno.getOreA();
                  alunnoDue.setOreA(y);
                  ha.put(chiave);
                }
                else{
                    ha.put(chiave);
                }
            }
                Iterator ite=ha.keySet().iterator();
                while(ite.hasNext()){
                    String k=(String)ite.next();
                    Alunno alunnoUno = ha.get(k);
                    System.out.println(alunnoUno);
                
                    }
     
    }
    }
    }
    potreste spiegami cosa avviene nell'if??(anche nell'else)..grazie a chiunque abbia così tanta pazienza da rispondermi..

  2. #2
    Utente di HTML.it L'avatar di Pacio88
    Registrato dal
    Sep 2007
    Messaggi
    447

    Re: [JAVA] problema con il metodo set()

    Originariamente inviato da droggy
    potreste spiegarmi il metodo set presente qua sopra??
    Quando dici il metodo set() ti riferisci a setOreA()?...
    Se sì, in quel metodo non viene fatto altro che modificare il valore di oreA dell'oggetto su cui viene chiamato.
    Per quanto riguarda la tua seconda domanda credo che ci sia poco da dire, in quanto se sei stato tu a scrivere questo codice non vedo come tu non possa capire il significato delle istruzioni, almeno che tu non abbia scritto questo codice ad "occhi chiusi", ma mi sembra alquanto improbabile.

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    4
    l'h scritto con il prof,ma non ricordo più tanto..

    ad esempio qua alunnoDue.setOreA(y); non capisco perchè si passi y come valore,e che valore ha quindi alunnoDue dopo

  4. #4
    Utente di HTML.it L'avatar di Pacio88
    Registrato dal
    Sep 2007
    Messaggi
    447
    Originariamente inviato da droggy
    ad esempio qua alunnoDue.setOreA(y); non capisco perchè si passi y come valore,e che valore ha quindi alunnoDue dopo
    Perchè si passi y non posso saperlo.. però è evidente che alunnoDue dopo che è stato chiamato il metodo setOreA(y) avrà come valore quello di y che corrisponde al valore precedente sommato a quello di alunnoUno.oreA.
    Infatti nella riga prima viene inizializzato il valore y con la somma delle oreA dei due oggetti alunnoUno e alunnoDue.

    Spero di essere stato chiaro...

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    4
    sì molto
    quindi è indifferente che nella classe si passi x sul set() e nel main la y??^^

  6. #6
    Utente di HTML.it L'avatar di Pacio88
    Registrato dal
    Sep 2007
    Messaggi
    447
    Originariamente inviato da droggy
    sì molto
    quindi è indifferente che nella classe si passi x sul set() e nel main la y??^^
    Certo, comunque se mi chiedi questo ti posso dire con sicurezza che hai troppe lacune per gestire programmi del livello di quello che hai postato. Ti dico questo per renderti consapevole che avrai sempre più difficoltà andando avanti con lo studio di Java.

    Comunque per qualunque altra domanda chiedi pure...

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    4
    h sì,perchè ho cominciato java dalla quarta, quindi ero indietro di un anno e la prima parte è frettolosa..grazie mille comunque

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.