Comprender como implementar métodos que permitan encadenamiento
Programe una clase Hora que tenga métodos encadenables para asignarle el valor de la hora, minutos y segundos.
Con encadenamiento de métodos esto se puede escribir como:
reloj.setHora(10).setMinutos(20).setSegundos(35);
Escriba un método llamado toString() que devuelva un String con la hora
de la siguiente forma HH:MM:SS donde HH es la hora MM los minutos y SS los segundos.
El encadenamiento de métodos permite escribir en secuencia las instrucciones que se asocian a un mismo objeto.
Esto simplifica la lectura del programa y permite escribir instrucciones en
una misma línea.
Por ejemplo, el siguiente método luego de modificar el atributo hora
con el valor del parámetro devuelve una referencia a si mismo con la
referencia "this":
public Hora setHora( int hora ){ if( ( hora>=0 ) && ( hora<=60 ) ) { this.hora = hora;} } else this.hora = 0; return this; }
/** * Hora es una clase que demuestra el uso del encadenamiento de métodos. */ public class Hora{ int hora; int minuto; int segundo; /** * Establece el valor de la hora */ public Hora setHora( int hora ){ if( ( hora>=0 ) && ( hora<=12 ) ) { this.hora = hora; } else{ this.hora = 0; } return this; } /** * Establece el valor del minuto */ public Hora setMinuto( int minuto ){ if( ( minuto>=0 ) && ( minuto<=60 ) ) { this.minuto = minuto; } else{ this.minuto = 0; } return this; } /** * Establece el valor del segundo */ public Hora setSegundo( int segundo ){ if( ( segundo>=0 ) && ( segundo<=60 ) ) { this.segundo = segundo; } else{ this.segundo = 0; } return this; } /** * Crea una hilera con el contenido de la instancia de Hora */ public String toString(){ return (this.hora + ":" + this.minuto + ":" + this.segundo); } public static void main(String args[]){ Hora hora = new Hora(); hora.setHora(10).setMinuto(50).setSegundo(60); System.out.println(hora.toString()); } } |
La salida es la siguiente: