🧩 Exercícios: Interfaces, Contratos, Default Methods e Inversão de Controle
Spec Sistemas Com Java • Trilha Progressiva em 4 Níveis
🧭 Navegação Pedagógica
-
📖 Teoria do Capítulo 💻 Exemplos 📊 Slides 🧠 Quiz
🎯 Nível 1: Fundamentos
Problema 10.1 — Declaração de Interface e Inversão de Dependências (DIP)
Contexto: Declaração de Interface e Inversão de Dependências (DIP) no contexto de Interfaces, Contratos, Default Methods e Inversão de Controle.
Requisitos de Execução:
- Criar interface
ServicoTaxae injetar no processador de pagamento desacoplando implementação.
Resultado Esperado
Serviço desacoplado através de contrato de interface.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_10_1_SeuNome - Envie na tarefa:
Atividade Cap 10 - Interfaces, Contratos, Default Methods e Inversão de Controle
🔑 Gabarito de Código & Solução Comentada
package com.empresa.sistemas;
public interface ServicoTaxa { double calcularTaxa(double v); }
public class TaxaBrasil implements ServicoTaxa {
public double calcularTaxa(double v) { return v * 0.15; }
}
🔍 Nível 2: Prática
Problema 10.2 — Default Methods e Static Methods em Interfaces
Contexto: Default Methods e Static Methods em Interfaces no contexto de Interfaces, Contratos, Default Methods e Inversão de Controle.
Requisitos de Execução:
- Declarar método com implementação padrão
defaulte método utilitáriostaticem interface.
Resultado Esperado
Métodos default e estáticos provendo extensibilidade sem quebrar clientes legados.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_10_2_SeuNome - Envie na tarefa:
Atividade Cap 10 - Interfaces, Contratos, Default Methods e Inversão de Controle
🔑 Gabarito de Código & Solução Comentada
package com.empresa.sistemas;
public interface Validador<T> {
boolean validar(T item);
default boolean validarNaoNulo(T item) { return item != null && validar(item); }
}
⚡ Nível 3: Integração
Problema 10.3 — Múltiplas Interfaces e Resolução de Conflitos de Default Methods
Contexto: Múltiplas Interfaces e Resolução de Conflitos de Default Methods no contexto de Interfaces, Contratos, Default Methods e Inversão de Controle.
Requisitos de Execução:
- Resolver conflito de métodos default homônimos sobrescrevendo e invocando
InterfaceA.super.metodo().
Resultado Esperado
Conflito de herança múltipla de comportamento resolvido explicitamente.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_10_3_SeuNome - Envie na tarefa:
Atividade Cap 10 - Interfaces, Contratos, Default Methods e Inversão de Controle
🔑 Gabarito de Código & Solução Comentada
package com.empresa.sistemas;
interface A { default void log() { System.out.println("A"); } }
interface B { default void log() { System.out.println("B"); } }
class Resolvedor implements A, B {
public void log() { A.super.log(); }
}
🏆 Nível 4: Desafio Corporativo
Problema 10.4 — Interfaces Funcionais com @FunctionalInterface e Contratos SAM
Contexto: Interfaces Funcionais com @FunctionalInterface e Contratos SAM no contexto de Interfaces, Contratos, Default Methods e Inversão de Controle.
Requisitos de Execução:
- Declarar interface com único método abstrato e instanciá-la através de expressão lambda.
Resultado Esperado
Interface funcional SAM pronta para uso com lambdas e method references.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_10_4_SeuNome - Envie na tarefa:
Atividade Cap 10 - Interfaces, Contratos, Default Methods e Inversão de Controle
🔑 Gabarito de Código & Solução Comentada
package com.empresa.sistemas;
@FunctionalInterface
public interface Transformador<T, R> {
R transformar(T entrada);
}
| ⬅️ Voltar ao Índice de Exercícios | 📚 Sumário de Tópicos |