Este projeto contém diversas atividades relacionadas a conceitos de Encapsulamento, Herança, Polimorfismo e Abstração em Java.
-
Criação de uma Classe Simples
- Objetivo: Crie uma classe
Produtoque represente um produto de uma loja. A classe deve ter atributos privadosnome,precoequantidadeem estoque. Implemente métodos públicos para acessar e modificar esses atributos. Garanta que o preço e a quantidade não possam ser negativos.
- Objetivo: Crie uma classe
-
Melhorando a Classe com Validação
- Objetivo: Extenda a classe
Produtopara incluir um métodoaplicarDesconto(double porcentagem)que reduz o preço do produto. Valide para garantir que o desconto não possa ser maior que 50%. Implemente a lógica que lança uma exceção se o desconto for inválido.
- Objetivo: Extenda a classe
-
Criação de uma Hierarquia de Classes
- Objetivo: Crie uma classe
Funcionariocom atributosnomeesalario. Em seguida, crie duas subclasses:GerenteeDesenvolvedor. Adicione um métodocalcularBonusque retorna um valor diferente para cada tipo de funcionário (por exemplo, 20% do salário paraGerentee 10% paraDesenvolvedor). Utilizeprotectedpara permitir que as subclasses acessem os atributos da classe base de forma segura.
- Objetivo: Crie uma classe
-
Sobrescrita de Métodos
- Objetivo: Na classe
Funcionario, crie um métodotrabalhar(), que imprime uma mensagem genérica sobre o trabalho realizado. Nas subclassesGerenteeDesenvolvedor, sobrescreva esse método para especificar o tipo de trabalho realizado por cada um. Utilize a anotação@Overridee explore como ela ajuda a garantir que a sobrescrita foi feita corretamente.
- Objetivo: Na classe
-
Polimorfismo com Interfaces
- Objetivo: Crie uma interface
IMeioTransportecom métodosacelerar()efrear(). Implemente essa interface em classesCarro,BicicletaeTrem. No método principal, crie um array deIMeioTransportee percorra-o chamandoacelerar()efrear()para cada objeto. Utilize polimorfismo para que cada tipo de transporte implementeacelerar()efrear()de maneira diferente.
- Objetivo: Crie uma interface
-
Polimorfismo com Classes Abstratas
- Objetivo: Crie uma classe abstrata
Animalcom um método abstratoemitirSom(). Crie subclassesCachorro,GatoeVaca, cada uma implementandoemitirSom()de maneira específica. Crie uma lista deAnimalno método principal e adicione instâncias de cada subclasse. Itere sobre a lista e invoque o métodoemitirSom()para cada animal, demonstrando o polimorfismo.
- Objetivo: Crie uma classe abstrata
-
Abstração em um Sistema de Pagamentos
- Objetivo: Crie uma classe abstrata
FormaPagamentocom métodos abstratosprocessarPagamento(double valor)evalidarPagamento(). Crie classes concretasCartaoCredito,BoletoePixque herdam deFormaPagamentoe implementam os métodos abstratos. Adicione lógica de validação específica para cada forma de pagamento e simule um sistema que utilize diferentes formas de pagamento.
- Objetivo: Crie uma classe abstrata
-
Sistema de Gestão de Funcionários
- Objetivo: Crie um sistema que gerencie diferentes tipos de funcionários (
Gerente,Desenvolvedor,Estagiario). Cada tipo de funcionário deve ter uma maneira diferente de calcular o salário e o bônus. Utilize uma combinação de herança, polimorfismo e encapsulamento para estruturar as classes. Implemente um métodocalcularFolhaPagamentoque itera sobre todos os funcionários e calcula o total de salários e bônus. Adicione novas funcionalidades, como a possibilidade de promover um funcionário, o que altera seu tipo e os cálculos de salário e bônus.
- Objetivo: Crie um sistema que gerencie diferentes tipos de funcionários (
Primeiro, clone o repositório do GitHub para sua máquina local:
git clone https://github.com/RafaelSanntos/atividade-8.gitcd atividade-8javac -d bin src/**/*.javajava -cp bin MainSiga as instruções no console para interagir com o menu e realizar as operações desejadas.