Interface para processamento de números: Filtragem e Transformação

Java Medium interfaces

Tarefa «Interface para processamento de números: Filtragem e Transformação»

Implemente as interfaces NumberFilter e NumberTransformer com os métodos únicos boolean filter(int number) e int transform(int number), respectivamente. Crie as classes EvenFilter (mantém números pares), OddFilter (mantém números ímpares), SquareTransformer (retorna o quadrado do número), IncrementTransformer (incrementa em 1). No main, leia um número n, depois n números inteiros. Aplique a cada número o filtro e a transformação: se o filtro retornar true, exiba o resultado da transformação; caso contrário, exiba o próprio número. Use polimorfismo através das interfaces.

Formato de Entrada

Primeira linha: um número inteiro n (1 ≤ n ≤ 100). Segunda linha: n números inteiros separados por espaços, cada um de -1000 a 1000.

Formato de Saída

Exiba n números (separados por espaço) — o resultado do processamento de cada número de acordo com a regra: se o número for par, exiba seu quadrado; se for ímpar, exiba o número incrementado em 1.

Exemplos

Exemplo 1

ENTRADA
3 -2 -1 0
SAÍDA
4 0 0

Exemplo 2

ENTRADA
5 1 2 3 4 5
SAÍDA
2 4 4 16 6
main.java