Vous êtes sur la page 1sur 21

GUA DE APRENDIZAJE PARA LA ESTRUCTURA CURRICULAR ANLISIS Y

DESARROLLO DE SISTEMAS DE INFORMACIN





Realizar el diseo orientado a objetos


Polimorfismo y abstraccin



















Regional Distrito Capital
Sistema de Gestin de la Calidad






























Bogot D.C., Junio de 2014

















Sistema de
Gestin de la
Calidad

CENTRO DE GESTION DE MERCADOS, LOGISTICA Y
TECNOLOGIAS DE LA INFORMACION

GUA DE APRENDIZAJE PARA LA ESTRUCTURA CURRICULAR
ANLISIS Y DESARROLLO DE SISTEMAS DE INFORMACIN
Polimorfismo y Abstraccin


Versin: 1
Mayo de 2014

Pgina 2 de 21

PROGRAMA DE FORMACION:

Tecnlogo en Anlisis y Desarrollo de Sistemas de Informacin.

PROYECTO DE ASOCIADO:


MODALIDAD DE FORMACION:

Presencial
ACTIVIDAD DEL PROYECTO:

Realizar el diseo orientado a objetos
RESULTADOS DE
APRENDIZAJE:

Disear la arquitectura del software, mediante la interpretacin de las
clases, objetos y mecanismos de colaboracin, utilizando
herramientas tecnolgicas de diseo, de acuerdo con las tendencias
de las tecnologas de la informacin y la comunicacin.
TAREA DE APRENDIZAJE Y
DURACION

Polimorfismo y Abstraccin



2.1 Introduccin


Sistema de
Gestin de la
Calidad

CENTRO DE GESTION DE MERCADOS, LOGISTICA Y
TECNOLOGIAS DE LA INFORMACION

GUA DE APRENDIZAJE PARA LA ESTRUCTURA CURRICULAR
ANLISIS Y DESARROLLO DE SISTEMAS DE INFORMACIN
Polimorfismo y Abstraccin


Versin: 1
Mayo de 2014

Pgina 3 de 21

Polimorfismo


La palabra polimorfismo proviene del griego y significa que posee varias formas diferentes. Este es uno de
los conceptos esenciales de una programacin orientada a objetos. As como la herencia est relacionada
con las clases y su jerarqua, el polimorfismo se relaciona con los mtodos.
En general, hay tres tipos de polimorfismo:
Polimorfismo de sobrecarga
Polimorfismo paramtrico (tambin llamado polimorfismo de plantillas)
Polimorfismo de inclusin (tambin llamado redefinicin o subtipado)

Polimorfismo de sobrecarga
El polimorfismo de sobrecarga ocurre cuando las funciones del mismo nombre existen, con funcionalidad
similar, en clases que son completamente independientes una de otra (stas no tienen que ser clases
secundarias de la clase objeto).
Por lo tanto, el polimorfismo de sobrecarga nos permite definir operadores cuyos comportamientos varan
de acuerdo a los parmetros que se les aplican. As es posible, por ejemplo, agregar el operador + y hacer
que se comporte de manera distinta cuando est haciendo referencia a una operacin entre dos nmeros
enteros (suma) o bien cuando se encuentra entre dos cadenas de caracteres (concatenacin).

Veamos un ejemplo con la clase Calculadora que contiene tres versiones sobrecargadas del mtodo Suma:




Sistema de
Gestin de la
Calidad

CENTRO DE GESTION DE MERCADOS, LOGISTICA Y
TECNOLOGIAS DE LA INFORMACION

GUA DE APRENDIZAJE PARA LA ESTRUCTURA CURRICULAR
ANLISIS Y DESARROLLO DE SISTEMAS DE INFORMACIN
Polimorfismo y Abstraccin


Versin: 1
Mayo de 2014

Pgina 4 de 21

