SlideShare una empresa de Scribd logo
1 de 7
IngenieríaenAnimación Digital
y EfectosVisuales
Asignatura: ProgramaciónOrientadaaObjetos
Profesor: ISC.LizbethHernándezOlán
Unidad4 Polimorfismo Fecha: 31/05/17
Practica 1 Polimorfismo Página 1 de 7
No.Control 16081852 NombredelAlumno NEQUIZORTIZURIEL
1.EnuciadodelProblema.
Vamosaverificarporquealgunosprogramasnologranejecutarse.
2.CódigoFuente
//*practica1//
// NEQUIZORTIZURIEL.//
//Num.Control: 16081852//
publicabstractclassEmpleado
{
privateStringprimerNombre;
privateStringapellidoPaterno;
privateStringnumeroSeguroSocial;
//constructorcontresargumentos
publicEmpleado(Stringnombre,Stringapellido,Stringnss)
{
primerNombre=nombre;
apellidoPaterno=apellido;
numeroSeguroSocial=nss;
}//findelconstructordeEmpleadocontresargumentos
//estableceelprimernombre
publicvoidestablecerPrimerNombre(Stringnombre)
{
primerNombre=nombre;
}//findelmétodoestablecerPrimerNombre
//devuelveelprimernombre
publicStringobtenerPrimerNombre()
{
returnprimerNombre;
}//findelmétodoobtenerPrimerNombre
//estableceelapellidopaterno
publicvoidestablecerApellidoPaterno(Stringapellido)
{
apellidoPaterno=apellido;
}//findelmétodoestablecerApellidoPaterno
//devuelveelapellidopaterno
publicStringobtenerApellidoPaterno()
{
returnapellidoPaterno;
}//findelmétodoobtenerApellidoPaterno
//estableceelnúmerodesegurosocial
publicvoidestablecerNumeroSeguroSocial(Stringnss)
{
numeroSeguroSocial=nss;//debevalidar
}//findelmétodoestablecerNumeroSeguroSocial
//devuelveelnúmerodesegurosocial
publicStringobtenerNumeroSeguroSocial()
{
returnnumeroSeguroSocial;
}//findelmétodoobtenerNumeroSeguroSocial
//devuelverepresentaciónStringdeunobjetoEmpleado
publicStringtoString()
{
returnString.format("%s%snnumerodesegurosocial:%s",
obtenerPrimerNombre(),obtenerApellidoPaterno(),obtenerNumeroSeguroSocial());
}//findelmétodotoString
//métodoabstractosobrescritoporlassubclases
publicabstractdoubleingresos();//aquínohayimplementación
}
publicclassEmpleadoAsalariadoextendsEmpleado
{
privatedoublesalarioSemanal;
//constructordecuatroargumentos
publicEmpleadoAsalariado(Stringnombre,Stringapellido,Stringnss,
doublesalario)
{
super(nombre,apellido,nss);//lospasaalconstructordeEmpleado
establecerSalarioSemanal(salario);//validayalmacenaelsalario
}//findelconstructordeEmpleadoAsalariadoconcuatroargumentos
publicvoidestablecerSalarioSemanal(doublesalario)
{
salarioSemanal=salario<0.0?0.0:salario;
}//findelmétodoestablecerSalarioSemanal
//devuelveelsalario
publicdoubleobtenerSalarioSemanal()
{
returnsalarioSemanal;
}//findelmétodoobtenerSalarioSemanal
//calculalosingresos;sobrescribeelmétodoabstractoingresosenEmpleado
publicdoubleingresos()
{
returnobtenerSalarioSemanal();
}//findelmétodoingresos
//devuelverepresentaciónStringdeunobjetoEmpleadoAsalariado
publicStringtoString()
{
returnString.format("empleadoasalariado:%sn%s:$%,.2f",
super.toString(),"salariosemanal",obtenerSalarioSemanal());
}//findelmétodotoString
}
publicclassEmpleadoPorHorasextendsEmpleado
{
privatedoublesueldo;//sueldoporhora
privatedoublehoras;//horastrabajadasporsemana
//constructorconcincoargumentos
publicEmpleadoPorHoras(Stringnombre,Stringapellido,Stringnss,
doublesueldoPorHoras,doublehorasTrabajadas)
{
super(nombre,apellido,nss);
establecerSueldo(sueldoPorHoras);//validayalmacenaelsueldoporhoras
establecerHoras(horasTrabajadas);//validayalmacenalashorastrabajadas
}//findelconstructordeEmpleadoPorHorasconcincoargumentos
//estableceelsueldo
publicvoidestablecerSueldo(doublesueldoPorHoras)
{
sueldo=(sueldoPorHoras<0.0)?0.0:sueldoPorHoras;
}//findelmétodoestablecerSueldo
//devuelveelsueldo
publicdoubleobtenerSueldo()
{
returnsueldo;
}//findelmétodoobtenerSueldo
//establecelashorastrabajadas
publicvoidestablecerHoras(doublehorasTrabajadas)
{
horas=((horasTrabajadas>=0.0)&&(horasTrabajadas<=168.0))?
horasTrabajadas:0.0;
}//findelmétodoestablecerHoras
//devuelvelashorastrabajadas
publicdoubleobtenerHoras()
{
returnhoras;
}//findelmétodoobtenerHoras
//calculalosingresos;sobrescribeelmétodoabstractoingresosenEmpleado
publicdoubleingresos()
{
if(obtenerHoras()<=40)//nohaytiempoextra
returnobtenerSueldo()*obtenerHoras();
else
return40*obtenerSueldo()+(obtenerHoras()-40)*obtenerSueldo()*1.5;
}//findelmétodoingresos
//devuelverepresentaciónStringdeunobjetoEmpleadoPorHoras
publicStringtoString()
{
returnString.format("empleadoporhoras:%sn%s:$%,.2f;%s:%,.2f",
super.toString(),"sueldoporhora",obtenerSueldo(),
"horastrabajadas",obtenerHoras());
}//findelmétodotoString
}
publicclassEmpleadoPorComisionextendsEmpleado
{
privatedoubleventasBrutas;//ventastotalesporsemana
privatedoubletarifaComision;//porcentajedecomisión
//constructorconcincoargumentos
publicEmpleadoPorComision(Stringnombre,Stringapellido,Stringnss,
doubleventas,doubletarifa)
{
super(nombre,apellido,nss);
establecerVentasBrutas(ventas);
establecerTarifaComision(tarifa);
}//findelconstructordeEmpleadoPorComisionconcincoargumentos
//establecelatarifadecomisión
publicvoidestablecerTarifaComision(doubletarifa)
{
tarifaComision=(tarifa>0.0&&tarifa<1.0)?tarifa:0.0;
}//findelmétodoestablecerTarifaComision
//devuelvelatarifadecomisión
publicdoubleobtenerTarifaComision()
{
returntarifaComision;
}//findelmétodoobtenerTarifaComision
//estableceelmontodeventasbrutas
publicvoidestablecerVentasBrutas(doubleventas)
{
ventasBrutas=(ventas<0.0)?0.0:ventas;
}//findelmétodoestablecerVentasBrutas
//devuelveelmontodeventasbrutas
publicdoubleobtenerVentasBrutas()
{
returnventasBrutas;
}//findelmétodoobtenerVentasBrutas
//calculalosingresos;sobrescribeelmétodoabstractoingresosenEmpleado
publicdoubleingresos()
{
returnobtenerTarifaComision()*obtenerVentasBrutas();
}//findelmétodoingresos
//devuelverepresentaciónStringdeunobjetoEmpleadoPorComision
publicStringtoString()
{
returnString.format("%s:%sn%s:$%,.2f;%s:%.2f",
"empleadoporcomision",super.toString(),
"ventasbrutas",obtenerVentasBrutas(),
"tarifadecomision",obtenerTarifaComision());
}//findelmétodotoString
}
publicclassEmpleadoBaseMasComisionextendsEmpleadoPorComision
{
privatedoublesalarioBase;//salariobaseporsemana
//constructorconseisargumentos
publicEmpleadoBaseMasComision(Stringnombre,Stringapellido,
Stringnss,doubleventas,doubletarifa,doublesalario)
{
super(nombre,apellido,nss,ventas,tarifa);
establecerSalarioBase(salario);//validayalmacenaelsalariobase
}//findelconstructordeEmpleadoBaseMasComisionconseisargumentos
//estableceelsalariobase
publicvoidestablecerSalarioBase(doublesalario)
{
salarioBase=(salario<0.0)?0.0:salario;//positivo
}
//devuelveelsalariobase
publicdoubleobtenerSalarioBase()
{
returnsalarioBase;
}//findelmétodoobtenerSalarioBase
//calculalosingresos;sobrescribeelmétodoingresosenEmpleadoPorComision
publicdoubleingresos()
{
returnobtenerSalarioBase()+super.ingresos();
}//findelmétodoingresos
//devuelverepresentaciónStringdeunobjetoEmpleadoBaseMasComision
publicStringtoString()
{
returnString.format("%s%s;%s:$%,.2f",
"consalariobase",super.toString(),
"salariobase",obtenerSalarioBase());
}//findelmétodotoString
}
publicclassPruebaSistemaNomina
{
publicstaticvoidmain(Stringargs[])
{
//creaobjetosdelassubclases
EmpleadoAsalariadoempleadoAsalariado=
newEmpleadoAsalariado("John","Smith","111-11-1111",800.00);
EmpleadoPorHorasempleadoPorHoras=
newEmpleadoPorHoras("Karen","Price","222-22-2222",16.75,40);
EmpleadoPorComisionempleadoPorComision=
newEmpleadoPorComision(
"Sue","Jones","333-33-3333",10000,.06);
EmpleadoBaseMasComisionempleadoBaseMasComision=
newEmpleadoBaseMasComision(
"Bob","Lewis","444-44-4444",5000,.04,300);
System.out.println("Empleadosprocesadosporseparado:n");
System.out.printf("%sn%s:$%,.2fnn",
empleadoAsalariado,"ingresos",empleadoAsalariado.ingresos());
System.out.printf("%sn%s:$%,.2fnn",
empleadoPorHoras,"ingresos",empleadoPorHoras.ingresos());
System.out.printf("%sn%s:$%,.2fnn",
empleadoPorComision,"ingresos",empleadoPorComision.ingresos());
System.out.printf("%sn%s:$%,.2fnn",
empleadoBaseMasComision,
"ingresos",empleadoBaseMasComision.ingresos());
//creaunarregloEmpleadodecuatroelementos
Empleadoempleados[]=newEmpleado[4];
//inicializaelarregloconobjetosEmpleado
empleados[0]=empleadoAsalariado;
empleados[1]=empleadoPorHoras;
empleados[2]=empleadoPorComision;
empleados[3]=empleadoBaseMasComision;
System.out.println("Empleadosprocesadosenformapolimorfica:n");
//procesaenformagenéricaacadaelementoenelarreglodeempleados
for(EmpleadoempleadoActual:empleados)
{
System.out.println(empleadoActual);//invocaatoString
//determinasielelementoesunEmpleadoBaseMasComision
if(empleadoActualinstanceofEmpleadoBaseMasComision)
{
//conversióndescendentedelareferenciadeEmpleado
//aunareferenciadeEmpleadoBaseMasComision
EmpleadoBaseMasComisionempleado=
(EmpleadoBaseMasComision)empleadoActual;
doublesalarioBaseAnterior=empleado.obtenerSalarioBase();
empleado.establecerSalarioBase(1.10*salarioBaseAnterior);
System.out.printf(
"elnuevosalariobasecon10%%deaumentoes:$%,.2fn",
empleado.obtenerSalarioBase());
}//findeif
System.out.printf(
"ingresos$%,.2fnn",empleadoActual.ingresos());
}//findefor
//obtieneelnombredeltipodecadaobjetoenelarreglodeempleados
for(intj=0;j<empleados.length;j++)
System.out.printf("Elempleado%desun%sn",j,
empleados[j].getClass().getName());
}//findemain
}
3.Impresiondepantalla,sóloelresultadoobtenido(noimpresionesdecódigo)
Practica 1   u4

