Ir para o conteúdo

Exercícios sobre Interfaces

Questão 1
Implemente a interface e as classes apresentadas no diagrama abaixo, respeitando as assinaturas dos métodos definidas. Considere que construtores, getters e setters não estão representados no diagrama, mas devem ser implementados quando necessário. Após a implementação, instancie objetos de cada classe e apresente no terminal os valores de área e perímetro correspondentes.
Questão 2
Crie uma nova classe responsável por operações com objetos do tipo Shape. Nessa classe, implemente um método que receba uma lista de Shape e calcule a soma das áreas de todos os elementos. O método deve utilizar apenas a interface Shape (não usar instanceof). O resultado deve ser retornado como um valor do tipo double.
Após implementar: Crie uma lista contendo objetos Rect, Triangle e Circle Utilize o método da nova classe para calcular a área total Exiba o resultado no terminal. Observação: O método getTotalArea está sublinhado no diagrama, ou seja, deve ser static.
Questão 3
Implemente a interface Scalable e adapte as classes já existentes para suportar redimensionamento. A interface deve permitir que uma forma geométrica tenha suas dimensões alteradas por um fator de escala.
Regras:
  • O fator de escala será um valor do tipo double
  • Um fator maior que 1 aumenta o tamanho
  • Um fator entre 0 e 1 diminui o tamanho
  • Considere que o fator será sempre positivo
Após a implementação, crie pelo menos um objeto de cada classe (Rect, Circle e Triangle), exiba a área e o perímetro originais, aplique um fator de escala (por exemplo, 2.0) e, em seguida, exiba novamente a área e o perímetro após o redimensionamento.