Está en la página 1de 31

CURSO BÁSICO DE POO

Introducción a la Programación Orientada a Objetos.


CLASE 1: Filosofía de la POO.

Dr. Rainer Larin Fonseca


rlarin@cenatav.co.cu
CENTRO DE APLICACIONES DE TECNOLOGIAS DE AVANZADA (CENATAV)
Índice de Contenidos

• Programación Orientada a Objetos


• Conceptos fundamentales del paradigma
de OO
• Clases y Objetos
• Constructores y Destructores
• Métodos y Atributos
• Abstracción y Encapsulamiento
• Herencia Simple
• Polimorfismo

10/1/2014 CURSO BÁSICO DE POO | CLASE 1 2


Programación
Orientada a Objetos
El paradigma orientado a objetos es una “filosofía”, un modelo de
programación, con su teoría y su metodología, el cual es necesario
conocer y estudiar primero que todo.

La “filosofía de la POO” sólo es una, lenguajes de POO son muchos…


Paradigmas de Programación

Paradigmas Existentes
• Estructurados (C, Pascal, Basic, etc.).
• Funcionales (Categorical Abstract Machine
Language - CAML).
• Declarativos o Lógicos (Prolog, Mercury, Oz).
Nuevo Paradigma
• Orientado a Objetos (C++, C#, Java).

10/1/2014 CURSO BÁSICO DE POO | CLASE 1 6


Paradigma Estructurado

Estructurados (C, Pascal, Basic, etc.)


• Los programas estructurados están
compuestos únicamente de tres instrucciones
Condición
de control:
▪ Secuencia (ejecución ordenada de instrucciones).
▪ Instrucción condicional (if-else-switch).
Sentencia ▪ Iteración (bucle de instrucciones) con condición al
principio.

10/1/2014 CURSO BÁSICO DE POO | CLASE 1 7


Paradigma Funcional

Funcional (Categorical Abstract Machine


Language - CAML)
• Este paradigma se basa en englobar sentencias
en diferentes funciones que se llaman cada vez
que tengan que se necesiten.
funcion a_p(numero){
(…)
}
Function main(args){
for( i = 0; i < tamaño(lista); i++){
a_p( lista[i] );
}
}

10/1/2014 CURSO BÁSICO DE POO | CLASE 1 8


Una función es simplemente un conjunto
de instrucciones que operan sobre unos
argumentos y producen un resultado.
Paradigmas Declarativos o Lógicos

Declarativos o Lógicos (Prolog, Mercury, Oz)


• Este paradigma se basa en la definición de reglas
sin describir un flujo de control de ningún tipo.
padrede('juan', 'maria'). % juan es padre de maria
padrede('pablo', 'juan'). % pablo es padre de juan
hijode(A,B) :- padrede(B,A).
familiarde(A,B) :- hijode(A,B).
familiarde(A,B) :- hermanode(A,B).
?- hermanode('juan', 'marcela').
yes
?- hermanode('carlos', 'juan').
no
?- abuelode('pablo', 'maria').
yes
?- abuelode('maria', 'pablo').
no

10/1/2014 CURSO BÁSICO DE POO | CLASE 1 10


Paradigma Orientado a Objetos - POO

Orientado a Objetos (C++, C#, Java)


• La programación orientada a objetos es una
modelación sobre la observación del mundo
real.
• Establece relaciones y jerarquías entre los
elementos involucrados y que interactúan entre
ellos.
• El elemento básico no es la función, sino un
ente denominado Objeto.
10/1/2014 CURSO BÁSICO DE POO | CLASE 1 11
Paradigma Orientado a Objetos - POO

El mundo a través de Objetos


• ¿Qué es un Objeto?
• Todo es un Objeto ¡¿~?!

• Un objeto es la representación de un concepto


y contiene la información necesaria para
abstraer dicho concepto:
• Los datos que describen su estado.
• Las operaciones que pueden modificar dicho
estado, y determinan las capacidades del objeto.

10/1/2014 CURSO BÁSICO DE POO | CLASE 1 12


Paradigma Orientado a Objetos - POO

El mundo a través de Objetos


Persona • Los objetos son entidades que tienen un
determinado estado, comportamiento (métodos)
• Carnet de Identidad
e identidad:
• Nombre
▪ La identidad es una propiedad de un objeto que es
• Apellidos
discriminativa (lo diferencia del resto).
▪ El estado está compuesto de varios atributos a los
• Hablar que se le asignan valores concretos (datos).
• Caminar ▪ El comportamiento está definido por métodos o
• Comunicarse mensajes a los que sabe responder dicho objeto, es
decir, qué operaciones se pueden realizar con él.

10/1/2014 CURSO BÁSICO DE POO | CLASE 1 13


Un objeto es la representación en un programa de un
concepto, y contiene toda la información necesaria para
abstraerlo: datos que describen sus atributos y operaciones
que pueden realizarse sobre los mismos.
Paradigma Orientado a Objetos - POO

¿Por qué usar POO?


• Filosofía que mejor modela el mundo real.
• Permite representar modelos complejos.
• Los objetos pueden ser utilizados para
representar servicios, conceptos, …, en
general cualquier abstracción mental.
Se programan cosas que pueden ser muy complejas y para mantener
esa complejidad bajo control hay que partir el problema en piezas
controlables.
❑ Divide y vencerás

10/1/2014 CURSO BÁSICO DE POO | CLASE 1 15


POO vs (…)

• La POO difiere de (…), en Sólo se


que los atributos (datos) y las escriben
funciones están separados y funciones que
procesan datos
sin relación.

Primero se
• La programación estructurada
definen los atributos piensa en términos funciones, y en
objetos, luego se segundo lugar en los datos que
envían mensajes
para que realicen esos procedimientos manejan.
funciones
sus funciones

10/1/2014 CURSO BÁSICO DE POO | CLASE 1 16


Conceptos Esenciales
de la POO
Conceptos Esenciales de la POO
• La POO introduce nuevos conceptos, Clase y Objetos:
entre ellos destacan los siguientes: Libro
▪ Objeto: Es la representación de una
abstracción mental y esta provista de una
identidad, atributos (datos) y métodos
(funcionalidades).
Herencia:
▪ Clase: Define las propiedades y Persona
comportamientos de un conjunto de
objetos en particular.
Constructor Estudiante
▪ Herencia: Facilidad mediante la cual la
clase D hereda en ella cada uno de los
atributos y operaciones de la clase C.
10/1/2014 CURSO BÁSICO DE POO | CLASE 1 18
Conceptos Esenciales de la POO

• La POO introduce nuevos conceptos, entre


ellos destacan los siguientes:
▪ Mensaje: Una comunicación dirigida a un objeto, que le
ordena que ejecute uno de sus métodos con ciertos
parámetros asociados al evento que lo generó.

▪ Método: Algoritmo asociado a un objeto (o a una clase de


objetos), cuya ejecución se desencadena tras la recepción
de un "mensaje".

▪ Evento: Es un suceso en el sistema, tal como una interacción


del usuario con la máquina, o un mensaje enviado por un
objeto.

▪ Atributos: Características que tiene la clase.

10/1/2014 CURSO BÁSICO DE POO | CLASE 1 19


Características
Esenciales de la POO
Características de la POO

• Abstracción.

• Encapsulamiento y Ocultación.

• Modularidad.

• Polimorfismo.

• Recolección de basura.

10/1/2014 CURSO BÁSICO DE POO | CLASE 1 21


Características de la POO

Abstracción:
• Se define como la consideración aislada de las cualidades
esenciales de un objeto excluyendo aquellos detalles que no son
de interés.

• El proceso de abstracción permite seleccionar las características


relevantes dentro de un conjunto e identificar comportamientos
comunes para definir nuevos tipos de entidades en el mundo
real.

• La abstracción es clave en el proceso de análisis y diseño


orientado a objetos, ya que mediante ella podemos llegar a
armar un conjunto de clases que permitan modelar la realidad o
el problema que se quiere atacar.

10/1/2014 CURSO BÁSICO DE POO | CLASE 1 22


Características de la POO
Encapsulamiento y Ocultación:
• Significa reunir todos los elementos que pueden considerarse
pertenecientes a una misma entidad, al mismo nivel de abstracción y
permite ocultar los detalles de un objeto.

• Cada tipo de objeto expone una interfaz a otros objetos que especifica
cómo pueden interactuar con los objetos de la clase.

• El aislamiento protege a las propiedades de un objeto contra su


modificación por quien no tenga derecho a acceder a ellas; solamente
los propios métodos internos del objeto pueden acceder a su estado.

• El mecanismo es como una caja negra que esconde los datos del
objeto y solamente se permite el acceso a ellos de forma controlada.

10/1/2014 CURSO BÁSICO DE POO | CLASE 1 23


Características de la POO

Modularidad:
• Permite subdividir una aplicación en pequeñas partes (módulos),
cada una de las cuales debe ser tan independiente como sea
posible de la aplicación en sí y de las restantes partes.

• Estos módulos se pueden compilar por separado, pero tienen


conexiones con otros módulos.

10/1/2014 CURSO BÁSICO DE POO | CLASE 1 24


Características de la POO

Polimorfismo:
• Comportamientos diferentes, asociados a objetos distintos,
pueden compartir el mismo nombre.

funcion suma(int num1, int num2){


(…)
}
funcion suma(float num1, float num2){
(…)
}
funcion suma(int num1, int num2, bool complejo){
(…)
}

10/1/2014 CURSO BÁSICO DE POO | CLASE 1 25


Características de la POO

Herencia:
• Las clases no están aisladas, sino que se relacionan entre sí,
formando una jerarquía de clasificación.

• La herencia organiza y facilita el polimorfismo y el


encapsulamiento, permitiendo a los objetos ser definidos y
creados como tipos especializados de objetos preexistentes.

• Estos pueden compartir (y extender) su comportamiento sin


tener que volver a implementarlo.

• Esto suele hacerse habitualmente agrupando los objetos en


clases y estas en árboles o enrejados que reflejan un
comportamiento común.

10/1/2014 CURSO BÁSICO DE POO | CLASE 1 26


Características de la POO

Recolección de basura:
• La recolección de basura o garbage collection es la técnica por la
cual el entorno de objetos se encarga de destruir
automáticamente, y por tanto desvincular la memoria asociada,
los objetos que hayan quedado sin ninguna referencia a ellos.

• Esto significa que el programador no debe preocuparse por la


asignación o liberación de memoria, ya que el entorno la
asignará al crear un nuevo objeto y la liberará cuando nadie lo
esté usando.

• En la mayoría de los lenguajes que se extendieron para soportar


el Paradigma de POO como C++, esta característica no existe y
la memoria debe desasignarse expresamente.

10/1/2014 CURSO BÁSICO DE POO | CLASE 1 27


Resumen de POO
• La POO es un paradigma surgido en los años 70.
• Utiliza objetos como elementos fundamentales.
• Un objeto es una abstracción de algún hecho o ente del mundo real,
con atributos que representan sus características y métodos que emulan
su comportamiento o actividad.
• Todas las propiedades y métodos comunes a los objetos se encapsulan
o agrupan en clases.
• Una clase es una plantilla para crear objetos, en general, se dice que
cada objeto es una instancia o ejemplar de una clase.
Ejercicios 1
En las direcciones de salud de los municipios se desea controlar los datos
de cada una de las embarazadas. De la dirección de salud se conoce su
dirección, nombre, el nombre del doctor y el nombre de la enfermera.
De cada embarazada se conoce: su número de identidad, su nombre, la
edad, la cantidad de hijos, el número de semanas de gestación y el peso.
Se desea:
• Determinar la cantidad de embarazadas primerizas.
• Obtener la cantidad de embarazadas con más de 40 semanas de embarazo.
a) Identifique las clases que intervienen en el problema así como sus campos y
responsabilidades.
Respuesta
Embarazada

Clase Dir. Salud • CI

• Dirección • Nombre
• Edad
Campos • Nombre • Cant. Hijos
• Doctor • SemanasGestación
• Enfermera • Peso

• DetCantEmbPrime • DetPrimeriza()
Responsabilidades
Ejercicios 2
Un estudiante que estudia un curso de superación, necesita conocer, a
partir del análisis del promedio de las tres asignaturas que componen
dicho curso, si está aprobado o suspenso en el mismo. Este aprobará si el
promedio de las tres calificaciones es mayor o igual a 70 y suspende en
caso contrario.

a) Identifique las clases que inter vienen en el problema así como sus
campos y responsabilidades.
Ejercicios 3
Se necesita llevar el control sobre las salas de un hospital. De cada
sala se conoce: identificador de la sala, cantidad de camas que
dispone la sala y la cantidad de ingresos en la sala. Siempre que
llega un caso al hospital, es necesario determinar si la sala tiene
disponibilidad o no para ingresar al paciente.

a) Identifique las clases que intervienen en el problema así como sus


campos y responsabilidades.

También podría gustarte