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
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
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
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;
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.