SESIÓN 3
PARADIGAMA DE PROGRAMACIÓN ORIENTADA A OBJETOS
La Programación
Orientada a Objetos es un paradigma de programación que usa objetos y sus
interacciones para diseñar aplicaciones y programas de computadora. Está basado
en varias técnicas, incluyendo herencia, modularidad, polimorfismo y
encapsulamiento. Su uso se popularizó a principios de la década de 1990.
La programación orientada a objetos expresa un programa
como un conjunto de estos objetos, que colaboran entre ellos para realizar
tareas. Esto permite hacer los programas y módulos más fáciles de escribir,
mantener y reutilizar
Sus principales características son:
Se agrupan en grupos denominados clases
Contienen datos internos que definen su estado actual.
Soportan ocultamiento de datos.
Pueden heredar propiedades de otros objetos.
Pueden comunicarse con otros objetos enviando o pasando
mensajes.
Tienen métodos que definen su comportamiento
Principios en que se basan las características
- ABSTRACCIÓN
Abstracción es...
- la amplificación de
lo esencial
- y la eliminación de
lo irrelevante.
“Una
abstracción denota características esenciales de un objeto que lo distinguen de
todos los demás tipos de objeto y proporciona así fronteras conceptuales
nítidamente definidas a la perspectiva del observador”.
- ENCAPSULAMIENTO
Es
la propiedad que permite asegurar que el contenido de la información de un
objeto esta oculta al mundo exterior, es decir el objeto A no conoce lo que
hace el objeto B y viceversa.
La
encapsulación permite la división de un programa en módulos, esos módulos se implementan
mediante clases, de forma que una clase representa la encapsulación de una
abstracción.
3.
POLIMORFISMO
“Dos clases utilizan el mismo método pero de forma
diferente”
“poly” muchos, varios
“morph” forma o
apariencia.
En la programación orientada a objetos, “morph” forma se
refiere a la interface o a las propiedades de los objetos mientras que “poly”
que la interface o los atributos de los objetos son diferentes.
Las interfaces son fundamentales en los sistemas
orientados a objetos ya que es la manera de conocerlos.
Se dice que dos o más objetos son polimórficos si tienen
interfaces idénticas pero comportamiento diferente; desde el punto de vista del
cliente esos objetos son indistinguibles.
El polimorfismo se logra cuando una clase hereda la
interfaz de otra clase ya sea total o parcial o bien, con tipo o sin tipo.
4.
HERENCIA
Herencia es el mecanismo que permite que un clase A herede propiedades
de una clase B. Decimos "A hereda de B". Objetos de la clase A
tienen así acceso a los atributos y métodos de la clase B sin necesidad de
redefinirlos.
Definición (Superclase/Subclase) Si la
clase A hereda de la clase B, entonces B es la superclase de A. A es subclase de B.
5. MODULARIDAD
La
modularidad es la propiedad que tiene un sistema que ha sido descompuesto en un
conjunto de módulos cohesivos y débilmente acomplados.
6. JERARQUIA
“La
jerarquía es una clasificación u ordenación de abstracciones”.
Jerarquías de un sistema
complejo:
1. Estructura de clases (jerarquía “de clases”).
2. Estructura de objetos (jerarquía “de partes”).
Herencia
1. Es la jerarquía “de clases” más importante.
2. Define una relación entre clases, en la que una clase comparte la
estructura de comportamiento definida en una o más clases (lo que se denomina herencia
simple o herencia múltiple).