Está en la página 1de 15

Principios de la

Programación
Orientada a Objetos
Paradigma
Paradigma es un modelo o patrón en cualquier disciplina.
Paradigmas de Programación
• Programación orientada a procedimientos o
estructurada:
o Los programas son estructurados con base
a sus funciones
• Programación orientada a objetos:
o Los programas son implementados y
organizados como una colección
cooperativa de entidades, cada una
representando algún elemento (entidad) en
el mundo real
o La programación orientada a objetos
persigue simular o representar las
entidades del mundo real y su uso en forma
natural en la resolución de un problema de
computación
Un poco de Historia...
 Los conceptos de la programación
orientada a objetos tienen origen en
Simula 67, un lenguaje diseñado para
hacer simulaciones

 Tomó posición como el estilo de


programación dominante a mediados
de los años ochenta. Se afianza en los
90s.
 Grandisima influencia de C++
Programación orientada a objetos
El paradigma de la programación
orientada a objetos usualmente
tiene las siguientes
características:
 Simula actividades del mundo
real
 Tiene tipos de datos definidos
por los usuarios
 Esconde los detalles de la
implementación
 Re-usa códigos a través de la
herencia
 Permite el mismo nombre para
diferentes funcionalidades
Conceptos Fundamentales de Programación
orientada a objetos
 Entidades y Clases
 Objetos
 Abstracción
 Encapsulamiento
 Modularidad
 Herencia
 Polimorfismo
Entidades
• Las entidades son los objetos, conceptos e ideas del mundo real
• Las entidades se agrupan de acuerdo a su conducta
• Por conducta entendemos las responsabilidades de una entidad en
el mundo real

– Florista – Cuenta de ahorros

– Estudiante – Cuenta Corriente

– Libro – Reloj

– Carnet Estudiantil – Tabla

– Solicitud de Libro – Bibliotecario

– Cliente – Carnet de biblioteca

– Tarjeta de Crédito – Flor


Clases en la Orientación a Objetos
Clases
• una clase es una construcción que se
utiliza como un modelo (o plantilla) para
crear objetos de esa clase. Este modelo Banco
describe el estado y el comportamiento
que todos los objetos de la clase Cliente
comparten Cuenta de Ahorros
• Una clase es similar a una estructura en C Cuenta Corriente
Tarjeta de Crédito
• Las Funciones para operar sobre los datos
de la clase estan dentro de la misma clase +Agregar()

• Los objetos creados a partir de una clase +Modificar()

son denominados instancias de la clase +Eliminar()


Clases vs. Entidades
Cliente del
Banco
Banco

Cliente
Cuenta de Cuenta de Ahorros
Ahorros
Cuenta Corriente
Tarjeta de Crédito

Cuenta +Agregar()
Corriente
+Modificar()
+Eliminar()
Tarjeta de
Crédito

• Relación entre el Mundo Real y el Mundo Orientado a Objetos -


(Escenario Bancario)
Objetos
• Un objeto se define como la unidad
que en tiempo de ejecución realiza las
tareas de un programa. También a un
nivel más básico se define como
la instancia de una clase.
• Los objetos interactúan unos con
otros para proveer una solución a un
problema
• La clase es sólo la descripción del
tipo de dato, el objeto es el que
ocupa memoria en el computador
• Al momento de crear instancias o
variables de la clase, el compilador
reserva la cantidad de memoria
adecuada para el tipo de dato
solicitado
Abstracción
• Las entidades del mundo real tienen
un sin número de características y
funciones asociadas de las cuales no
todas son de relevancia para la
solución de un problema. Se refiere
al énfasis en el ¿qué se necesita?
más que en el "¿cómo lo hace?
• La abstracción es la técnica que
permite reconocer los elementos
esenciales para la solución de un
problema dejando de lado los
detalles irrelevantes
• Permite que dispongamos de las
características de un objeto que
necesitemos
Encapsulamiento
• El encapsulamiento es el concepto que ayuda a mantener juntos
los datos y las funciones (procedimientos) que operan sobre éstos
• Las funciones y procedimientos que pertenecen a una entidad
cualquiera se conocen como funciones miembro o métodos
• El encapsulamiento complementa el concepto de abstracción,
mediante el ocultamiento de información
El Paradigma de la
El Paradigma Procedural
orientación a objetos

Definición
Definición de
de Implementación
Implementación
de Definición
Definición de
de Implementación
Implementación
de Operaciones
Operaciones
Datos
Datos yy sobre de
de Operaciones
Operaciones
sobre Datos
Datos
Estructuras yy Estructuras Datos
Datos yy sobre
sobre Datos
Datos
Estructuras Estructuras
Estructuras
Estructuras yy Estructuras
Estructuras

• En el paradigma procedural, los • En el paradigma de la orientación a


datos y las operaciones objetos, tanto los datos como las
permanecen separados operaciones que actúan sobre ellos
están envueltos en una cápsula
Modularidad
• La Modularidad involucra la división de
un sistema completo de software en
partes más pequeñas y manejables
denominadas módulos
• Encapsulación y Modularidad se
complementan
• El encapsulamiento esconde los detalles
de la implementación y la Modularidad
permite el agrupamiento lógico de
entidades relacionadas
• La Encapsulación y la Modularidad
aseguran que una ‘interfaz limpia’ esté
disponible para los usuarios de la entidad
Herencia
• La herencia facilita la creación de
objetos a partir de otros ya
existentes, obteniendo
características (métodos y
atributos) similares a los ya
existentes
• La herencia implica que una clase
hija comparte la estructura y
conducta de una clase padre
• En este contexto, la entidad
Padre es llamada la “superclase”
(o la clase base), y la entidad Hija
es llamada la “subclase” (o la
clase derivada)
Polimorfismo
• Polimorfismo es la técnica
de usar una interfaz para
múltiples
implementaciones
• Permite a las entidades
tener diferentes
estructuras internas para
compartir la misma
interfaz externa
• Polimorfismo significa un
nombre y múltiples
funciones

También podría gustarte