Sei sulla pagina 1di 6

SERVICIO NACIONAL DE APRENDIZAJE SENA

TECNICO EN PROGRAMACION DE SOFTWARE


COLEGIO ALBERTO LLERAS CAMARGO
FICHA 1150446

GUIA 8.1 CLASES Y METODOS PROGRAMACION ORIENTADA A OBJETOS


Alexander Montecua Pinilla
Desarrollado por: Johan Camilo Ávila

Actividades de reflexión inicial


3.1. Actividades de Reflexión inicial.

Después de realizar la lectura del documento McGraw Hill - Programación orientada a objetos (Luis Joyanes
Aguilar).pdf, que se encuentra en el material de apoyo responda las siguientes preguntas.

- ¿Cómo los métodos nos permiten organizar y reutilizar código modularmente? (página 9)
¿Por qué la programación orientada a objetos genero cambios significativos con respecto a los diferentes
paradigmas de la programación? (página 31)

RESPUESTA:
- Objeto: Componente o código de software que contiene en sí mismo tanto sus características (campos) como sus
comportamientos (métodos); se accede a través de su interfaz o signatura.
Campo: Es una característica de un objeto, que ayuda a definir su estructura y permite diferenciarlo de otros objetos.
Se define con un identificador y un tipo, el cual indica los valores que puede almacenar. El conjunto de valores de los
campos definen el estado del objeto.
Método: Es la implementación de un algoritmo que representa una operación o función que un objeto realiza. El
conjunto de los métodos de un objeto determinan el comportamiento del objeto.
Polimorfismo: Esta propiedad indica que un elemento puede tomar distintas formas. Podemos definirlo como el uso
de varios tipos en un mismo componente o función. Por ejemplo, una función que sume dos operandos, la cual
maneja, o dos números o dos cadenas, para retornar un total de una suma o de una concatenación. También se
denomina subsumption(más delante de detalla este concepto).
Genericidad: Usar algoritmos genéricos para resolver varias situaciones, como acceso a varios motores de bases de
datos de forma transparente, como el PEAR de PHP. Consiste en parametrizar una función con varios tipos de datos
donde ella misma en su cuerpo decida cómo operar, como la ut0110.4gl.
Operaciones Relacionadas: Todas las operaciones de un módulo deben estar dentro de él, como parte de su cuerpo
Caja negra: Saber qué entra y qué sale (la interfaz del módulo: signatura) y no cómo lo hace (su implementación),
como laco0020.4gl.
Sobrecarga: Modalidad de herencia que permite usar el mismo módulo para diferentes implementaciones de una
operación, es decir, usando diferente signatura: una función que pueda recibir un parámetro, o dos, o ninguno; pero
opera correctamente con cualquiera de ellos con que se lo invoque, está sobrecargada; por ejemplo, la función
saludar(), cuando va sin parámetros retorna la cadena “Hola”, cuando se invoque con un nombre,
(saludar(var_nombre)), retorna “Hola $var_nombre”, y así sucesivamente. Esto debe manejarse por código dentro de
la función.
- Simula (1967) es aceptado como el primer lenguaje que posee las características principales de un lenguaje
orientado a objetos. Fue creado para hacer programas de simulación, en donde los "objetos" son la representación de
la información más importante.

Smalltalk (1972 a 1980) es posiblemente el ejemplo canónico, y con el que gran parte de la teoría de la programación
orientada a objetos se ha desarrollado.
3.2. Actividades de contextualización e identificación de conocimientos necesarios para el aprendizaje.

En equipos de trabajo:

- Consulte la definición, características, ventajas y desventajas de la programación modular.


- Realice un cuadro comparativo de los diferentes paradigmas de programación.
- Defina que es una clase y describa sus características.
- Describa que es un objeto y de 3 ejemplos de ellos.
- Explique que son los atributos de una clase.
- Describa que es un método de una clase.

