Crie um projeto em Java para calcular a folha de pagamento de uma empresa. O projeto deve conter a seguinte estrutura:
Classe conceitual Funcionário abstrata:
Atributos mínimos: nome, salário e bônus.
Métodos mínimos: calcular pagamento, getters e setters.
O bônus de um funcionário é o equivalente a 10% do seu salário.
Classes conceituais Analista e Gerente como subclasses de Funcionário. Considere que o bônus de funcionários analistas é de 20% do salário e que o bônus de funcionários gerentes é de 10% do salário mais uma comissão de R$3.000,00.
Classe principal executável instancie uma vez cada classe conceitual concreta de funcionário e informar na console o valor do pagamento para cada instância de funcionário criada.
Crie um projeto em Java com classes conceituais em uma hierarquia de heranças para representar cada um dos conceitos a seguir:
Cubo
Forma Geométrica
Forma Não Plana
Forma Plana
Octaedro
Poliedro
Quadrado
Quadrilátero
Retângulo
Tetraedro (pirâmide)
Triângulo
2.1) Defina quais classes da hierarquia serão classes abstratas e quais classes serão classes concretas.
2.2) Toda classe conceitual que represente uma forma deve conter os atributos de nome e cor, com os seus métodos get e set. Toda forma deve poder ser instanciada pela informação do nome e cor da forma.
2.3) Toda classe conceitual que representa uma forma plana deve conter o atributo de área, com os seus métodos get e set.
2.4) Toda classe conceitual que representa uma forma não plana deve conter os atributos de área e volume, com os seus métodos get e set.
2.5) Crie uma classe principal executável que instancie pelo menos uma vez cada uma das classes conceituais concretas de forma.
2.6) Crie métodos abstratos para calcular a área e volume das formas e os posicione nas classes abstratas corretas da hierarquia.
2.7) Implemente os métodos de calcular a área e volume nas classes concretas corretas da hierarquia. *Estes métodos não precisam efetivamente calcular a área e volume das formas, pode apenas simular com um print na saída da console.
2.8) Teste a chamada dos métodos a partir das instâncias de forma criadas.
Crie um projeto em Java para simular a criação de personagens para um jogo. O projeto deve conter a seguinte estrutura:
Classe conceitual abstrata Personagem
Atributos mínimos: nome; tipo (NPC ou jogável); vida (número inteiro de 0 a 100); força (número inteiro de 0 a 100).
Métodos mínimos: método construtor que receba uma String como parâmetro para inicialização do atributo nome; getters e setters.
Classe conceitual NPC
Subclasse da classe Personagem
Ao criar uma instância os valores de vida e força devem ser inicializados automaticamente de forma randômica.
Classe conceitual PersonagemJogavel
Subclasse da classe Personagem
Ao criar uma instância os valores de vida e força devem ser inicializados com 100 e 10, respectivamente.
Classe principal executável
Deve criar instâncias das classes conceituais e executar os métodos necessários para o teste da solução.
💬 DICA: Utilize .getClass().getName() para obter o tipo do personagem e random para atribuições do personagem NPC.
Crie uma classe abstrata para representar um GiftCard (Cartão de Presente). Esta classe abstrata deve conter atributos que representem o nome do cartão; o número do cartão; o beneficiário e o valor do cartão. Além disso, a classe deve conter um método abstrato para a definição da forma de uso do cartão.
Uma vez criada a classe abstrata, crie uma subclasse conceitual concreta a partir dela para representar um tipo de cartão. Ex.: Uber, IFood, Gamepass.
Em uma classe principal executável, crie instâncias da sua subclasse para testar o funcionamento dos cartões.
Crie um projeto em Java para um sistema de controle de acesso de espaço físico. O projeto deve seguir as seguintes regras de negócio:
Visitantes podem acessar espaços públicos.
Trabalhadores podem acessar espaços públicos e espaços privados de trabalho.
Administradores podem acessar espaços públicos, espaços privados de trabalho e espaços administrativos, ou seja, todos os espaços.
Desta forma, seu projeto deve conter:
Uma hierarquia de classes conceituais para definir os tipos de usuários do sistema.
Uma hierarquia de classes conceituais para definir os tipos de espaços físicos do sistema.
Um método que represente o comportamento acessar o espaço físico que retorne um valor booleano se foi possível ou não acessar o espaço. Ex: Usuario.acessar(EspaçoFisico) : boolean
Uma classe conceitual de Log que faça o registro de todos os acessos realizados (ou seja, os acessos bem sucedidos) pelos usuários do sistema.
Uma classe principal executável
Deve criar instâncias das classes conceituais e executar os métodos necessários para o teste da solução.
💬 DICA: Utilize .getClass().getName() e Listas.
🚀EXTRA: Se desejar fazer uma solução mais avançada, você pode assumir que os espaços físicos podem conter outros espaços físicos (criando subespaços) e usar isso como limitador do acesso dos usuários aos subespaços.
Observação: Para realizar esta lista de exercícios é necessário ter acompanhado as aulas de orientação a objetos passando pelo conteúdo de Herança até o conteúdo sobre Classes Abstratas.