Escolar Documentos
Profissional Documentos
Cultura Documentos
2. Dado el cdigo de la clase Test, escribe las lneas que utilizan polinomio.
7.Es posible colocar mtodos distintos con el mismo nombre? Algunos mtodos en una clase
pueden tener el mismo nombre. Estos mtodos deben contar
Ingeniera en Animacin Digital Asignatura: Programacin Orientada a Objetos
2. Cdigo Fuente
//MarianaMedinaArellano16081882 //estableceelapellidopaterno
/Fig.10.4:Empleado.java publicvoidestablecerApellidoPaterno(Stringapellido)
//LasuperclaseabstractaEmpleado. {
apellidoPaterno=apellido;
publicabstractclassEmpleado }//findelmtodoestablecerApellidoPaterno
{ //devuelveelapellidopaterno
privateStringprimerNombre; publicStringobtenerApellidoPaterno()
privateStringapellidoPaterno; {
privateStringnumeroSeguroSocial; returnapellidoPaterno;
}//findelmtodoobtenerApellidoPaterno
//constructorcontresargumentos //estableceelnmerodesegurosocial
publicEmpleado(Stringnombre,Stringapellido,Stringnss) publicvoidestablecerNumeroSeguroSocial(Stringnss)
{ {
primerNombre=nombre; numeroSeguroSocial=nss;//debevalidar
apellidoPaterno=apellido; }//findelmtodoestablecerNumeroSeguroSocial
numeroSeguroSocial=nss; //devuelveelnmerodesegurosocial
}//findelconstructordeEmpleadocontresargumentos publicStringobtenerNumeroSeguroSocial()
{
//estableceelprimernombre returnnumeroSeguroSocial;
publicvoidestablecerPrimerNombre(Stringnombre) }//findelmtodoobtenerNumeroSeguroSocial
{ //devuelverepresentacinStringdeunobjetoEmpleado
primerNombre=nombre; publicStringtoString()
}//findelmtodoestablecerPrimerNombre {
returnString.format("%s%s\nnumerodesegurosocial:%s",
//devuelveelprimernombre obtenerPrimerNombre(),obtenerApellidoPaterno(),
publicStringobtenerPrimerNombre() obtenerNumeroSeguroSocial());
{ }//findelmtodotoString
returnprimerNombre; //mtodoabstractosobrescritoporlassubclases
}//findelmtodoobtenerPrimerNombre publicabstractdoubleingresos();//aqunohayimplementacin
}//findelaclaseabstractaEmpleado
Ingeniera en Animacin Digital Asignatura: Programacin Orientada a Objetos
2. Cdigo Fuente
//MarianaMedinaArellano16081882 //Fig.10.8:EmpleadoBaseMasComision.java
//Fig.10.5:EmpleadoAsalariado.java //LaclaseEmpleadoBaseMasComisionextiendeaEmpleadoPorComision.
//LaclaseEmpleadoAsalariadoextiendeaEmpleado. publicclassEmpleadoBaseMasComisionextendsEmpleadoPorComision
{
publicclassEmpleadoAsalariadoextendsEmpleado privatedoublesalarioBase;//salariobaseporsemana
{ //constructorconseisargumentos
privatedoublesalarioSemanal; publicEmpleadoBaseMasComision(Stringnombre,Stringapellido,
Stringnss,doubleventas,doubletarifa,doublesalario)
//constructordecuatroargumentos {
publicEmpleadoAsalariado(Stringnombre,Stringapellido,Stringnss, super(nombre,apellido,nss,ventas,tarifa);
doublesalario) establecerSalarioBase(salario);//validayalmacenaelsalariobase
{ }//findelconstructordeEmpleadoBaseMasComisionconseisargumentos
super(nombre,apellido,nss);//lospasaalconstructordeEmpleado //estableceelsalariobase
establecerSalarioSemanal(salario);//validayalmacenaelsalario publicvoidestablecerSalarioBase(doublesalario)
}//findelconstructordeEmpleadoAsalariadoconcuatroargumentos {
salarioBase=(salario<0.0)?0.0:salario;//positivo
//estableceelsalario }//findelmtodoestablecerSalarioBase
publicvoidestablecerSalarioSemanal(doublesalario) //devuelveelsalariobase
{ publicdoubleobtenerSalarioBase()
salarioSemanal=salario<0.0?0.0:salario; {
}//findelmtodoestablecerSalarioSemanal returnsalarioBase;
//devuelveelsalario }//findelmtodoobtenerSalarioBase
publicdoubleobtenerSalarioSemanal() //calculalosingresos;sobrescribeelmtodoingresosen
{ EmpleadoPorComision
returnsalarioSemanal; publicdoubleingresos()
}//findelmtodoobtenerSalarioSemanal {
//calculalosingresos;sobrescribeelmtodoabstractoingresosenEmpleado returnobtenerSalarioBase()+super.ingresos();
publicdoubleingresos() }//findelmtodoingresos
{ //devuelverepresentacinStringdeunobjetoEmpleadoBaseMasComision
returnobtenerSalarioSemanal(); publicStringtoString()
}//findelmtodoingresos {
//devuelverepresentacinStringdeunobjetoEmpleadoAsalariado returnString.format("%s%s;%s:$%,.2f",
publicStringtoString() "consalariobase",super.toString(),
{ "salariobase",obtenerSalarioBase());
returnString.format("empleadoasalariado:%s\n%s:$%,.2f", }//findelmtodotoString
super.toString(),"salariosemanal",obtenerSalarioSemanal()); }//findelaclaseEmpleadoBaseMasComision
}//findelmtodotoString
}//findelaclaseEmpleadoAsalariado
Ingeniera en Animacin Digital Asignatura: Programacin Orientada a Objetos
2. Cdigo Fuente
//MarianaMedinaArellano160081882 //Fig.10.8:EmpleadoBaseMasComision.java
//Fig.10.8:EmpleadoBaseMasComision.java //LaclaseEmpleadoBaseMasComisionextiendeaEmpleadoPorComision.
//LaclaseEmpleadoBaseMasComisionextiendeaEmpleadoPorComision. publicclassEmpleadoBaseMasComision4extendsEmpleadoPorComision
publicclassEmpleadoBaseMasComision3extendsEmpleadoPorComision {
{ privatedoublesalarioBase;//salariobaseporsemana
privatedoublesalarioBase;//salariobaseporsemana //constructorconseisargumentos
//constructorconseisargumentos publicEmpleadoBaseMasComision4(Stringnombre,Stringapellido,
publicEmpleadoBaseMasComision3(Stringnombre,Stringapellido, Stringnss,doubleventas,doubletarifa,doublesalario)
Stringnss,doubleventas,doubletarifa,doublesalario) {
{ super(nombre,apellido,nss,ventas,tarifa);
super(nombre,apellido,nss,ventas,tarifa); establecerSalarioBase(salario);//validayalmacenaelsalariobase
establecerSalarioBase(salario);//validayalmacenaelsalariobase }//findelconstructordeEmpleadoBaseMasComisionconseisargumentos
}//findelconstructordeEmpleadoBaseMasComisionconseisargumentos //estableceelsalariobase
//estableceelsalariobase publicvoidestablecerSalarioBase(doublesalario)
publicvoidestablecerSalarioBase(doublesalario) {
{ salarioBase=(salario<0.0)?0.0:salario;//positivo
salarioBase=(salario<0.0)?0.0:salario;//positivo }//findelmtodoestablecerSalarioBase
}//findelmtodoestablecerSalarioBase //devuelveelsalariobase
//devuelveelsalariobase publicdoubleobtenerSalarioBase()
publicdoubleobtenerSalarioBase() {
{ returnsalarioBase;
returnsalarioBase; }//findelmtodoobtenerSalarioBase
}//findelmtodoobtenerSalarioBase //calculalosingresos;sobrescribeelmtodoingresosen
//calculalosingresos;sobrescribeelmtodoingresosen EmpleadoPorComision
EmpleadoPorComision publicdoubleingresos()
publicdoubleingresos() {
{ returnobtenerSalarioBase()+super.ingresos();
returnobtenerSalarioBase()+super.ingresos(); }//findelmtodoingresos
}//findelmtodoingresos //devuelverepresentacinStringdeunobjetoEmpleadoBaseMasComision
//devuelverepresentacinStringdeunobjetoEmpleadoBaseMasComision publicStringtoString()
publicStringtoString() {
{ returnString.format("%s%s;%s:$%,.2f",
returnString.format("%s%s;%s:$%,.2f", "consalariobase",super.toString(),
"consalariobase",super.toString(), "salariobase",obtenerSalarioBase());
"salariobase",obtenerSalarioBase()); }//findelmtodotoString
}//findelmtodotoString }//findelaclaseEmpleadoBaseMasComision
}//findelaclaseEmpleadoBaseMasComision
Ingeniera en Animacin Digital Asignatura: Programacin Orientada a Objetos
2. Cdigo Fuente
//Fig.10.7:EmpleadoPorComision.java //Fig.10.7:EmpleadoPorComision.java
//LaclaseEmpleadoPorComisionextiendeaEmpleado. //LaclaseEmpleadoPorComision3extiendeaEmpleado.
publicclassEmpleadoPorComisionextendsEmpleado publicclassEmpleadoPorComision3extendsEmpleado
{ {
privatedoubleventasBrutas;//ventastotalesporsemana privatedoubleventasBrutas;//ventastotalesporsemana
privatedoubletarifaComision;//porcentajedecomisin privatedoubletarifaComision;//porcentajedecomisin
//constructorconcincoargumentos //constructorconcincoargumentos
publicEmpleadoPorComision(Stringnombre,Stringapellido,Stringnss, publicEmpleadoPorComision3(Stringnombre,Stringapellido,Stringnss,
doubleventas,doubletarifa) doubleventas,doubletarifa)
{ {
super(nombre,apellido,nss); super(nombre,apellido,nss);
establecerVentasBrutas(ventas); establecerVentasBrutas(ventas);
establecerTarifaComision(tarifa); establecerTarifaComision(tarifa);
}//findelconstructordeEmpleadoPorComisionconcincoargumentos }//findelconstructordeEmpleadoPorComisionconcincoargumentos
//establecelatarifadecomisin //establecelatarifadecomisin
publicvoidestablecerTarifaComision(doubletarifa) publicvoidestablecerTarifaComision(doubletarifa)
{ {
tarifaComision=(tarifa>0.0&&tarifa<1.0)?tarifa:0.0; tarifaComision=(tarifa>0.0&&tarifa<1.0)?tarifa:0.0;
}//findelmtodoestablecerTarifaComision }//findelmtodoestablecerTarifaComision
//devuelvelatarifadecomisin //devuelvelatarifadecomisin
publicdoubleobtenerTarifaComision() publicdoubleobtenerTarifaComision()
{ {
returntarifaComision; returntarifaComision;
}//findelmtodoobtenerTarifaComision }//findelmtodoobtenerTarifaComision
//estableceelmontodeventasbrutas //estableceelmontodeventasbrutas
publicvoidestablecerVentasBrutas(doubleventas) publicvoidestablecerVentasBrutas(doubleventas)
{ {
ventasBrutas=(ventas<0.0)?0.0:ventas; ventasBrutas=(ventas<0.0)?0.0:ventas;
}//findelmtodoestablecerVentasBrutas }//findelmtodoestablecerVentasBrutas
//devuelveelmontodeventasbrutas //devuelveelmontodeventasbrutas
publicdoubleobtenerVentasBrutas() publicdoubleobtenerVentasBrutas()
{ {
returnventasBrutas; returnventasBrutas;
}//findelmtodoobtenerVentasBrutas }//findelmtodoobtenerVentasBrutas
//calculalosingresos;sobrescribeelmtodoabstractoingresosenEmpleado //calculalosingresos;sobrescribeelmtodoabstractoingresosenEmpleado
publicdoubleingresos() publicdoubleingresos()
{ {
returnobtenerTarifaComision()*obtenerVentasBrutas(); returnobtenerTarifaComision()*obtenerVentasBrutas();
}//findelmtodoingresos }//findelmtodoingresos
//devuelverepresentacinStringdeunobjetoEmpleadoPorComision //devuelverepresentacinStringdeunobjetoEmpleadoPorComision
publicStringtoString() publicStringtoString()
{ {
returnString.format("%s:%s\n%s:$%,.2f;%s:%.2f", returnString.format("%s:%s\n%s:$%,.2f;%s:%.2f",
"empleadoporcomision",super.toString(), "empleadoporcomision",super.toString(),
"ventasbrutas",obtenerVentasBrutas(), "ventasbrutas",obtenerVentasBrutas(),
"tarifadecomision",obtenerTarifaComision()); "tarifadecomision",obtenerTarifaComision());
}//findelmtodotoString }//findelmtodotoString
}//findelaclaseEmpleadoPorComision }//findelaclaseEmpleadoPorComision
Ingeniera en Animacin Digital Asignatura: Programacin Orientada a Objetos
2. Cdigo Fuente
//MarianaMedinaArellano16081882 //Fig.10.6:EmpleadoPorHoras.java
//Fig.10.7:EmpleadoPorComision.java //LaclaseEmpleadoPorHorasextiendeaEmpleado.
//LaclaseEmpleadoPorComision3extiendeaEmpleado.
publicclassEmpleadoPorHorasextendsEmpleado
publicclassEmpleadoPorComision4extendsEmpleado {
{ privatedoublesueldo;//sueldoporhora
privatedoubleventasBrutas;//ventastotalesporsemana privatedoublehoras;//horastrabajadasporsemana
privatedoubletarifaComision;//porcentajedecomisin
//constructorconcincoargumentos
//constructorconcincoargumentos publicEmpleadoPorHoras(Stringnombre,Stringapellido,Stringnss,
publicEmpleadoPorComision4(Stringnombre,Stringapellido,Stringnss, doublesueldoPorHoras,doublehorasTrabajadas)
doubleventas,doubletarifa) {
{ super(nombre,apellido,nss);
super(nombre,apellido,nss); establecerSueldo(sueldoPorHoras);//validayalmacenaelsueldopor
establecerVentasBrutas(ventas); horas
establecerTarifaComision(tarifa); establecerHoras(horasTrabajadas);//validayalmacenalashoras
}//findelconstructordeEmpleadoPorComisionconcincoargumentos trabajadas
}//findelconstructordeEmpleadoPorHorasconcincoargumentos
//establecelatarifadecomisin
publicvoidestablecerTarifaComision(doubletarifa) //estableceelsueldo
{ publicvoidestablecerSueldo(doublesueldoPorHoras)
tarifaComision=(tarifa>0.0&&tarifa<1.0)?tarifa:0.0; {
}//findelmtodoestablecerTarifaComision sueldo=(sueldoPorHoras<0.0)?0.0:sueldoPorHoras;
}//findelmtodoestablecerSueldo
//devuelvelatarifadecomisin
publicdoubleobtenerTarifaComision() //devuelveelsueldo
{ publicdoubleobtenerSueldo()
returntarifaComision; {
}//findelmtodoobtenerTarifaComision returnsueldo;
}//findelmtodoobtenerSueldo
//estableceelmontodeventasbrutas
publicvoidestablecerVentasBrutas(doubleventas) //establecelashorastrabajadas
{ publicvoidestablecerHoras(doublehorasTrabajadas)
ventasBrutas=(ventas<0.0)?0.0:ventas; {
}//findelmtodoestablecerVentasBrutas horas=((horasTrabajadas>=0.0)&&(horasTrabajadas<=168.0))?
horasTrabajadas:0.0;
//devuelveelmontodeventasbrutas }//findelmtodoestablecerHoras
publicdoubleobtenerVentasBrutas()
{ //devuelvelashorastrabajadas
returnventasBrutas; publicdoubleobtenerHoras()
}//findelmtodoobtenerVentasBrutas {
returnhoras;
//calculalosingresos;sobrescribeelmtodoabstractoingresosenEmpleado }//findelmtodoobtenerHoras
publicdoubleingresos()
{ //calculalosingresos;sobrescribeelmtodoabstractoingresosen
returnobtenerTarifaComision()*obtenerVentasBrutas(); Empleado
}//findelmtodoingresos publicdoubleingresos()
{
//devuelverepresentacinStringdeunobjetoEmpleadoPorComision if(obtenerHoras()<=40)//nohaytiempoextra
publicStringtoString() returnobtenerSueldo()*obtenerHoras();
{ else
returnString.format("%s:%s\n%s:$%,.2f;%s:%.2f", return40*obtenerSueldo()+(obtenerHoras()-40)*obtenerSueldo()*
"empleadoporcomision",super.toString(), 1.5;
"ventasbrutas",obtenerVentasBrutas(), }//findelmtodoingresos
"tarifadecomision",obtenerTarifaComision());
}//findelmtodotoString //devuelverepresentacinStringdeunobjetoEmpleadoPorHoras
}//findelaclaseEmpleadoPorComision publicStringtoString()
{
returnString.format("empleadoporhoras:%s\n%s:$%,.2f;%s:%,.2f",
super.toString(),"sueldoporhora",obtenerSueldo(),
"horastrabajadas",obtenerHoras());
}//findelmtodotoString
}//findelaclaseEmpleadoPorHoras
Ingeniera en Animacin Digital Asignatura: Programacin Orientada a Objetos
2. Cdigo Fuente
//Fig.10.1:PruebaPolimorfismo.java //Fig.10.9:PruebaSistemaNomina.java
//Asignacindereferenciasalasuperclaseylasubclase,a //ProgramadepruebaparalajerarquadeEmpleado.
//variablesdelasuperclaseylasubclase.
publicclassPruebaSistemaNomina
publicclassPruebaPolimorfismo {
{ publicstaticvoidmain(Stringargs[])
publicstaticvoidmain(Stringargs[]) {
{ //creaobjetosdelassubclases
//asignalareferenciaalasuperclaseaunavariabledelasuperclase EmpleadoAsalariadoempleadoAsalariado=
EmpleadoPorComision3empleadoPorComision=new newEmpleadoAsalariado("John","Smith","111-11-1111",800.00);
EmpleadoPorComision3("Sue","Jones","222-22-2222",10000,.06); EmpleadoPorHorasempleadoPorHoras=
newEmpleadoPorHoras("Karen","Price","222-22-2222",16.75,40);
//asignalareferenciaalasubclaseaunavariabledelasubclase EmpleadoPorComisionempleadoPorComision=
EmpleadoBaseMasComision4empleadoBaseMasComision=new newEmpleadoPorComision(
EmpleadoBaseMasComision4("Bob","Lewis","333-33-3333",5000,.04,300); "Sue","Jones","333-33-3333",10000,.06);
EmpleadoBaseMasComisionempleadoBaseMasComision=
//invocaatoStringenunobjetodelasuperclase,usandounavariabledela newEmpleadoBaseMasComision(
superclase "Bob","Lewis","444-44-4444",5000,.04,300);
System.out.printf("%s%s:\n\n%s\n\n",
"LlamadaatoStringdeEmpleadoPorComision3conreferenciadesuperclase", System.out.println("Empleadosprocesadosporseparado:\n");
"aunobjetodelasuperclase",empleadoPorComision.toString());
System.out.printf("%s\n%s:$%,.2f\n\n",
//invocaatoStringenunobjetodelasubclase,usandounavariabledelasubclase empleadoAsalariado,"ingresos",empleadoAsalariado.ingresos());
System.out.printf("%s%s:\n\n%s\n\n", System.out.printf("%s\n%s:$%,.2f\n\n",
"LlamadaatoStringdeEmpleadoBaseMasComision4conreferencia", empleadoPorHoras,"ingresos",empleadoPorHoras.ingresos());
"desubclaseaunobjetodelasubclase",empleadoBaseMasComision.toString()); System.out.printf("%s\n%s:$%,.2f\n\n",
empleadoPorComision,"ingresos",empleadoPorComision.ingresos());
//invocaatoStringenunobjetodelasubclase,usandounavariabledela System.out.printf("%s\n%s:$%,.2f\n\n",
superclase empleadoBaseMasComision,
EmpleadoPorComision3empleadoPorComision4=empleadoPorComision; "ingresos",empleadoBaseMasComision.ingresos());
System.out.printf("%s%s:\n\n%s\n",
"LlamadaatoStringdeEmpleadoBaseMasComision4conreferenciade //creaunarregloEmpleadodecuatroelementos
superclase", Empleadoempleados[]=newEmpleado[4];
"aunobjetodelasubclase",empleadoPorComision.toString());
}//findemain //inicializaelarregloconobjetosEmpleado
}//findelaclasePruebaPolimorfismo empleados[0]=empleadoAsalariado;
empleados[1]=empleadoPorHoras;
empleados[2]=empleadoPorComision;
empleados[3]=empleadoBaseMasComision;
System.out.println("Empleadosprocesadosenformapolimorfica:\n");
//procesaenformagenricaacadaelementoenelarreglodeempleados
for(EmpleadoempleadoActual:empleados)
{
System.out.println(empleadoActual);//invocaatoString
//determinasielelementoesunEmpleadoBaseMasComision
if(empleadoActualinstanceofEmpleadoBaseMasComision)
{
//conversindescendentedelareferenciadeEmpleado
//aunareferenciadeEmpleadoBaseMasComision
EmpleadoBaseMasComisionempleado=
(EmpleadoBaseMasComision)empleadoActual;
doublesalarioBaseAnterior=empleado.obtenerSalarioBase();
empleado.establecerSalarioBase(1.10*salarioBaseAnterior);
System.out.printf(
"elnuevosalariobasecon10%%deaumentoes:$%,.2f\n",
empleado.obtenerSalarioBase());
}//findeif
System.out.printf(
"ingresos$%,.2f\n\n",empleadoActual.ingresos());
}//findefor
//obtieneelnombredeltipodecadaobjetoenelarreglodeempleados
for(intj=0;j<empleados.length;j++)
System.out.printf("Elempleado%desun%s\n",j,
empleados[j].getClass().getName());
}//findemain
}//findelaclasePruebaSistemaNomina
Ingeniera en Animacin Digital Asignatura: Programacin Orientada a Objetos
2. Cdigo Fuente