Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 21
  1. #11
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    88
    Ma essendo che gli oggetti li sto inserendo io i metodi get e set a che cosa servono?

    PS: così mi da errore non ha visibilità dei campi di Articolo

    codice:
    class Articolo{     
                       String nomeprodotto;   
                       int prezzo;  
                       int disponibili;
                       int codice;   
                       
    //get e set
    }
    
    class ListaArticoli{
     Articolo[] articoli;
     final int disp=10;
        
     public ListaArticoli(){           
                                         articoli= new Articolo[2];
                                         articoli[0].setNomeprodotto("Plettri");             
                                         articoli[0].setPrezzo(10);            
                                         articoli[0].setDisponibili(disp);            
                                         articoli[0].setCodice(0001);                       
                                         articoli[1].setNomeprodotto("Muta Corde");             
                                         articoli[1].setPrezzo(5);             
                                         articoli[1].setDisponibili(disp);             
                                         articoli[1].setCodice(0002);                          
                       }
    //get e set
    }

  2. #12
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    visto che vieni da programmazione in C (logica totalmente diversa rispetto alla OOP), ti consiglio prima di proseguire di leggere dei testi (ne trovi una marea in rete) riguardo le basi della OOP, le domande che fai purtroppo evidenziano questa lacuna e siccome è molto riduttivo spiegarti tutto in un post (considerando che hai bypassato lo studio della teoria) è meglio che prima ti fai le basi e poi fai il tuo gestionale
    RTFM Read That F*** Manual!!!

  3. #13
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Originariamente inviato da j_ax31
    Ma essendo che gli oggetti li sto inserendo io i metodi get e set a che cosa servono?

    PS: così mi da errore non ha visibilità dei campi di Articolo

    codice:
    class Articolo{     
                       String nomeprodotto;   
                       int prezzo;  
                       int disponibili;
                       int codice;   
                       
    //get e set
    }
    
    class ListaArticoli{
     Articolo[] articoli;
     final int disp=10;
        
     public ListaArticoli(){           
                                         articoli= new Articolo[2];
                                         articoli[0].setNomeprodotto("Plettri");             
                                         articoli[0].setPrezzo(10);            
                                         articoli[0].setDisponibili(disp);            
                                         articoli[0].setCodice(0001);                       
                                         articoli[1].setNomeprodotto("Muta Corde");             
                                         articoli[1].setPrezzo(5);             
                                         articoli[1].setDisponibili(disp);             
                                         articoli[1].setCodice(0002);                          
                       }
    //get e set
    }
    Cerca online riguardo all'incapsulamento delle informazioni per la tua domanda.
    Comunque, aldilà di eventuali problemi di visibilità, non hai istanziato i due oggetti Articolo del tuo array, istanziare un array di oggetto NON istanzia i singoli oggetti.

  4. #14
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    88
    Originariamente inviato da valia
    visto che vieni da programmazione in C (logica totalmente diversa rispetto alla OOP), ti consiglio prima di proseguire di leggere dei testi (ne trovi una marea in rete) riguardo le basi della OOP, le domande che fai purtroppo evidenziano questa lacuna e siccome è molto riduttivo spiegarti tutto in un post (considerando che hai bypassato lo studio della teoria) è meglio che prima ti fai le basi e poi fai il tuo gestionale
    Purtroppo mi trovo vicino ad un esame e sto cercando di imparare il più velocemente possibile, perchè magari certe cose dette da voi in parole povere sono molto più chiare di lunghe pagine di teoria, non che con questa voglio escludere lo studio teorico , è solo che un vostro aiuto mi farebbe molto comodo su alcuni dubbi.

  5. #15
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Originariamente inviato da j_ax31
    Purtroppo mi trovo vicino ad un esame e sto cercando di imparare il più velocemente possibile, perchè magari certe cose dette da voi in parole povere sono molto più chiare di lunghe pagine di teoria, non che con questa voglio escludere lo studio teorico , è solo che un vostro aiuto mi farebbe molto comodo su alcuni dubbi.
    Per riassumere il perché di getter e setter: se tu lasci il tuo campo accessibili direttamente ci si può assegnare un valore qualsiasi. Per esempio nella tua classe Articolo, il prezzo è implementato come int che tecnicamente assume anche valori non positivi, e questo ovviamente non ha senso, il fatto che da una qualsiasi classe chiunque possa arrivare e scrivere nomeArticolo.prezzo = -50; e questo potrebbe creare problemi. Se invece rendi il campo non accessibile dall'esterno e scrivi un metodo setPrezzo che prende un numero come parametro, è banale controllare la validità del numero, ed eventualmente segnalare l'errore in svariati modi diversi: sollevare un eccezione, restituire false se il metodo è di tipo boolean... o anche non fare nulla, dipende dalle esigenze.

  6. #16
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    88
    Grazie mille!!!!! ma come è che in C era tutto più facile ?! Ero riuscito ad entrare subito nell'ottica e pensando che java fosse simile ho preso tempo ed ecco i risultati!!

  7. #17
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    88
    Quindi in questo caso ho creato questi metodi set ma ho un po di interrogativi del tipo:
    il corpo devo lasciarlo vuoto essendo che ad esempio in String si può scrivere quello che si vuole?
    Se volessi controllorare che il prezzo deve essere maggiore di zero come faccio essendo che sto lavorando comunque con degli array, cioè come fare a farlo in modo di applicarlo a tutti gli indici ?
    Il metodo get a cosa mi serve se li ho già messi da tastiera?
    Confusioneeeeeeee
    codice:
    class Articolo{     
                       String nomeprodotto;   
                       int prezzo;  
                       int disponibili;
                       int codice;   
     public void setNomeprodotto(String n){
         
     }
     public void setDisponibili(int disp){
         
     }
     public void setPrezzo(int prezzo){
         
     }
      public void setCodice(int codice){
         
     }
    }
    
    class ListaArticoli{
    
    final int disp=10;
        
     public ListaArticoli(){           
                                         Articolo[] articoli= new Articolo[2];
                                         articoli[0].setNomeprodotto("Plettri");             
                                         articoli[0].setPrezzo(10);            
                                         articoli[0].setDisponibili(disp);            
                                         articoli[0].setCodice(0001);                       
                                         articoli[1].setNomeprodotto("Muta Corde");             
                                         articoli[1].setPrezzo(5);             
                                         articoli[1].setDisponibili(disp);             
                                         articoli[1].setCodice(0002);                          
                       }
              
    
    }

  8. #18
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    in C era tutto più facile perché ci lavori da più tempo ed è più vicino al tuo modo di pensare.
    Ora il fatto che tu mi dici che stai studiando per un'esame ti deve far fermare, suppongo che frequenti corsi che facciano parecchio riferimento alla programmazione, inoltre qui ti si chiede di seguire la logica di OOP che è un'altra cosa rispetto al C, proprio per questo motivo a volte è preferibile rimandare un esame e capire concetti che sta sicuro usi e tanto dopo.

    Riguardo al tuo problema:

    le classi vanno modellate come segue

    codice:
    public class Articolo{     
                       private String nomeProdotto = "";   
                       private int prezzo = 0;  
                       private int disponibili = 0;
                       private int codice = 0;   
    	//costruttori
    
    	public Articolo(){}
    
     	public void setNomeprodotto(String nomeProdotto){
         		this.nomeProdotto = nomeProdotto; 
     	}
    
    	public String getNomeprodotto(String nomeProdotto){
    		return nomeProdotto;
     	}
    
     	public void setDisponibili(int disponibili){
         		this.disponibili = disponibili; 
     	}
    
     	public int getDisponibili(int disponibili){
    		return disponibili; 
     	}
    //getter e setter anche per gli altri 2 campi
    }
    qui ti ho già messo diversi concetti della OOP:

    1. uso di modificatori di accesso (che hai dimenticato)
    2. getter e setter e a quel punto se vuoi che il prezzo sia positivo, fai un controllo prima dell'assegnamento
    3. costruttori?

    sono concetti che ti ripeto sono riduttivi spiegati in un post, sono alla base della OOP e dovresti averli chiari prima di proseguire.

    codice:
    public class ListaArticoli{
    private Articolo[] articoli= new Articolo[2];
    final int disp=10;
        
     public ListaArticoli(){           
                                         
                                         Articolo articolo = new Articolo(); 
    					
    				     articolo.setNomeprodotto("Plettri");             
    				     articolo.setPrezzo(10);            
    				     articolo.setDisponibili(disp);            
    				     articolo.setCodice(1);                       
    
    					articoli[0] = articolo; 
    
    					articolo = new Articolo(); 
    					
    				     articolo.setNomeprodotto("Muta Corde");             
    				     articolo.setPrezzo(5);            
    				     articolo.setDisponibili(disp);            
    				     articolo.setCodice(2);     
    					
    				articoli[1] = articolo;                   
    
    					       
                       }
              
    
    }
    questa è la tua lista, fatta usando il concetto di OOP e ti ricordo anche che nel 99% dei casi a meno di richieste particolari non usi strutture fisse come array!
    RTFM Read That F*** Manual!!!

  9. #19
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    88
    Quindi mi consiglieresti di gestire la lista di articoli con una LinkedList tipo?

  10. #20
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Originariamente inviato da j_ax31
    Quindi mi consiglieresti di gestire la lista di articoli con una LinkedList tipo?
    Non ho seguito gli ultimi aggiornamenti della discussione, comunque di solito quando si ha bisogno di una struttura dati dinamica si usa il semplice ArrayList.
    Se invece hai particolari esigenze e/o vuoi ottimizzare il tuo codice, dipende dal modo in cui inserisci/leggi la "lista": una lista concatenata (in Java implementata dalla LinkedList da te citata) ha pregi e difetti come ogni lista concatenata, ovviamente non permette l'accesso casuale e ha il suo peso in quanto, oltre ai singoli elementi, ognuno ha due riferimenti, al precedente e al successivo (la LinkedList di Java è una lista doppiamente concatenata).
    ArrayList invece permette ovviamente l'accesso casuale, ma ad esempio non è thread-safe... a differenza del vecchio Vector che è praticamente un ArrayList thread-safe, con pochissime differenze marginali.

    Insomma, se sei agli inizi fregatene ed usa un ArrayList, possibilmente con i generici.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.