Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    88

    problema java

    Salve a tutti sto iniziando a programmare in java e mi stavo cimentando nella simulazione di un applicazione per l acquisto online , ho già i primi problemi cioè:

    codice:
    public class Store {
    
        public static void main(String[] args) {
            Cliente cliente = new Cliente();
        
        }
    }
    
    class Cliente{
        
        public void getdati(String nome,String cognome,String indirizzo, String città,String prov){
            Scanner scanner = new Scanner(System.in);
            System.out.println("Inserisci nome");
            nome= scanner.next();
            System.out.println("Inserisci cognome");
            cognome= scanner.next();
            System.out.println("Inserisci indirizzo");
            indirizzo= scanner.next();
            System.out.println("Inserisci città");
            città= scanner.next();
            System.out.println("Inserisci provincia");
            prov= scanner.next();
    }
    ora nn appena chiamo il metodo getdai avviene ciò
    cliente.getdati(null, null, null, null, null)

    sapreste spiegarmi perchè? Grazie mille.

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    che problemi hai?
    Ti ricordo che java ha la sua sezione dedicata e di usare i tag code (perché quel pezzo di codice è obiettivamente illeggibile)
    RTFM Read That F*** Manual!!!

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Originariamente inviato da valia
    che problemi hai?
    Ti ricordo che java ha la sua sezione dedicata e di usare i tag code (perché quel pezzo di codice è obiettivamente illeggibile)
    Quoto, confermo, sistemo e sposto la discussione.

    Aggiungo che il titolo deve essere significativo: "Problema Java" non dice nulla del contenuto della discussione...


    In futuro, posta nell'area Java, usando i tag CODE per il codice, come espressamente richiesto dal Regolamento interno.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    88
    ok scusate grazie mille , ne ho postato uno identico sempre in questa sezione se puoi cancellarlo mi faresti un favore.

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Non ho capito il problema, che significa "avviene cliente.getdati(null, null, null, null, null)"?

    Quella funzione getdati non ha senso, se ho capito quel che vuoi fare hai strutturato male la tua classe. Se vuoi che la classe Cliente rappresenti un Cliente con quei 5 attributi (sotto forma di stringhe) avresti dovuto usare 5 campi (variabili d'istanza):

    codice:
    class Cliente {
    
        String nome;
        String cognome;
        String indirizzo;
        String citta;
        String provincia;
    
    }
    Poi non ho capito cosa deve fare il metodo getdati: deve restituirti i dati di quel cliente, o deve prendere da tastiera i dati e SETTARE i campi?
    Il tuo metodo è sbagliato, se vuoi che restituisca i dati del cliente devi definirlo senza prametri e fargli ritornare un array di String contenente i 5 campi, mentre se vuoi che il metodo setti i 5 campi non deve avere nessun parametro ma deve leggere 5 stringhe da tastiere e memorizzarle nei 5 campi.

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    88
    si il getdati sarebbe metodo per prendere i dati da tastiera, quindi è più semplice di quello che penso mi sa, però non mi è chiaro allora quando dovrei utilizzare il passaggio dei parametri in quella maniera come ho fatto io.

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Originariamente inviato da j_ax31
    si il getdati sarebbe metodo per prendere i dati da tastiera, quindi è più semplice di quello che penso mi sa, però non mi è chiaro allora quando dovrei utilizzare il passaggio dei parametri in quella maniera come ho fatto io.
    Premessa: se non l'hai ancora fatto, informati sugli aspetti basilare della OOP in Java: oggetti, classi, campi e metodi, e come funzionano i metodi (passaggio di parametri e valore di ritorno), senza questi concetti in Java non vai da nessuna parte.

    Un metodo, fondamentalmente, prende qualcosa in input (i parametri) e restituisce qualcosa in output (il valore di ritorno); entrambi possono essere "nulli".

    Se il tuo metodo deve settare i 5 campi, non deve prendere nessun parametro (se lo prende da tastiera ciò che gli serve) e non deve nemmeno dare nessun valore come risultato (perché modifica solo i campi interni della classe.

    Quindi devi avere una classe come quella che scritto nel post precedente, ed il tuo metodo getDati non dovrebbe avere alcun parametro ed essere di tipo void, cioè non ritornare nulla.
    All'interno di un metodo, per riferirti al campo devi usare la parola chiave this, per esempio this.nome = blabla da tastiera

    Dovresti avere tutto quello che ti serve per modificare la tua funzione ora, prova.

    P.S.: occhio a chiamare un metodo del genere "get"qualcosa, di solito i getter per convenzione restituiscono uno o più campi, non li settano. "set" sarebbe pià appropriato, anche se solitamente riceve uno o più parametri coi quali modifica i campi.
    Ma parliamo pur sempre di convenzioni.

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    88
    Gentilissimo! Grazie mille adesso funziona, il mio problema è che so programmare in C ma con java mi è crollato un po il mondo addosso penso che tutto sia più complicato e mi complico la vita, mi viene il dubbio anche sui passaggi di valore e ritorno

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    88
    ma se io dovessi realizzare un catalogo di oggetti supponiamo articoli per chitarra fare qualcosa del genere avrebbe senso?
    codice:
    class Articolo{     
                       String nomeprodotto;   
                       int prezzo;  
                       int disponibili;
                       int codice;   
                       final int disp=10;    
                       public void articoli(){           
                                         Articolo[] articoli;    
                                         articoli= new Articolo[2];
                                         articoli[0].nomeprodotto="Plettri";             
                                         articoli[0].prezzo=10;            
                                         articoli[0].disponibili=disp;            
                                         articoli[0].codice=0001;                       
                                         articoli[1].nomeprodotto="Muta Corde";             
                                         articoli[1].prezzo=5;             
                                         articoli[1].disponibili=disp;             
                                         articoli[1].codice=0002;                          
                       }     }

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    Direi proprio di no, ti crei una classe che gestisce la lista di articoli, qualcosa del genere:

    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
    }

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.