Ejemplo
1. public class Calculadora
2. {
3. public double Suma (int a, int b)
4. {
5. return a + b;
6. }
7.
8. public double Suma (double a, double b)
9. {
10. return a + b;
11. }
12.
13. public static void Main()
14. {
15. Calculadora calc = new Calculadora();
16. JOptionPane.showMessageDialog(null,"Suma de enteros: 3 + 5 = {0}", calc.Suma(3,5));
17. JOptionPane.showMessageDialog(null,"Suma de decimales (double): 3.5 + 5.3 = {0}",
18. calc.Suma(3.5, 5.3));
19. }
20. }
Polimorfismo paramtrico
El polimorfismo paramtrico es la capacidad para definir varias funciones utilizando el mismo nombre, pero
usando parmetros diferentes (nombre y/o tipo).

El polimorfismo paramtrico selecciona automticamente el mtodo correcto a aplicar en funcin del tipo de
datos pasados en el parmetro.

Por lo tanto, podemos por ejemplo, definir varios mtodos homnimos de adicion() efectuando una suma
de valores.

El mtodo int adicion(int,int) devolvera la suma de dos nmeros enteros.
float adicion(float, float) devolvera la suma de dos flotantes.
char adicion(char, char) dara por resultado la suma de dos caracteres definidos por el autor.

Una asignacin es el nombre y tipo (esttico) que se da a los argumentos de una funcin. Por esto, una
firma de mtodo determina qu elemento se va a llamar.


Sistema de
Gestin de la
Calidad

CENTRO DE GESTION DE MERCADOS, LOGISTICA Y
TECNOLOGIAS DE LA INFORMACION

GUA DE APRENDIZAJE PARA LA ESTRUCTURA CURRICULAR
ANLISIS Y DESARROLLO DE SISTEMAS DE INFORMACIN
Polimorfismo y Abstraccin


Versin: 1
Mayo de 2014

Pgina 5 de 21

En las estructuras de datos podemos apreciar una exposicin sencilla y prctica de entender. En particular
con la estructura de datos Lista simple.
Ejemplo
1. class Lista<T>
2. {
3. private T[] arreglo;
4.
5. public Lista(int tamanio)
6. {
7. arreglo = new T[tamanio];
8. }
9.
10. public T ObtenerElemento(int indice)
11. {
12. return arreglo[indice];
13. }
14.
15. public void AgregarElemento(int indice, T valor)
16. {
17. arreglo[indice] = valor;
18. }
19. }
20.
21. public class PruebaLista
22. {
23. public static void Main ()
24. {
25. Lista<int> listaEnteros = new Lista<int>(5);
26.
27. listaEnteros.AgregarElemento(0, 2);
28. listaEnteros.AgregarElemento(1, 3);
29. listaEnteros.AgregarElemento(2, 5);
30. listaEnteros.AgregarElemento(3, 7);
31. listaEnteros.AgregarElemento(4, 11);
32.
33. Lista<double> listaDoubles = new Lista<double>(3);
34.
35. listaDoubles.AgregarElemento(0, 7.11);
36. listaDoubles.AgregarElemento(1, 13.17);


Sistema de
Gestin de la
Calidad

CENTRO DE GESTION DE MERCADOS, LOGISTICA Y
TECNOLOGIAS DE LA INFORMACION

GUA DE APRENDIZAJE PARA LA ESTRUCTURA CURRICULAR
ANLISIS Y DESARROLLO DE SISTEMAS DE INFORMACIN
Polimorfismo y Abstraccin


Versin: 1
Mayo de 2014

Pgina 6 de 21

37. listaDoubles.AgregarElemento(2, 19.23);
38. }
39. }

Polimorfismo de subtipado
La habilidad para redefinir un mtodo en clases que se hereda de una clase base se
llama especializacin. Por lo tanto, se puede llamar un mtodo de objeto sin tener que conocer su tipo
intrnseco: esto es polimorfismo de subtipado. Permite no tomar en cuenta detalles de las clases
especializadas de una familia de objetos, enmascarndolos con una interfaz comn (siendo esta la clase
bsica).

Ejemplo(figura 1)





Sistema de
Gestin de la
Calidad

CENTRO DE GESTION DE MERCADOS, LOGISTICA Y
TECNOLOGIAS DE LA INFORMACION

GUA DE APRENDIZAJE PARA LA ESTRUCTURA CURRICULAR
ANLISIS Y DESARROLLO DE SISTEMAS DE INFORMACIN
Polimorfismo y Abstraccin


Versin: 1
Mayo de 2014

Pgina 7 de 21


Abstraccin

