Classes Abstratas e Interfaces
Por: Victor Gonçalves • 23/5/2018 • Abstract • 701 Palavras (3 Páginas) • 258 Visualizações
Trabalho Prático
Classes Abstratas e Interfaces
Resolver em sala, individualmente ou em grupo de até dois alunos, e apresentar os resultados ao professor, até o dia 21/05/2018 (Matutino) ou 22/05/2018 (Noturno).
Objetivo do Trabalho: desenvolver habilidade de abstração e praticar uso de classes abstratas e interfaces.
1) Implementar em Java uma classe abstrata de nome Empregado, com os seguintes membros:
- nome : String
- sobrenome : String
- cpf : String
- Construtor que inicia os três atributos acima
- Getters e Setter para os atribuots acima
- String toString( )
- Método abstrato Double calcularSalario( )
2) Implementar uma interface Imprimivel, com o seguinte método abstrato: void mostrarDados().
3) Implementar três classes que extendem Empregado e implementam Imprimivel: Mensalista, Horista e Comissionado.
A classe Mensalista deve ter os seguintes membros:
- O atributo salario : double
- Construtor com 4 argumentos: nome, sobrenome, cpf, salario
- Método setSalario(double salario) que valida e só atualiza o salario, se o parâmetro for maior do que o salario atual do empregado, senão mantém este (regra: depois de contratado, o salario não pode diminuir, só aumentar)
- Getter para salario
- O salario ganho por Mensalista é o proprio conteúdo do atributo salario
- Mostrar os dados nome, sobrenome, cpf e salario
A classe Horista deve ter os seguintes membros:
- Os atributos valorHora : double e qtHoras : double
- Construtor com 4 argumentos: nome, sobrenome, cpf e valorHora
- Método setValorHora(double vrHora) que valida e só atualiza o valorHora, se o parâmetro for maior do que o valorHora atual do empregado, senão mantém este (regra: depois de contratado, o valor da hora não pode diminuir, só aumentar)
- Método setQtHoras(double qtH) deve validar se qtH é maior que zero e menor ou igual a 200, senão seta qtHoras = 0 (regra: empregado horista não pode trabalhar mais de 200 horas por mês e nem trabalha quantidade negativa de horas)
- Getters para valorHora e qtHoras
- O salario de horista é calculado pela quantidade de horas trabalhadas vezes o valor da hora, se quantidade até 168 horas; o que passar de 168 horas é hora extra e deve ser calculado com 50% de acréscimo [fórmula: (qtHoras – 168) *vrHora * 1.5.
- Mostrar os dados nome, sobrenome, cpf, valor da hora, quantidade de horas trabalhadas e salario.
A classe Comissionado deve ter os seguintes membros:
- Os atributos valorVendas : double e percentComissao : double
- Contrutor com 3 argumentos: nome, sobrenome e cpf
- Método setValorVendas(double vrVendas) deve validar se de vrVendas for menor que zero, setar valorVendas = 0
- Método setPercentComissão( ) não recebe parâmetro e seta este atributo conforme valorVendas: até $100.000 – percentComissão = 5,0; até $150.000 - percentVenda = 6.5; acima $150.000 – percentVenda = 7.5
- Getters para valorVendas e percentComissao
- O salario de comissionado é calculado pela valor de vendas vezes o percentual de comissão
- Mostrar os dados nome, sobrenome, cpf, valor de vendas, percentual de comissão e salario.
4) Criar ainda uma classe ComissionadoComFixo que extende a classe Comissionado mas acrescenta um salario base. Esta classe acrescenta o seguinte:
- um salarioFixo
- Getter e Setter para salarioFixo. O Setter tem mesma regra do setSalario do Mensalista
- O calculo do salario é o fixo mais a comissão como calculado para o comissionado
- Mostrar os mesmos dados do comissionado.
Por fim, criar uma classe Principal, para testar as classes implementadas. A classe Principal deve, no mínimo:
- Instanciar um objeto Mensalista chamando seu construtor com respectivos argumentos. Depois informar um salario para este, calcular o salario e mostrar seus dados
- Instanciar um objeto Horista chamando seu construtor com respectivos argumentos. Depois informar o valor da hora e a quantidade de horas trabalhadas no mês, calcular o salário e mostrar os dados.
- Instanciar um objeto Comissionado chamando seu construtor com respectivos argumentos. Depois informar a valor de vendas no mês, calcular o percentual de comissão, o salário e mostrar os dados.
- Instanciar um objeto ComissionadoComFixo chamando seu construtor com respectivos argumentos. Depois informar a valor do salario fixo e das vendas no mês, calcular o percentual de comissão, o salário e mostrar os dados
Use sua criatividade para resolver pontos omissos na especificação, justificando as decisões eventualmente tomadas. Não hesite em consultar o professor no caso de dúvidas!
...