Seria perfeitamente que a classe abaixo represente a data/hora internamente com o numero de segundos a partir da meia noite em vez dos tres valores inteiros hour, minute, second. Os clientes poderiam utilizar os mesmo metodos public e obter os mesmos resultados. Modifique a classe abaixo para implmentá-la como o numero de segundos desde a meia noite e mostrar que nao ha alteração visivel para os clientes da classe.
Essa e uma questao do livro do deitel, so que eu nao entendi os que a questao quer dizer. O que seria esse cliente. Vlw.
public class Time2 {
private int hour;
private int minute;
private int second;
public Time2(){
this(0,0,0);
}
public Time2(int h){
this(h,0,0);
}
public Time2(int h, int m){
this(h,m,0);
}
public Time2(int h, int m, int s){
setTime(h, m, s);
}
public Time2(Time2 time){
this(time.getHour(), time.getMinute(), time.getSecond());
}
public void setTime(int h, int m, int s){
setHour(h);
setMinute(m);
setSecond(s);
}
public void setHour(int h){
hour = ((h >= 0 && h < 24) ? h :0);
}
public void setMinute(int m){
minute = ((m >= 0 && m < 60) ? m : 0);
}
public void setSecond(int s){
second = ((s >= 0 && s < 60) ? s : 0);
}
public int getHour(){
return hour;
}
public int getMinute(){
return minute;
}
public int getSecond(){
return second;
}
public String toUniversalString(){
return String.format("%02d:%02d:%02d", this.getHour(), this.getMinute(), this.getSecond());
}
public String toString(){
return String.format("%d:%02d:%02d %s",((getHour() == 0 || getHour() == 12) ? 12 : getHour() % 12), getMinute(), getSecond(), (getHour() < 12 ? "AM" : "PM"));
}
}