La abstraccin consiste en aislar un elemento de su contexto o del resto de los elementos que lo
acompaan. En programacin, el trmino se refiere al nfasis en el "qu hace?" ms que en el
"cmo lo hace?" (caracterstica de caja negra). El comn denominador en la evolucin de
los lenguajes de programacin, desde los clsicos o imperativos hasta los orientados a objetos, ha
sido el nivel de abstraccin del que cada uno de ellos hace uso.


Sistema de
Gestin de la
Calidad

CENTRO DE GESTION DE MERCADOS, LOGISTICA Y
TECNOLOGIAS DE LA INFORMACION

GUA DE APRENDIZAJE PARA LA ESTRUCTURA CURRICULAR
ANLISIS Y DESARROLLO DE SISTEMAS DE INFORMACIN
Polimorfismo y Abstraccin


Versin: 1
Mayo de 2014

Pgina 8 de 21

Los lenguajes de programacin son las herramientas mediante las cuales los diseadores de
lenguajes pueden implementar los modelos abstractos. La abstraccin ofrecida por los lenguajes de
programacin se puede dividir en dos categoras: abstraccin de datos (pertenecientes a los datos) y
abstraccin de control (perteneciente a las estructuras de control).
Los diferentes paradigmas de programacin han aumentado su nivel de abstraccin, comenzando
desde los lenguajes de mquina, lo ms prximo al ordenador y ms lejano a la comprensin humana;
pasando por los lenguajes de comandos, los imperativos, la orientacin a objetos (POO),
la Programacin Orientada a Aspectos (POA); u otros paradigmas como la programacin declarativa,
etc.
La abstraccin encarada desde el punto de vista de la programacin orientada a objetos expresa las
caractersticas esenciales de un objeto, las cuales distinguen al objeto de los dems. Adems de
distinguir entre los objetos provee lmites conceptuales. Entonces se puede decir que
la encapsulacin separa las caractersticas esenciales de las no esenciales dentro de un objeto. Si un
objeto tiene ms caractersticas de las necesarias los mismos resultarn difciles de usar, modificar,
construir y comprender.
La misma genera una ilusin de simplicidad dado a que minimiza la cantidad de caractersticas que
definen a un objeto.
Durante aos, los programadores se han dedicado a construir aplicaciones muy parecidas que
resolvan una y otra vez los mismos problemas. Para conseguir que sus esfuerzos pudiesen ser
utilizados por otras personas se cre la POO que consiste en una serie de normas para garantizar la
interoperabilidad entre usuarios de manera que el cdigo se pueda reutilizar.

Ejemplo de clases abstractas y mtodos abstractos
Vamos a ver un ejemplo basado en el siguiente esquema:


Sistema de
Gestin de la
Calidad

CENTRO DE GESTION DE MERCADOS, LOGISTICA Y
TECNOLOGIAS DE LA INFORMACION

GUA DE APRENDIZAJE PARA LA ESTRUCTURA CURRICULAR
ANLISIS Y DESARROLLO DE SISTEMAS DE INFORMACIN
Polimorfismo y Abstraccin


Versin: 1
Mayo de 2014

Pgina 9 de 21


En este diagrama de clases vemos cmo hemos definido una clase abstracta denominada Profesor la identifica
sealando <<abstract>> en la parte superior del icono de la clase. Sin embargo, hereda de la clase Persona que no
es abstracta, lo cual significa que puede haber instancias de Persona pero no de Profesor.
El test que se ha diseado se basa en lo siguiente: ProfesorTitular y ProfesorInterino son subclases de la clase
abstracta Profesor. ListinProfesores sirve para crear un ArrayList de profesores que pueden ser tanto interinos como
titulares y realizar operaciones con esos conjuntos. El listn se basa en el tipo esttico Profesor, pero su contenido
dinmico siempre ser a base de instancias de ProfesorTitular o de ProfesorInterino ya que Profesor es una clase
abstracta, no instanciable. En la clase de test creamos profesores interinos y profesores titulares y los vamos
aadiendo a un listn. Posteriormente, invocamos el mtodo imprimirListin, que se basa en los mtodos toString de
las subclases y de sus superclases mediante invocaciones sucesivas a super.
Por otro lado, en la clase ListinProfesores hemos definido el mtodo importeTotalNominaProfesorado() que se basa
en un bucle que calcula la nmina de todos los profesores que haya en el listn (sean interinos o titulares) mediante
el uso de un mtodo abstracto: importeNomina(). Este mtodo est definido como abstract public float
importeNomina (); dentro de la clase abstracta profesor, e implementado en las clases ProfesorInterino y
ProfesorTitular. El aspecto central de este ejemplo es comprobar cmo una clase abstracta como Profesor nos
permite realizar operaciones conjuntas sobre varias clases, ahorrando cdigo y ganando en claridad para
nuestros programas. Escribe este cdigo:


