Visualizzazione dei risultati da 1 a 10 su 38

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    442
    Ciao, intanto grazie per la gentile risposta.
    Non ho ben capito però come usare le date nel mio caso. Nel senso che io ho una classe che definisce l'utente così:

    codice:
    public class Utente {
        //definisco le variabili di classe
        private String nome, cognome;
        private String nickname;
        private Date dataNascita;
        private Utente fondatore;
        private Utente utentePresentante;
        
        //costruttore utente fondatore
        public Utente (String nome, String cognome, Date dataNascita) {
            this(nome,cognome,dataNascita, null);
        }
        
        //costruttore utente
        public Utente (String nome, String cognome, Date dataNascita, Utente utentePresentante) {
            this.nome=nome;
            this.cognome=cognome;
            this.dataNascita=dataNascita;
            this.utentePresentante=utentePresentante;
        }
        
        //metodi estrattori
        public String getNome() { return nome; }
        public String getCognome() { return cognome; }
        public Date getDataNascita() { return dataNascita; }
        
        //metodo che sovrascrive il toString di object per stampare l'utente
        public String toString()  {
            if (utentePresentante==null) {
                return nome + " " + cognome + " " + dataNascita;
            }
            else {
                return nome + " " + cognome + " " + dataNascita + " " + utentePresentante;
            }
        }
        public static void main (String[] args) {
            // Leggo la stringa dall'utente nel formato "GG/MM/AAAA"
            String dataNascitaFounder ="23/06/1912";
            // Ottengo il relativo oggetto Date:
            Date dataNascitaFounder;
            SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
            try {
            dataNascitaFounder = sdf.parse( data );}
            catch (Exception e) { e.printStackTrace(); }
            Utente founder=new Utente ("Alan", "Turing", dataNascitaFounder);
        }
    }
    Posso immaginare che invece di usare un campo Date nella classe utente dovrei usare un campo String, e poi fare quel che hai detto tu...possibile?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Innanzitutto un piccolo suggerimento: se hai una classe che "modella" una entità ben precisa (es. appunto un "utente"), non metterci dentro altre cose (es. il main() ) che non hanno a che fare direttamente con la rappresentazione di quella entità. Detto in altre parole: fai classi separate, Utente e es. ProvaUtenti.

    Quote Originariamente inviata da Jamie04 Visualizza il messaggio
    Posso immaginare che invece di usare un campo Date nella classe utente dovrei usare un campo String, e poi fare quel che hai detto tu...possibile?
    Qui però devi valutare tu chi deve fare il parsing della data. Se vuoi che sia Utente a fare il parsing della data è ovviamente possibile. Basterebbe che Utente possa ricevere un String, faccia il parsing e assegni il Date ad un campo interno (quindi non cambia il tipo di campo per dataNascita).
    Però così o permetti di personalizzare il formato oppure lo rendi fisso/imposto da Utente, il che non è il massimo della flessibilità. Quindi ti sconsiglierei di fare in modo che sia Utente a fare il parsing della data.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    442
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Innanzitutto un piccolo suggerimento: se hai una classe che "modella" una entità ben precisa (es. appunto un "utente"), non metterci dentro altre cose (es. il main() ) che non hanno a che fare direttamente con la rappresentazione di quella entità. Detto in altre parole: fai classi separate, Utente e es. ProvaUtenti.
    Sì, lo so, ma è solo un esercizio (non è un programma serio!) e per comodità ho messo tutto insieme :-)
    Tornando alla questione della data, in realtà tutte queste cose non mi interessano: io ho solo bisogno di rappresentare un campo data ma non di manipolarlo, anzi la finalità dell'esercizio è fare la lista circolare, la data è solo una cosa su cui mi sto soffermando io. Cioè in pratica il suggerimento del prof per i campi dell'utente conteneva anche un "Date dataDiNascita", quello che io non ho capito come fare è: al momento in cui istanzio un utente con una new, tipo:
    Utente founder=new Utente ("Alan", "Turing", dataDiNascita);
    non so come passargli la data di nascita, nel senso che in qualunque formato provo a metterla mi dà errore. Forse manca qualche passaggio? Non basta definire un campo Date?

    L'opzione dell'utente che riceve una string non mi piace molto per il semplice motivo che così è poco significativo...vorrei proprio manipolare un campo Date se possibile!

    Many thanks.

    Edit: mi è venuto in mente che potevo fare così:
    Utente founder=new Utente ("Alan", "Turing", new Date(06-23-1912));

    solo che mi stampa:
    Thu Jan 01 00:59:58 CET 1970

    Se invece li metto sottoforma di (06,23,1912) ottengo un warning di utilizzo di deprecated API.
    Ultima modifica di Jamie04; 24-10-2013 a 14:33

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.