RESPUESTAS:
-VENTAJAS: La primera ventaja del concepto de objetos es que todo el código que tiene algo que ver con las naves
espaciales se encuentra en un solo lugar. Otra ventaja es que los objetos pueden poseer atributos inherentes de la
clase a la que pertenecen, por ejemplo, naves espaciales y asteroides podrían tener ambos una posición XY porque
todos los objetos que pertenecen a la clase de los objetos en movimiento tiene una posición XY. Escribir códigos es
más fácil porque se pueden conceptualizar como algo que le sucede a un objeto. Otra ventaja es que POO hace que
los programas grandes sean más manejables. Si todas las ventanas pertenecen a una jerarquía de clases de ventanas y
todo el código que se refiere a una ventana particular está dentro de esa ventana, todas las manipulaciones de
ventana se pueden escribir como una sencilla transferencia de mensajes.
Al aplicar la programación modular, un problema complejo debe ser dividido en varios subproblemas más simples, y
estos a su vez en otros subproblemas más simples.
En caso de que un módulo necesite de otro, puede comunicarse con éste mediante una interfaz de comunicación que
también debe estar bien definida.
Es fácil de mantener y modificar
Es más fácil de escribir y depurar
Facilidad de controlar es decir descompone un problema en estructuras jerárquicas, de modo que se puede
considerar cada estructura desde dos puntos de vista
DESVENTAJAS:
No todos los programas pueden ser modelados con exactitud por el modelo de objetos. Si lo que deseas es leer
algunos datos, hacerles algo simple y escribir de nuevo, no tienes necesidad de definir clases y objetos. Sin embargo,
en algunos lenguajes de POO, puede que tengas que realizar este paso extra. Otra desventaja es que si se fuerza el
lenguaje en el concepto de programación orientada a objetos, se pierden algunas de las características de lenguajes
útiles, como los "lenguajes funcionales". Otra desventaja el que concepto que un programador tiene de lo que
constituye un objeto abstracto puede no coincidir con la visión de otro programador. Los objetos a menudo requieren
una extensa documentación.
No se dispone de algoritmos formales de modularidad, por lo que a veces los programadores no tienen claras las
ideas de los módulos
La programación modular requiere más memoria y tiempo de ejecución
DEFINICION: es un paradigma de programación que consiste en dividir un programa en módulos o subprogramas con
el fin de hacerlo más legible y manejable. Se presenta históricamente como una evolución de la programación
estructurada para solucionar problemas de programación más grandes y complejos de lo que esta puede resolver.
Al aplicar la programación modular, un problema complejo debe ser dividido en varios subproblemas más simples, y
estos a su vez en otros subproblemas más simples. Esto debe hacerse hasta obtener subproblemas lo suficientemente
simples como para poder ser resueltos fácilmente con algún lenguaje de programación. Esta técnica se llama
refinamiento sucesivo, divide y vencerás ó análisis descendente
CARACTERISTICAS: Este paradigma también se conoce como principio de ocultación de procedimientos y datos
Consiste en dividir un programa en módulos o subprogramas con el fin de hacerlo más legible y manejable.
Se presenta históricamente como una evolución de la programación estructurada para solucionar problemas de
programación más grandes y complejos de lo que ésta puede resolver.

3.3. Actividades de apropiación del conocimiento (Conceptualización y Teorización).

1. Desarrolle una aplicación que permita realizar la simulación de un crédito aplicando la programación
orientada a objetos teniendo como referencia la siguiente clase:

INTERFAZ GRAFICA

CODIGO DE LA CLASE PRESTAMOS


3.4. Actividades de transferencia del conocimiento.

1. Teniendo en cuenta el diagrama de clases de su proyecto y las indicaciones del instructor cree una
aplicación con dos capas y programe las clases (Atributos y métodos vacíos)necesarias para el
desarrollo de la solución de software , luego relacione lo siguiente:

DIAGRAMA DE CLASES

CODIGO DE UNA DE LAS CLASES DE SU PROYECTO


PANTALLAZO DEL ESPLORADOR DE SOLUCIONES

Potrebbero piacerti anche