Sistema de
Gestin de la
Calidad

CENTRO DE GESTION DE MERCADOS, LOGISTICA Y
TECNOLOGIAS DE LA INFORMACION

GUA DE APRENDIZAJE PARA LA ESTRUCTURA CURRICULAR
ANLISIS Y DESARROLLO DE SISTEMAS DE INFORMACIN
Polimorfismo y Abstraccin


Versin: 1
Mayo de 2014

Pgina 10 de 21

package javaapplication18;
import javax.swing.JOptionPane;
public abstract class Profesor extends Persona
{
// Campo de la clase
private String IdProfesor;
// Constructores
public Profesor ()
{
super();
IdProfesor = "Unknown";
}
public Profesor (String nombre, String apellidos, int edad, String id)
{
super(nombre, apellidos, edad); IdProfesor = id;
}
// Mtodos
public void setIdProfesor (String IdProfesor)
{
this.IdProfesor = IdProfesor;
}
public String getIdProfesor ()
{
return IdProfesor;
}
public void mostrarDatos()
{
JOptionPane.showMessageDialog(null,"Datos Profesor. Profesor de nombre: " + getNombre() + " " +
getApellidos() + " con Id de profesor: " + getIdProfesor() );
}
@Override
public String toString ()
{
return super.toString().concat(" -IdProfesor: ").concat(IdProfesor);
}
abstract public float importeNomina (); // Mtodo abstracto
} //Cierre de la clase

En la clase Persona transformamos edad en un Integer para poder aplicarle el mtodo toString(). De otra manera no
podemos hacerlo por ser edad un tipo primitivo. Escribe este cdigo:
package javaapplication18;
import javax.swing.JOptionPane;
public abstract class Profesor extends Persona
{
// Campo de la clase
private String IdProfesor;
// Constructores
public Profesor ()
{
super();
IdProfesor = "Unknown";
}
public Profesor (String nombre, String apellidos, int edad, String id)
{
super(nombre, apellidos, edad); IdProfesor = id;


Sistema de
Gestin de la
Calidad

CENTRO DE GESTION DE MERCADOS, LOGISTICA Y
TECNOLOGIAS DE LA INFORMACION

GUA DE APRENDIZAJE PARA LA ESTRUCTURA CURRICULAR
ANLISIS Y DESARROLLO DE SISTEMAS DE INFORMACIN
Polimorfismo y Abstraccin


Versin: 1
Mayo de 2014

Pgina 11 de 21

}
// Mtodos
public void setIdProfesor (String IdProfesor)
{
this.IdProfesor = IdProfesor;
}
public String getIdProfesor ()
{
return IdProfesor;
}
public void mostrarDatos()
{
JOptionPane.showMessageDialog(null,"Datos Profesor. Profesor de nombre: " + getNombre() + " " +
getApellidos() + " con Id de profesor: " + getIdProfesor() );
}
@Override
public String toString ()
{
return super.toString().concat(" -IdProfesor: ").concat(IdProfesor);
}

abstract public float importeNomina (); // Mtodo abstracto

} //Cierre de la clase
Hemos declarado la clase Profesor como abstracta. De hecho, tenemos un mtodo abstracto (definido como abstract
y sin cuerpo), lo cual de facto nos obliga a declarar la clase como abstracta. El mtodo sobre escrito toString llama al
mtodo toString de la superclase y lo concatena con nuevas cadenas. Como clases que heredan de Profesor tenemos
a ProfesorTitular y ProfesorInterino:
package javaapplication18;

