Exercícios Resolvidos de Getters e Setters

Ver Teoria

Enunciado

Crie uma classe em C++ chamada R e l o g i o para armazenar um horário, composto por hora, minuto e segundo. A classe deve representar esses componentes de horário e deve apresentar os métodos descritos a seguir:

  • um método chamado setHora, que deve receber o horário desejado por parâmetro (hora, minuto e segundo);
  • um método chamado getHora para retornar o horário atual, através de 3 variáveis passadas por referência;
  • um método para avançar o horário para o próximo segundo (lembre-se de atualizar o minuto e a hora, quando for o caso). 

Passo 1

Eai, tudo beleza?

Nessa questão nós vamos fazer a implementação de um relógio utilizando os g e t t e r e s e t t e r . Vamos iniciar o nosso código declarando a classe, os seus atributos e os métodos.

Como vamos utilizar um getter para definir o horário, vamos deixar os atributos h o r a , m i n u t o e s e g u n d o privados, enquanto os métodos da classe serão privados.

Perceba que declaramos o g e t t e r na linha 10 como do tipo v o i d . Isso ocorre será por meio de referência, ou seja, passaremos endereços de memórias que receberam os valores das horas, minutos e segundos.

Passo 2

Vamos escrever o método s e t H o r a . No nosso relógio, vamos definir que as horas vão variar de 0 até 23, enquanto os minutos e os segundos vão de 0 até 59. Dentro do método, vamos analisar os valores recebidos então dentro do que definimos. Em caso positivo, cada atributo recebe o valor passado e, em caso negativo, vamos admitir o valor 0 como padrão.

Passo 3

Para o método g e t H o r a , vamos fazer cada endereço de memória passado receber o valor do atributo referente. Dessa forma, os valores dos atributos ficarão gravados nos endereço de memória passados como atributos, tornando possível que eles sejam acessado foda da região do código da classe.

Passo 4

No método avançar, temos que utilizar bastante os condicionais para podermos considerar cada caso. Vamos inicialmente checar se o valor dos segundos é diferente de 59. Caso seja, vamos apenas somar 1 ao seu valor.

Mas se ele for igual a 59, devemos zerar o seu valor e fazer a mesma análise para os minutos

No caso dos minutos ser igual a 59 , além de zerá-lo, devemos fazer a mesma análise para as horas e finalizar o método.

Resposta