Más contenido relacionado

Similar a Practica 1 u4 (20)

Practica 9-unidad-2
Practica 9-unidad-2Practica 9-unidad-2
Practica 9-unidad-2
 
Practica 4 unidad 2
Practica 4   unidad 2Practica 4   unidad 2
Practica 4 unidad 2
 
Prac1
Prac1Prac1
Prac1
 
Poo practica-1-u2
Poo practica-1-u2Poo practica-1-u2
Poo practica-1-u2
 
Practica 4 unidad 2
Practica 4   unidad 2Practica 4   unidad 2
Practica 4 unidad 2
 
Practica 8
Practica 8 Practica 8
Practica 8
 
Practica 4 de poo
Practica 4 de pooPractica 4 de poo
Practica 4 de poo
 
Practica 5 unidad 2
Practica 5   unidad 2Practica 5   unidad 2
Practica 5 unidad 2
 
Practica 11 u2 poo claudia
Practica 11 u2 poo claudiaPractica 11 u2 poo claudia
Practica 11 u2 poo claudia
 
Practica 2
Practica 2Practica 2
Practica 2
 
Practica 7 unidad 2
Practica 7 unidad 2Practica 7 unidad 2
Practica 7 unidad 2
 
Practica 11
Practica 11Practica 11
Practica 11
 