public class ProfesorTitular extends Profesor
{
// Constructor ejemplo aprenderaprogramar.com
public ProfesorTitular(String nombre, String apellidos, int edad, String id)
{
super(nombre, apellidos, edad, id);
}
@Override
public float importeNomina ()
{
return 30f * 43.20f;
} //Mtodo abstracto sobreescrito en esta clase
} //Cierre de la clase


package javaapplication18;

import java.util.Calendar;

public class ProfesorInterino extends Profesor
{
// Campo de la clase ejemplo aprenderaprogramar.com
private Calendar fechaComienzoInterinidad;
// Constructores


Sistema de
Gestin de la
Calidad

CENTRO DE GESTION DE MERCADOS, LOGISTICA Y
TECNOLOGIAS DE LA INFORMACION

GUA DE APRENDIZAJE PARA LA ESTRUCTURA CURRICULAR
ANLISIS Y DESARROLLO DE SISTEMAS DE INFORMACIN
Polimorfismo y Abstraccin


Versin: 1
Mayo de 2014

Pgina 12 de 21

public ProfesorInterino (Calendar fechaInicioInterinidad)
{
super();
fechaComienzoInterinidad = fechaInicioInterinidad;
}
public ProfesorInterino (String nombre, String apellidos, int edad, String id, Calendar fechaInicioInterinidad)
{
super(nombre, apellidos, edad, id);
fechaComienzoInterinidad = fechaInicioInterinidad;
}

public Calendar getFechaComienzoInterinidad ()
{
return fechaComienzoInterinidad;
} //Mtodo

@Override
public String toString ()
{ // Sobreescritura del mtodo
return super.toString().concat (" Fecha comienzo interinidad: ").concat
(fechaComienzoInterinidad.getTime().toString());
}

@Override
public float importeNomina ()
{
return 30f * 35.60f ;
} //Mtodo abstracto sobre escrito en esta clase
} //Cierre de la clase


package javaapplication18;

import java.util.ArrayList;
import java.util.Iterator;
import javax.swing.JOptionPane;

