Vous êtes sur la page 1sur 3

8.

5 Ejemplo de la clase Tiempo: constructores sobrecargados


fig. 8.5 Tiempo2.java Declaracion de la clase Tiempo2 con constructores sobrecargados

public class Tiempo2 { private int hora;//0-23 private int minuto;//0-59 private int segundo;//0-59 //Constructor de Tiempo2 sin argumentos:inicializa cada variable de instancia //a cero; asegura que los objetos Tiempo2 empiecen en un estado consistente public Tiempo2() { this(0,0,0);//invoca al constructor de Tiempo2 con tres argumentos }//fin del constructor de Tiempo2 sin argumentos //Constructor de Tiempo2: se suministra hora, minuto y segundo con valor predeterminado 0 public Tiempo2(int h) { this(h,0,0);//invoca al constructor de Tiempo2 con tres argumentos }//fin del constructor de Tiempo2 un argumentos //Constructor de Tiempo2: se suministra hora, minuto y segundo con valor predeterminado 0 public Tiempo2(int h, int m) { this(h,m,0);//invoca al constructor de Tiempo2 con tres argumentos }//fin del constructor de Tiempo2 dos argumentos //Constructor de Tiempo2: se suministra hora, minuto y segundo public Tiempo2 (int h,int m, int s) { establecerTiempo(h,m,s);//invoca a establecerTiempo para validar el tiempo }//fin del constructor de Tiempo2 con tres argumentos //Constructor de Tiempo2: se suministra otro objeto Tiempo2 public Tiempo2(Tiempo2 tiempo) { //invoca al constructor de Tiempo2 con tres argumentos this(tiempo.obtenerHora(),tiempo.obtenerMinuto(),tiempo.obtenerSegundo()); }//fin del constructor de Tiempo2 con un objeto Tiempo2 como argumento //Metodos "establecer" //establece un nuevo valor de tiempo usando la hora universal;asegura que los //datos sean consistentes, estableciendo los valores invalidos en cero public void establecerTiempo (int h, int m, int s)

{ establecerHora(h); establecerMinuto(m); establecerSegundo(s); }//fin del metodo establecerTiempo //valida y establece la hora public void establecerHora(int h) { hora=((h>=0&&h<24)?h:0); minuto="((m">=0&&m<60)?m:0); segundo="((s">=0&&s<60)?s:0); }//fin del metodo establecerSegundo //Metodos "obtener" //obtiene el valor de la hora public int obtenerHora() { return hora; }//fin del metodo obtenerHora //obtiene el valor del minuto public int obtenerMinuto() { return minuto; }//fin del metodo obtenerMinuto //obtiene el valor del segundo public int obtenerSegundo() { return segundo; }//fin del metodo obtenerSegundo //convierte a String en formato de hora universal (HH:MM:SS) public String aStringUniversal() { return String.format("%02d:%02d:%02d",obtenerHora(),obtenerMinuto(),obtenerSegundo()); } //convierte a String en formato de hora estandar (H:MM:SS AM o PM) public String toString() { return String.format("%d:%02d:%02d%s",((obtenerHora()==0obtenerHora()==12)?12:obtenerHor a()%12),obtenerMinuto(),obtenerSegundo(),(obtenerHora()<12?"AM":"PM")); }//fin del metodo toString }//fin de la clase Tiempo2 //8.6 PruebaTiempo2.java //uso de constructores sobrecargados para inicializar objetos Tiempo2

public class PruebaTiempo2 { public static void main (String args[]) { Tiempo2 t1=new Tiempo2();//00:00:00 Tiempo2 t2=new Tiempo2(2);//20:00:00 Tiempo2 t3=new Tiempo2(21,34);//21:34:00 Tiempo2 t4=new Tiempo2(12,25,42);//12:25:42 Tiempo2 t5=new Tiempo2(27,74,99);//00:00:00 Tiempo2 t6=new Tiempo2(t4);//12:25:42 System.out.println("Se construyo con:"); System.out.println("t1:todos los argumentos predeterminados"); System.out.printf(" %s\n",t1.aStringUniversal()); System.out.printf(" %s\n",t1.toString()); System.out.println("t2:se especifico hora;minuto y segundo predeterminados"); System.out.printf(" %s\n",t2.aStringUniversal()); System.out.printf(" %s\n",t2.toString()); System.out.println("t3:se especificaron hora y minuto;segundo predeterminado"); System.out.printf(" %s\n",t3.aStringUniversal()); System.out.printf(" %s\n",t3.toString()); System.out.println("t4:se especificaron hora, minuto y segundo"); System.out.printf(" %s\n",t4.aStringUniversal()); System.out.printf(" %s\n",t4.toString()); System.out.println("t5:se especificaron todos los valores invalidos"); System.out.printf(" %s\n",t5.aStringUniversal()); System.out.printf(" %s\n",t5.toString()); System.out.println("t6:se especifico el objeto t4 de Tiempo2"); System.out.printf(" %s\n",t6.aStringUniversal()); System.out.printf(" %s\n",t6.toString()); }//fin del main }//fin de la clase PruebaTiempo2

Vous aimerez peut-être aussi