Más contenido relacionado
Similar a Practia 1 u 4 alda (20)
Practia 1 u 4 alda
- 1. 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
- 2. //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
- 3. //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,
- 4. 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
- 5. //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