Pessoal, sou iniciante em programação Java… e não to conseguindo fazer este exercício:
- Crie uma classe Tempo com três atributos: horas, minutos e segundos. Crie dois construtores: um para
inicializar os atributos com valor 0 e outro para inicializar os atributos com valores passados como
argumentos. Crie métodos para:
a. Funcionar como getter e setter;
b. Imprimir os atributos no formato hh:mm:ss;
c. Subtrair dois objetos e coloca o resultado no objeto que o chamou;
d. Somar que soma dois objetos e coloca o resultado no objeto que o chamou;
e. Sobrecarregue este último método para que retorne um objeto com o resultado da operação
na verdade não consigo fazer a partir da letra C, o resto já fiz
Posta o que já fez, não temos como adivinhar a forma que você implementou.
Postarei aqui assim que tiver com ele novamente…
Mas seja educado meu chegado… o fórum é para ajuda e leia novamente a parte que sou iniciante
Quem está sendo mal educado é você, cara.
O @staroski é das pessoas que mais ajudam, tem um conhecimento incomparável e é extremamente humilde.
Ele não foi desrespeitoso e não fez nenhuma gracinha, exceto pelo emoji ao fim do que ele escreveu.
Eu tento ser, se pareci mal educado, não foi minha intenção.
Mas de fato, não temos como adivinhar como ficou a estrutura que você implementou.
Sem conhecer sua estrutura, não dá pra orientar a implementar a soma e subtração desses objetos.
1 curtida
public class Tempo {
int h;
int m;
int s;
public Tempo() {
h=m=s=0;
}
public Tempo(int h, int m, int s) {
sethora(h);
setminuto(m);
setsegundo(s);
}
public void sethora(int h) {
this.h = h;
}
public void setminuto(int m) {
this.m =m;
}
public void setsegundo(int s) {
this.s = s;
}
public int gethora() {
return h;
}
public int getminuto() {
return m;
}
public int getsegundo() {
return s;
}
public void imprimetempo() {
System.out.println(gethora()+":"+getminuto()+":"+getsegundo());
}
}
A classe Tempo
:
public class Tempo {
private int horas;
private int minutos;
private int segundos;
public Tempo() {
this(0, 0, 0);
}
public Tempo(int horas, int minutos, int segundos) {
setHoras(horas);
setMinutos(minutos);
setSegundos(segundos);
}
public int getHoras() {
return horas;
}
public int getMinutos() {
return minutos;
}
public int getSegundos() {
return segundos;
}
public void setHoras(int horas) {
this.horas = horas;
}
public void setMinutos(int minutos) {
this.minutos = minutos;
}
public void setSegundos(int segundos) {
this.segundos = segundos;
}
public void imprimir() {
System.out.println(this);
}
public Tempo subtrair(Tempo tempo) {
return segundosParaTempo(this.emSegundos() - tempo.emSegundos());
}
public Tempo somar(Tempo tempo) {
return segundosParaTempo(this.emSegundos() + tempo.emSegundos());
}
// representação textual deste objeto
@Override
public String toString() {
return String.format("%02d:%02d:%02d", getHoras(), getMinutos(), getSegundos());
}
// converte este objeto Tempo em um total de segundos
private int emSegundos() {
return (getHoras() * 3600) + (getMinutos() * 60) + getSegundos();
}
// converte um total de segundos em um objeto Tempo
private static Tempo segundosParaTempo(int totalSegundos) {
int segundos = totalSegundos;
int horas = segundos / 3600;
segundos -= (horas * 3600);
int minutos = segundos / 60;
segundos -= (minutos * 60);
return new Tempo(horas, minutos, segundos);
}
}
Exemplo de uso:
Tempo a = new Tempo(13, 15, 25);
Tempo b = new Tempo(5, 0, 35);
Tempo c = a.subtrair(b);
Tempo d = a.somar(b);
a.imprimir();
b.imprimir();
c.imprimir();
d.imprimir();
Saída após execução:
13:15:25
05:00:35
08:14:50
18:16:00
1 curtida
Entendi como funciona… agora é treinar pra aperfeiçoar. Muito obrigado! Desculpe o mal entendido de mais cedo!
1 curtida