Practica 5
Practica 5Practica 5
Practica 5
 
1
11
1
 
Practica 8 unidad 2 poo
Practica 8   unidad 2 poo Practica 8   unidad 2 poo
Practica 8 unidad 2 poo
 
Practica 9 -unidad 2
Practica 9   -unidad 2Practica 9   -unidad 2
Practica 9 -unidad 2
 
Prac1
Prac1Prac1
Prac1
 
Practica 6-unidad-2
Practica 6-unidad-2Practica 6-unidad-2
Practica 6-unidad-2
 
Practica 5 u2 poo
Practica 5 u2 pooPractica 5 u2 poo
Practica 5 u2 poo
 
Practica 7 unidad 2
Practica 7 unidad 2Practica 7 unidad 2
Practica 7 unidad 2
 

Más de NEQUIZ URIEL

Más de NEQUIZ URIEL (20)

Ortiz enciso antonio aldahir evidencias innovacion
Ortiz enciso antonio aldahir evidencias innovacionOrtiz enciso antonio aldahir evidencias innovacion
Ortiz enciso antonio aldahir evidencias innovacion
 
Preguntas unidad 4
Preguntas unidad 4Preguntas unidad 4
Preguntas unidad 4
 
Practia 1 u 4 alda
Practia 1 u 4 aldaPractia 1 u 4 alda
Practia 1 u 4 alda
 