public class ListinProfesores
{
private ArrayList <Profesor> listinProfesores; //Campo de la clase

public ListinProfesores ()
{
listinProfesores = new ArrayList <Profesor> ();
} //Constructor

public void addProfesor (Profesor profesor)
{
listinProfesores.add(profesor);
} //Mtodo

public void imprimirListin()
{ //Mtodo
String tmpStr1 = ""; //String temporal que usamos como auxiliar
JOptionPane.showMessageDialog(null,"Se procede a mostrar los datos de los profesores existentes en el listn
\n");
for (Profesor tmp: listinProfesores)
{


Sistema de
Gestin de la
Calidad

CENTRO DE GESTION DE MERCADOS, LOGISTICA Y
TECNOLOGIAS DE LA INFORMACION

GUA DE APRENDIZAJE PARA LA ESTRUCTURA CURRICULAR
ANLISIS Y DESARROLLO DE SISTEMAS DE INFORMACIN
Polimorfismo y Abstraccin


Versin: 1
Mayo de 2014

Pgina 13 de 21

JOptionPane.showMessageDialog(null,tmp.toString () );

if (tmp instanceof ProfesorInterino)
{
tmpStr1 = "Interino";} else { tmpStr1 = "Titular";
}
JOptionPane.showMessageDialog(null,"-Tipo de este profesor:"+tmpStr1+" -Nmina de este profesor:
"+(tmp.importeNomina())+ "\n");}
} //Cierre mtodo imprimirListin

public float importeTotalNominaProfesorado()
{
float importeTotal = 0f; //Variable temporal que usamos como auxiliar
Iterator<Profesor> it = listinProfesores.iterator();
while (it.hasNext())
{
importeTotal = importeTotal + it.next().importeNomina();
}
return importeTotal;
} //Cierre del mtodo importeTotalNominaProfesorado
} //Cierre de la clase
ProfesorTitular y ProfesorInterino se han definido como clases concretas que heredan de la clase abstracta Profesor.
Ambas clases redefinen (obligatoriamente han de hacerlo) el mtodo abstracto importeNomina() de la superclase. El
mtodo sobre escrito toString() de la clase ProfesorInterino llama al mtodo toString() de la superclase y lo
concatena con nuevas cadenas. El clculo de importeNomina en ambas clases es una trivialidad: hemos incluido un
clculo sin mayor inters excepto que el de ver el funcionamiento de la implementacin de mtodos abstractos.
ProfesorTitular lo hemos dejado con escaso contenido porque aqu lo usamos solo a modo de ejemplo de uso de
clases abstractas y herencia. Su nico cometido es mostrar que existe otra subclase de Profesor. Por otro lado, en la
clase ListinProfesores tenemos un ejemplo de uso de instanceof para determinar qu tipo (ProfesorInterino o
ProfesorTitular) es el que porta una variable Profesor. Iteramos con clase declarada Profesor y clases dinmicas
ProfesorTitular y ProfesorInterino. Dinmicamente se determina de qu tipo es cada objeto y al invocar el mtodo
abstracto importeNomina() Java determina si debe utilizar el mtodo propio de un subtipo u otro. En
imprimirListin llegamos incluso a mostrar por pantalla de qu tipo es cada objeto usando la sentencia instanceof para
determinarlo. Escribe y ejecuta el cdigo del test:
package javaapplication18;

import java.util.Calendar;
import javax.swing.JOptionPane;

public class TestAbstract
{
public static void main (String [ ] Args)
{
Calendar fecha1 = Calendar.getInstance();
fecha1.set(2019,10,22); //Los meses van de 0 a 11, luego 10 representa noviembre
ProfesorInterino pi1 = new ProfesorInterino("Jos", "Hernndez Lpez", 45, "45221887-K", fecha1);
ProfesorInterino pi2 = new ProfesorInterino("Andrs", "Molt Parra", 87, "72332634-L", fecha1);
ProfesorInterino pi3 = new ProfesorInterino ("Jos", "Ros Mesa", 76, "34998128-M", fecha1);


Sistema de
Gestin de la
Calidad

CENTRO DE GESTION DE MERCADOS, LOGISTICA Y
TECNOLOGIAS DE LA INFORMACION

GUA DE APRENDIZAJE PARA LA ESTRUCTURA CURRICULAR
ANLISIS Y DESARROLLO DE SISTEMAS DE INFORMACIN
Polimorfismo y Abstraccin


Versin: 1
Mayo de 2014

Pgina 14 de 21

ProfesorTitular pt1 = new ProfesorTitular ("Juan", "Prez Prez", 23, "73-K");
ProfesorTitular pt2 = new ProfesorTitular ("Alberto", "Centa Mota", 49, "88-L");
ProfesorTitular pt3 = new ProfesorTitular ("Alberto", "Centa Mota", 49, "81-F");
ListinProfesores listinProfesorado = new ListinProfesores ();
listinProfesorado.addProfesor (pi1); listinProfesorado.addProfesor(pi2); listinProfesorado.addProfesor (pi3);
listinProfesorado.addProfesor (pt1); listinProfesorado.addProfesor(pt2); listinProfesorado.addProfesor (pt3);
listinProfesorado.imprimirListin();
JOptionPane.showMessageDialog(null,"El importe de las nminas del profesorado que consta en el listn es " +
listinProfesorado.importeTotalNominaProfesorado()+ " Pesos");
}
} //Cierre del main y cierre de la clase
Compruebe el resultado de ejecucin. El resultado del test nos muestra que operamos exitosamente sobre las dos
clases usando abstraccin:
Se procede a mostrar los datos de los profesores existentes en el listn
-Nombre: Jos -Apellidos: Hdez Lpez -Edad: 45 -IdProfesor: 45221887-K Fecha czo
interinidad: Fri Nov 22 11:55:28 CET 2019
-Tipo de este profesor: Interino -Nmina de este profesor: 1068.0
-Nombre: Andrs -Apellidos: Mlt Parra -Edad: 87 -IdProfesor: 72332634-L Fecha czo
interinidad: Fri Nov 22 11:55:28 CET 2019
-Tipo de este profesor: Interino -Nmina de este profesor: 1068.0
-Nombre: Jos -Apellidos: Ros Mesa -Edad: 76 -IdProfesor: 34998128-M Fecha czo
interinidad: Fri Nov 22 11:55:28 CET 2019
-Tipo de este profesor: Interino -Nmina de este profesor: 1068.0
-Nombre: Juan -Apellidos: Prez Prez -Edad: 23 -IdProfesor: 73-K
-Tipo de este profesor: Titular -Nmina de este profesor: 1296.0
-Nombre: Alberto -Apellidos: Centa Mota -Edad: 49 -IdProfesor: 88-L
-Tipo de este profesor: Titular -Nmina de este profesor: 1296.0
-Nombre: Alberto -Apellidos: Centa Mota -Edad: 49 -IdProfesor: 81-F
-Tipo de este profesor: Titular -Nmina de este profesor: 1296.0

El importe de las nminas del profesorado que consta en el listn es 7092.0 Pesos


2.2 Tareas de Aprendizaje

Una empresa desea un sistema capaz de calcular el salario semanal de sus empleados
de acuerdo a la cantidad de horas trabajadas, el sueldo por hora y tomando en cuenta los


Sistema de
Gestin de la
Calidad

CENTRO DE GESTION DE MERCADOS, LOGISTICA Y
TECNOLOGIAS DE LA INFORMACION

GUA DE APRENDIZAJE PARA LA ESTRUCTURA CURRICULAR
ANLISIS Y DESARROLLO DE SISTEMAS DE INFORMACIN
Polimorfismo y Abstraccin


Versin: 1
Mayo de 2014

Pgina 15 de 21

siguientes criterios:

Si las horas trabajadas son ms de 40, entonces el excedente se considera hora
extra.
Si las horas trabajadas estn entre el rango de 41 a 45, entonces cada hora extra
se paga doble.
Si las horas trabajadas son ms de 45, entonces cada hora extra se paga triple.

Implemente el sistema de acuerdo al siguiente diagrama de clases en UML:

Es necesario crear un objeto de acuerdo a la cantidad de horas trabajadas.
Para el clculo del salario base (40 horas o menos) utilice el mtodo
CalcularSalario().

Disee un pantallazo como la que se muestra enseguida:



Sistema de
Gestin de la
Calidad

CENTRO DE GESTION DE MERCADOS, LOGISTICA Y
TECNOLOGIAS DE LA INFORMACION

GUA DE APRENDIZAJE PARA LA ESTRUCTURA CURRICULAR
ANLISIS Y DESARROLLO DE SISTEMAS DE INFORMACIN
Polimorfismo y Abstraccin


Versin: 1
Mayo de 2014

Pgina 16 de 21


Mostrar los resultados de salida mediante mensajes como los que se muestran a
continuacin:


Fecha de entrega de la evidencia Martes 1 de Julio de 2014.

2.3 Proceso de Aprendizaje

Basndose en el diagrama de ejemplo(figura 1), realizar el cdigo del programa que calcule el
rea de diversas figuras geomtricas.

Pasos

1. Disee una pantallazo como el que se muestra a continuacin, de tal manera que
cuando se seleccione una figura se pida las dimensiones correspondientes, segn la
figura que se escoja. Cree un objeto segn la figura seleccionada e insrte sus datos


Sistema de
Gestin de la
Calidad

CENTRO DE GESTION DE MERCADOS, LOGISTICA Y
TECNOLOGIAS DE LA INFORMACION

GUA DE APRENDIZAJE PARA LA ESTRUCTURA CURRICULAR
ANLISIS Y DESARROLLO DE SISTEMAS DE INFORMACIN
Polimorfismo y Abstraccin


Versin: 1
Mayo de 2014

Pgina 17 de 21

e invoque el mtodo CalcularArea() para hacer el clculo correspondiente y
mostrar el resultado del rea.




2. Disee los pantallazos tal y como se muestran a continuacin, para que al seleccionar
alguno de los tres tipos de figura mostrados en la imagen anterior, se pueda capturar sus
dimensiones y as mostrar el rea respectiva:



Pantallazo si se escoge hallar el rea del Rectngulo



Pantallazo si se escoge hallar el rea de la Circunferencia


Sistema de
Gestin de la
Calidad

CENTRO DE GESTION DE MERCADOS, LOGISTICA Y
TECNOLOGIAS DE LA INFORMACION

GUA DE APRENDIZAJE PARA LA ESTRUCTURA CURRICULAR
ANLISIS Y DESARROLLO DE SISTEMAS DE INFORMACIN
Polimorfismo y Abstraccin


Versin: 1
Mayo de 2014

Pgina 18 de 21





Pantallazo si se escoge hallar el rea del Tringulo



3. Abra el IDE de desarrollo del lenguaje de su preferencia y codifique el programa, que
permita implementar los pantallazos anteriores, y adems mostrar el rea segn la figura
que se escoja. Para esto ponga bastante atencin a la explicacin paso a paso de la
construccin del cdigo del programa por parte del instructor.

Nota: Despus de atender al instructor en su explicacin, lo invitamos a realizar la tarea de
aprendizaje.


Sistema de
Gestin de la
Calidad

CENTRO DE GESTION DE MERCADOS, LOGISTICA Y
TECNOLOGIAS DE LA INFORMACION

GUA DE APRENDIZAJE PARA LA ESTRUCTURA CURRICULAR
ANLISIS Y DESARROLLO DE SISTEMAS DE INFORMACIN
Polimorfismo y Abstraccin


Versin: 1
Mayo de 2014

Pgina 19 de 21


2.4 Ambientes de Aprendizaje
EQUIPO:
Computadores, Pizarrn acrlico, proyector de video. Computadores
MEDIOS:
Presentaciones electrnicas.
OVAS de aprendizaje.
HERRAMIENTAS:
Procesador de palabras.
Software de desarrollo orientado a objetos.
Internet.
MATERIALES:
Manuales tcnicos
Guas impresas
Memorias USB
Listas de chequeo

2.5 Evaluacin del aprendizaje



Sistema de
Gestin de la
Calidad

CENTRO DE GESTION DE MERCADOS, LOGISTICA Y
TECNOLOGIAS DE LA INFORMACION

GUA DE APRENDIZAJE PARA LA ESTRUCTURA CURRICULAR
ANLISIS Y DESARROLLO DE SISTEMAS DE INFORMACIN
Polimorfismo y Abstraccin


Versin: 1
Mayo de 2014

Pgina 20 de 21

EVIDENCIAS DE APRENDIZAJE (Conocimiento, Producto, Desempeo)
POR DESEMPEO:
El resultado de la valoracin de la presentacin de los diferentes algoritmos en el lenguaje de
programacin seleccionado.
CRITERIOS DE EVALUACIN
Elabora los diseos de herencia de las clases y polimorfismo, los objetos y mecanismos de colaboracin.
INSTRUMENTOS DE EVALUACIN
EVIDENCIA DE CONOCIMIENTO:
TCNICA:
Ejercicio prctico.
INSTRUMENTO:
Gua de trabajo escrita.
TCNICA:
Simulacin
TCNICA:
Valoracin del producto.
INSTRUMENTO:
Lista de verificacin.
Fecha de entrega de la actividad: Septiembre 30 de 2014.
2.6 Conclusiones
Para entender cmo funciona el paradigma de la programacin orientada a objetos es
necesario ver un programa como una coleccin de objetos que interactan entre s envindose
mensajes y cambiando su estado durante la ejecucin.
Resolver un problema bajo el paradigma de la programacin orientada a objetos implica determinar


Sistema de
Gestin de la
Calidad

CENTRO DE GESTION DE MERCADOS, LOGISTICA Y
TECNOLOGIAS DE LA INFORMACION

GUA DE APRENDIZAJE PARA LA ESTRUCTURA CURRICULAR
ANLISIS Y DESARROLLO DE SISTEMAS DE INFORMACIN
Polimorfismo y Abstraccin


Versin: 1
Mayo de 2014

Pgina 21 de 21

y caracterizar los diferentes objetos que intervienen en el problema, definir sus propiedades y
mtodos y ponerlos a interactuar.

2.7 Bibliografa
Programacin orientada a objetos. 2. ed. - Luis Joyanes Aguilar
Introduccin a la programacin orientada a objetos de vv.aa. Universidad de alicante. Servicio de
publicaciones
Introduccin a la programacin con orientacin a objetos de Muoz, Camelia y Nino,
Alfonso y Vizcaino, Aurora Pearson educacin.

Vous aimerez peut-être aussi