Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Problema costruttori.

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    15

    Problema costruttori.

    Salve a tutti. Sono nuovo nel mondo della programmazione ad aoggetti.
    Vi illustro un esempio di Classe che è presente sul mio libro e vi chiederei di corregermi sulle cose sbagliate che dirò.
    L'esercizio si tratta di costruire una classe i cui oggetti rapresentino orari.

    la classe deve dispone di tre costruttori:

    codice:
     public Orario(int hh, int mm) // che costruisce un oggeto che rappresenta l'orario
    codice:
    public Orario(String s)  // Rappresenta l'orario indicato nella stringa tramite parametro.
    codice:
    public Orario()    // Rappresenta l'orario attuale, implementato tramite costanti della classe 'calendar' e 'gregorianCaledar'
    Quindi per cominiciare a parlare di cose pratiche abbiamo:

    [CODE]public Orario (int hh, int mm){
    ore= hh;
    min=mm;
    }

    codice:
    public Orario(){
    GregorianCalendar adesso= new GregorianCalendar();
    ore = adesso.get(Calendar.HOUR_OF_DAY);
    min = adesso.get(Calendar.MINUTE);
    }
    1. //Non capisco che tipo di oggetto crea questo costruttore. E perchè usa le variabili distanza di del costruttore di sopra? Che utilità pratica ha il primo costruttore?

    codice:
    public Orario(String s){
    ore = Interger.parseInt(s.substring(0,2)); 
    min = Interger.parseInt(s.substring(3,5));
    }


    Ci sono poi due variabile. 'String s' che passerà che potrà essere passata al terzo costruttore della classe Orario per costruire l'oggetto. Il riferimento sarà poi memorizzato nella variabile 'Orario o'. E per ultimo la variabile 'Orario adesso' che sarà il riferimento all'oggetto Orario del costruttore senza parametri e reppresenterà l'ora attuale. Quindi:
    codice:
    String s = in.readLine("Inserire ora hh:mm")
              Orario o  = new Orario(s);
              Orario adesso = new Orario();

    La classe dispone anche di tre quattro metodi:

    codice:
     metodo public boolean equals(Orario altro) {
    return this.ore == altro.ore && this.min == altro.min;
    2. //"altro.ore" si tratta dell'oggetto ore che viene passato come parametro ma, "this.ore" a che oggetto si riferisce?
    }

    codice:
    public boolean isMinore(Orario altro ){
    return ore< altro.ore || (ore== altro.ore && nim < altro.min);
    }
    2
    codice:
    public String ToString(){
    return ore + ":" + min;
    // A questo punto Presumo che queste variabili siano quelle del primo costrutto ma non capisco perche restituiscono qualche valore essendo che sono state usate SOLO dal secondo e terzo costruttore e quindi dovrebbero ritornare i valori dei due .. UN CASINO!!!!!
    }


    GRAZIE A TUTTI

  2. #2
    I tre costruttori definiscono 3 modi specifici di creare un orario composto da ore e minuti, infatti i campi di istanza sono ore e min!

    Per quanto riguarda:
    codice:
    public boolean equals(Orario altro) {
      return this.ore == altro.ore && this.min == altro.min; 
    }
    Il costrutto THIS viene utilizzato per qualificare e riferirisi a campi di istanza dell'oggetto corrente qualora nel corpo di codice (in cui li vai a chiamare) ci sono variabili locali che hanno lo stesso nome dei campi di istanza oppure nel caso del metodo equals dove vai a confrontare due istanze della stessa classe.

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.