exemplo utilizando polimorfismo
DESCRIPTION
Exemplo Utilizando PolimorfismoTRANSCRIPT
Universidade Paulista (UNIP) / Campi: Chácara II / ParaísoUniversidade Paulista (UNIP) / Campi: Chácara II / ParaísoInstituto de Ciências Exatas e Tecnológicas (ICET)Instituto de Ciências Exatas e Tecnológicas (ICET)
Turma: Sistema de Informação / Ciência da ComputaçãoTurma: Sistema de Informação / Ciência da ComputaçãoDisciplina: Linguagem de Programação Orientada a ObjetosDisciplina: Linguagem de Programação Orientada a Objetos
Prof. MSc. Vladimir CameloProf. MSc. Vladimir Camelo
Exercícios utilizando PolimorfismoExercícios utilizando Polimorfismo
PPRIMEIRORIMEIRO E EXEMPLOXEMPLO DEDE UTILIZAÇÃOUTILIZAÇÃO DEDE P POLIMORFISMOOLIMORFISMO
public class FiguraGeometrica2D {private double base;protected double altura;public FiguraGeometrica2D( double b, double h ) {
base = b;altura = h;
}public double calculaArea() {
return base * altura;}
}
public class Quadrado extends FiguraGeometrica2D{public Quadrado (double base, double altura) {
super (base, altura);}public double calculaArea( ) {
return super.calculaArea();}
}
public class Triangulo extends FiguraGeometrica2D {public Triangulo (double base, double altura) {
super (base, altura);}
public double calculaArea() {return super.calculaArea()/2.0;
}}
public class Trapezio extends FiguraGeometrica2D {
private double baseMaior;
public Trapezio (double baseMenor, double altura, double baseMaior) {super (baseMenor, altura);this.baseMaior = baseMaior;
}
public double calculaArea() {return super.calculaArea()/2 + baseMaior*altura/2;
}}
public class TesteFigura {public static void main (String args[]) {Quadrado q1 = new Quadrado( 10, 20);System.out.println ("A figura geométrica é um: " + q1.getClass().getSimpleName());System.out.println ("Valor da área: " + q1.calculaArea());
Triangulo t1 = new Triangulo (10, 20);System.out.println ("A figura geométrica é um: " + t1.getClass().getSimpleName());System.out.println ("Valor da área: " + t1.calculaArea());
Trapezio tr1 = new Trapezio (4, 24, 6);System.out.println ("A figura geométrica é um: " + tr1.getClass().getSimpleName());System.out.println ("Valor da área: " + tr1.calculaArea());
FiguraGeometrica2D q2 = new Quadrado (30, 40);System.out.println ("A figura geométrica é um: " + q2.getClass().getSimpleName());System.out.println ("Valor da área: " + q2.calculaArea());
FiguraGeometrica2D t2 = new Triangulo (30, 40);System.out.println ("A figura geométrica é um: " + t2.getClass().getSimpleName());System.out.println ("Valor da área: " + t2.calculaArea());
FiguraGeometrica2D tr2 = new Trapezio (8, 12, 6);System.out.println ("A figura geométrica é um: " + tr1.getClass().getSimpleName());System.out.println ("Valor da área: " + tr2.calculaArea());}
}
SSEGUNDOEGUNDO E EXEMPLOXEMPLO DEDE UTILIZAÇÃOUTILIZAÇÃO DEDE P POLIMORFISMOOLIMORFISMO
public class EmpregadoComissionadoFixo extends EmpregadoComissionado {private double salarioFixo;public EmpregadoComissionadoFixo(String primeiroNome,
String segundoNome,String numeroCIC,double vendas,double taxa, double salFixo ) {
super (primeiroNome, segundoNome, numeroCIC, vendas, taxa);setSalarioFixo ( salFixo );
}
public void setSalarioFixo ( double salario) {salarioFixo = (salario < 0.0 ) ? 0.0 : salario;
}
public double getSalarioFixo () {return salarioFixo;
}
public double calculaGanhos(){return (salarioFixo + super.calculaGanhos());
}
public String toString() {return super.toString() + "\nSalário fixo: " + salarioFixo;
} }
public class EmpregadoComissionado extends Object {
private String nome; private String sobrenome; private String CIC; private double vendasBrutas; private double comissao;
public EmpregadoComissionado(String primeiroNome, String segundoNome,
String numeroCIC,double vendas, double taxa ) {
nome = primeiroNome; sobrenome = segundoNome; CIC = numeroCIC; setVendasBrutas( vendas ); setComissao( taxa );
}
public void setNome( String primeiroNome ) {nome = primeiroNome;
}
public String getNome() {return nome;
} public void setSobrenome( String segundoNome ){
sobrenome = segundoNome;} public String getSobrenome() {
return sobrenome;} public void setCIC( String numeroCIC ) {
CIC = numeroCIC;} public String getCIC() {
return CIC;} public void setVendasBrutas( double vendas ) {
vendasBrutas = ( vendas < 0.0 ) ? 0.0 : vendas;} public double getVendasBrutas() {
return vendasBrutas;} public void setComissao( double taxa ) {
comissao = ( taxa > 0.0 && taxa < 1.0 ) ? taxa : 0.0;} public double getComissao() {
return comissao;} public double calculaGanhos(){
return comissao * vendasBrutas;} public String toString(){
return String.format( "%s: %s %s\n%s: %s\n%s: %.2f\n%s: %.2f\n %s%.2f ", "Nome Completo", nome, sobrenome, "Número do CIC", CIC, "Vendas Brutas", vendasBrutas, "Taxa de comissão", comissao, "Salário Total ", calculaGanhos());
} }
public class TestePolimorfismo {public static void main( String args[] ) {
EmpregadoComissionado e1 = new EmpregadoComissionado("Vladimir", "Camelo","123456789-01", 10000, 0.6 );
System.out.println(e1 + "\n\nInformações do empregado");EmpregadoComissionadoFixo e2 = new EmpregadoComissionadoFixo(
"Anna Clara","Camelo", "111111111-11",5000, 0.1, 7500);System.out.println( e2 + "\n\nInformações do empregado" );e1 = e2; // instrução mais importante do programaSystem.out.println( e1 + "\n\nAinda não sei que tipo de empregado é!!!");EmpregadoComissionado e3 = new EmpregadoComissionadoFixo(
"Ana", "Maria", "3456543-32", 2000, 0.5, 12000);System.out.printf( e3 + "\n\nO que será o empregado e3??");
} }