Procurar
Últimos assuntos
Quem está conectado?
Há 1 usuário online :: 0 registrados, 0 invisíveis e 1 visitante :: 1 motor de buscaNenhum
[ Ver toda a lista ]
O recorde de usuários online foi de 192 em Ter Out 26, 2021 6:07 am
Atividade Prática 4: Exercitando Herança e Polimorfismo
Página 1 de 1
Atividade Prática 4: Exercitando Herança e Polimorfismo
2) Exercitando Polimorfismo. Considere a seguinte situação de uma empresa:
– Todos os Funcionários tem como atributos: nome e sobrenome;
– Funcionários podem ser gerentes, administradores, comissionados e horistas;
– Um administrador ganha um salário mensal;
– Um Gerente ganha um salário mensal mais uma bonificação;
– Comissionados ganham um salário mensal mais uma comissão em cima do total de vendas, tendo como atributos complementares : salario mensal, total de vendas e percentual de comissão;
– Horistas ganham em cima da quantidade de horas trabalhadas tendo como atributos próprios: quantidade de horas trabalhadas e valor da hora
a. Criar as classes necessárias para implementar a situação acima, usando Herança e polimorfismo;
b. Criar os métodos gets e sets para os atributos;
c. Criar métodos para mostrar os dados dos funcionários;
d. Criar métodos em cada classe para mostrar os ganhos mensais de acordo com a forma de pagamento de cada funcionário;
e. Na classe principal:
– Instanciar 6 funcionários sendo 2 horistas, 2 administradores, 1 comissionado e 1 gerente;
– Armazenar os funcionários em um vetor;
– Percorrer o vetor mostrando os dados dos funcionários e quanto cada um ganha por mês.
//Main
– Todos os Funcionários tem como atributos: nome e sobrenome;
– Funcionários podem ser gerentes, administradores, comissionados e horistas;
– Um administrador ganha um salário mensal;
– Um Gerente ganha um salário mensal mais uma bonificação;
– Comissionados ganham um salário mensal mais uma comissão em cima do total de vendas, tendo como atributos complementares : salario mensal, total de vendas e percentual de comissão;
– Horistas ganham em cima da quantidade de horas trabalhadas tendo como atributos próprios: quantidade de horas trabalhadas e valor da hora
a. Criar as classes necessárias para implementar a situação acima, usando Herança e polimorfismo;
b. Criar os métodos gets e sets para os atributos;
c. Criar métodos para mostrar os dados dos funcionários;
d. Criar métodos em cada classe para mostrar os ganhos mensais de acordo com a forma de pagamento de cada funcionário;
e. Na classe principal:
– Instanciar 6 funcionários sendo 2 horistas, 2 administradores, 1 comissionado e 1 gerente;
– Armazenar os funcionários em um vetor;
– Percorrer o vetor mostrando os dados dos funcionários e quanto cada um ganha por mês.
//Main
- Código:
package br.com.aluno.model;
import java.util.ArrayList;
/**
*
* @author User
*/
public class Main {
public static void main(String[] args) {
System.out.println("Hello World!");
//String sobrenomeColaborador, String descricaoCargo, double salarioMensal,
//String nomePessoa, String sexoPessoa, String enderecoString
Funcionario adminstrador = new Funcionario("vaz","ADMINSTRADOR",3.500,"Jose","Masculindo","Rua Liliane barbosa, setor alice");
//String sobrenomeColaborador, String descricaoCargo, double salarioMensal,
//double bonificacaoMensal, String nomePessoa, String sexoPessoa, String enderecoString)
Funcionario gerente = new Funcionario("vaz","GERENTE",5.000,500,"Jose","Masculindo","Rua Liliane barbosa, setor alice");
//String sobrenomeColaborador, String descricaoCargo, double salarioMensal,
//double bonificacaoMensal, double totalVendas, double percentualVendas, String nomePessoa,
//String sexoPessoa, String enderecoString
Funcionario comissionado = new Funcionario("vaz","COMISSIONADO",3.000,500,50.0000,0.2,"Jose","Masculindo","Rua Liliane barbosa, setor alice");
//String sobrenomeColaborador, String descricaoCargo,
//int horasTrabalhadas, double valorHora, String nomePessoa, String sexoPessoa, String enderecoString)
Funcionario horista = new Funcionario("vaz","HORISTA",20,7.0,"Jose","Masculindo","Rua Liliane barbosa, setor alice");
ArrayList<Funcionario> colaborador = new ArrayList();
colaborador.add(adminstrador);
colaborador.add(gerente);
colaborador.add(comissionado);
colaborador.add(horista);
for(Funcionario i : colaborador){
i.mostrarDados();
}
}
}
- Código:
package br.com.aluno.model;
/**
*
* @author User
*/
public class Pessoa {
private String nomePessoa;
private String sexoPessoa;
private String cpfPessoa;
private String enderecoString;
public Pessoa(String nomePessoa, String sexoPessoa, String enderecoString) {
this.nomePessoa = nomePessoa;
this.sexoPessoa = sexoPessoa;
this.enderecoString = enderecoString;
}
public void setNomePessoa(String nomePessoa) {
this.nomePessoa = nomePessoa;
}
public void setSexoPessoa(String sexoPessoa) {
this.sexoPessoa = sexoPessoa;
}
public void setCpfPessoa(String cpfPessoa) {
this.cpfPessoa = cpfPessoa;
}
public void setEnderecoString(String enderecoString) {
this.enderecoString = enderecoString;
}
public String getNomePessoa() {
return nomePessoa;
}
public String getSexoPessoa() {
return sexoPessoa;
}
public String getCpfPessoa() {
return cpfPessoa;
}
public String getEnderecoString() {
return enderecoString;
}
}
- Código:
package br.com.aluno.model;
/**
*
* @author User
*/
public class Funcionario extends Pessoa{
private String sobrenomeColaborador;
private String descricaoCargo;
private double salarioMensal;
private double bonificacaoMensal;
private double totalVendas;
private double percentualVendas;
private int horasTrabalhadas;
private double valorHora;
//adminstrador
public Funcionario(String sobrenomeColaborador, String descricaoCargo, double salarioMensal, String nomePessoa, String sexoPessoa, String enderecoString) {
super(nomePessoa, sexoPessoa, enderecoString);
this.sobrenomeColaborador = sobrenomeColaborador;
this.descricaoCargo = descricaoCargo;
this.salarioMensal = salarioMensal;
// System.out.println(descricaoCargo);
}
//gerente
public Funcionario(String sobrenomeColaborador, String descricaoCargo, double salarioMensal, double bonificacaoMensal, String nomePessoa, String sexoPessoa, String enderecoString) {
super(nomePessoa, sexoPessoa, enderecoString);
this.sobrenomeColaborador = sobrenomeColaborador;
this.descricaoCargo = descricaoCargo;
this.salarioMensal = salarioMensal + bonificacaoMensal;
// System.out.println(descricaoCargo);
}
//comissinados
public Funcionario(String sobrenomeColaborador, String descricaoCargo, double salarioMensal, double bonificacaoMensal, double totalVendas, double percentualVendas, String nomePessoa, String sexoPessoa, String enderecoString) {
super(nomePessoa, sexoPessoa, enderecoString);
this.sobrenomeColaborador = sobrenomeColaborador;
this.descricaoCargo = descricaoCargo;
this.salarioMensal = salarioMensal + bonificacaoMensal + (totalVendas * percentualVendas);
// System.out.println(descricaoCargo);
}
//horistas
public Funcionario(String sobrenomeColaborador, String descricaoCargo, int horasTrabalhadas, double valorHora, String nomePessoa, String sexoPessoa, String enderecoString) {
super(nomePessoa, sexoPessoa, enderecoString);
this.sobrenomeColaborador = sobrenomeColaborador;
this.descricaoCargo = descricaoCargo;
this.salarioMensal = horasTrabalhadas * valorHora;
// System.out.println(descricaoCargo);
}
public String getSobrenomeColaborador() {
return sobrenomeColaborador;
}
public String getDescricaoCargo() {
return descricaoCargo;
}
public double getSalarioMensal() {
return salarioMensal;
}
public double getBonificacaoMensal() {
return bonificacaoMensal;
}
public double getTotalVendas() {
return totalVendas;
}
public double getPercentualVendas() {
return percentualVendas;
}
public double getHorasTrabalhadas() {
return horasTrabalhadas;
}
public double getValorHora() {
return valorHora;
}
public void setSobrenomeColaborador(String sobrenomeColaborador) {
this.sobrenomeColaborador = sobrenomeColaborador;
}
public void setDescricaoCargo(String descricaoCargo) {
this.descricaoCargo = descricaoCargo;
}
public void setSalarioMensal(double salarioMensal) {
this.salarioMensal = salarioMensal;
}
public void setBonificacaoMensal(double bonificacaoMensal) {
this.bonificacaoMensal = bonificacaoMensal;
}
public void setTotalVendas(double totalVendas) {
this.totalVendas = totalVendas;
}
public void setPercentualVendas(double percentualVendas) {
this.percentualVendas = percentualVendas;
}
public void setHorasTrabalhadas(int horasTrabalhadas) {
this.horasTrabalhadas = horasTrabalhadas;
}
public void setValorHora(double valorHora) {
this.valorHora = valorHora;
}
public void mostrarDados(){
System.out.println(
"Tipo funcionario:" + this.getDescricaoCargo()
+"\nNome:"+ this.getNomePessoa() + "\nSobrenome:"+ this.getSobrenomeColaborador()
+"\nSexo:" + this.getSexoPessoa()+ "\nCPF:" + this.getCpfPessoa()
+"\nEndereço:" + this.getEnderecoString()+ "\nSalario:" + this.getSalarioMensal());
}
}
juk- Mensagens : 281
Data de inscrição : 02/04/2012
Tópicos semelhantes
» Atividade Prática 4: Exercitando Herança e Polimorfismo
» Atividade Prática 3: Exercitando o relacionamento entre classes
» Atividade Prática 2: Exercitando a criação de classes e objetos
» Atividade Prática 5: Classes Abstratas e Interfaces
» Atividade Prática 1: Problemas Básicos de Programação
» Atividade Prática 3: Exercitando o relacionamento entre classes
» Atividade Prática 2: Exercitando a criação de classes e objetos
» Atividade Prática 5: Classes Abstratas e Interfaces
» Atividade Prática 1: Problemas Básicos de Programação
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
Seg Jul 29, 2024 9:20 pm por juk
» H2 ERRO h2-databse not found
Dom Jul 28, 2024 5:16 pm por juk
» NPM START ERRO PSSecurityException UnauthorizedAccess
Dom Jul 28, 2024 5:02 pm por juk
» Top 5 GUI tools for PostgreSQL in 2024
Qua Jun 26, 2024 9:04 pm por juk
» Configurando wifi via Terminal no Ubuntu 22.04
Ter maio 28, 2024 9:59 pm por juk
» Atividade Complementar Classes Abstratas, Interfaces e Tratamento de Exceções
Seg maio 20, 2024 10:55 pm por juk
» Atividade Complementar Classes Abstratas, Interfaces e Tratamento de Exceções
Seg maio 20, 2024 10:52 pm por juk
» CRIANDO UM MONITOR VIRTUAL
Qui maio 16, 2024 9:29 pm por juk
» Atividade Prática 5: Classes Abstratas e Interfaces
Seg maio 13, 2024 10:24 pm por juk