Exercícios
Tema: Classes e Objetos
São fornecidos casos de teste para os exercícios abaixo, para que você saiba se está implementando-os de acordo com o esperado. Baixe os casos de teste aqui.
Exercício 1
Crie a classe Circulo, contendo os seguintes métodos:
float getRaio(), que retorna o raio do círculo;void setRaio(float raio), que redefine o raio do círculo;float getArea(), que retorna o valor da área do círculo;float getCircunferencia(), que retorna o valor da circunferência do círculo.
Atenção
- A classe deve possuir o construtor
Circulo(float raio); - Você pode assumir que o valor de PI é
3.14159; - Não será testado nenhum caso com valores inválidos atribuídos a raio através do método setter.
Exercício 2
Crie a classe Estudante com os atributos int matricula e String nome e seus respectivos getters e setters.
Exercício 3
Crie a classe RelogioDigital, contendo os seguintes atributos:
int horaint minuto
Além disso:
- A classe deve possuir apenas o construtor padrão
RelogioDigital()que inicializahora = 12eminuto = 20 - Sua classe deve possuir os getters e setters para hora e minuto e, além disso, o método
tick(), que avança o tempo atual em 1 minuto; - Atente para a situação em que o avanço de 1 minuto também ocasiona o avanço da hora. Por exemplo:
- 04:59 ->
tick()-> 05:00 - 23:59 ->
tick()-> 00:00
- Não será testado nenhum caso com valores inválidos atribuídos a hora e minutos através dos métodos setters.
Exercício 4
Crie a classe CarroAluguel com o construtor CarroAluguel(float valorPorKm), onde o parâmetro valorPorKm define o valor cobrado por km.
A classe possui os seguintes métodos:
void setValorPorKm(float valor), que define o valor cobrado por km.float getValorPorKm(), que retorna o valor cobrado por km.void setDistanciaPercorrida(int distancia), que define a distância percorrida pelo carro;float getDistanciaPercorrida(), que retorna a distância percorrida.void alugar(), que muda o estado de um carro de “disponivel” para “indisponível”.- Um carro “indisponível” não pode ser alugado e, nesse caso, a exceção
CarroIndisponivelExceptioné lançada.
- Um carro “indisponível” não pode ser alugado e, nesse caso, a exceção
void devolver(), que devolve um carro alugado, tornando-o disponível novamente.- Um carro “disponível” não pode ser devolvido e, nesse caso, a exceção
CarroDisponivelExceptioné lançada. - Após ser devolvido, um carro não deve ter sinistro e deve ter sua distância percorrida zerada.
- Antes de ser devolvido, o carro precisa ter seus débitos zerados. Caso contrário, a exceção
CarroNaoPagoExceptioné lançada.
- Um carro “disponível” não pode ser devolvido e, nesse caso, a exceção
boolean isDisponivel(), que retorna o estado do carro:true, quando disponível efalse, quando indisponível.boolean hasSinistro(), que retornatrue, quando houve sinistro e o seguro precisa ser acionado efalse, caso contrário.boolean setSinistro(boolean sinistro), que define o estado do sinistro.float getDebito(), que retorna o valor a ser pago pelo aluguel do carro.- O valor é calculado multiplicando o
valorPorKm * distanciaPercorrida. Se há sinistro, soma-se mais 60% do débito ao valor total. - Após pago, não haverá mais sinistro no carro.
- O valor é calculado multiplicando o
void pagar(), que paga (zera) o valor devido pelo aluguel.- Um carro que não teve distância percorrida não terá débitos.
- Um carro disponível não pode ser pago e lança uma exceção
CarroDisponivelExceptionnesse caso.
Atenção:
- Outros getters e setters não serão testados.
- Um objeto
CarroAluguelrecém instanciado está disponível, tem R$0 de débito e não tem sinistro.
Mensagens das exceções:
CarroDisponivelException-> “O carro está disponível.”CarroNaoPagoException-> “O carro não foi pago.”CarroIndisponivelException-> “O carro está indisponível.”
Exercício 5
Desenvolva a classe exibida no Diagrama 1 a seguir.
Atenção
- O valor do aumento é um número entre 0 e 100, inclusive.
- No diagrama, atributos ou métodos marcados com “-“ são privados e com “+” são públicos. Uma classe é representada por um retângulo. A parte superior do retângulo indica o nome da classe, em seguida, são listados os atributos e seus tipos, depois, o construtor e seus parâmetros e, finalmente, os métodos, seus atributos e tipos de retorno.
Diagrama 1. A classe Funcionario
Exercício 6
O diagrama a seguir representa uma composição, onde Linha possui dois Pontos. Desenvolva o código para as classes mostradas.