Prac 2 nequiz
Prac 2 nequizPrac 2 nequiz
Prac 2 nequiz
 
Prac 1 nequiz
Prac 1 nequizPrac 1 nequiz
Prac 1 nequiz
 
Programacin orientada-a-objetos-1-170406185603
Programacin orientada-a-objetos-1-170406185603Programacin orientada-a-objetos-1-170406185603
Programacin orientada-a-objetos-1-170406185603
 
Prac 2 alda
Prac 2 aldaPrac 2 alda
Prac 2 alda
 
Prac 1 alda
Prac 1 aldaPrac 1 alda
Prac 1 alda
 
Preguntas unidad 4
Preguntas unidad 4Preguntas unidad 4
Preguntas unidad 4
 
Preguntas practica-3
Preguntas practica-3Preguntas practica-3
Preguntas practica-3
 
Practica4
Practica4Practica4
Practica4
 
Prac7
Prac7Prac7
Prac7
 
Prac6
Prac6Prac6
Prac6
 
Prac5
Prac5Prac5
Prac5
 
Prac3
Prac3Prac3
Prac3
 
Prac2
Prac2Prac2
Prac2
 
Preguntas practica-3
Preguntas practica-3Preguntas practica-3
Preguntas practica-3
 
Practica 7
Practica 7Practica 7
Practica 7
 
Practica 6
Practica 6Practica 6
Practica 6
 
Practica 5
Practica 5Practica 5
Practica 5
 

Practica 1 u4