Vous êtes sur la page 1sur 69

See

discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/280091702

Introduccin a la Programacin Orientada a Objetos

Chapter January 2014


DOI: 10.13140/RG.2.1.4382.0640

CITATIONS READS

0 512

1 author:

Rainer Larin-Fonseca
Centro de Aplicaciones de Tecnologias de Avanzada
19 PUBLICATIONS 17 CITATIONS

SEE PROFILE

Some of the authors of this publication are also working on these related projects:

Sistemas de herramientas quimiomtricas para el anlisis de datos qumicos View project

All content following this page was uploaded by Rainer Larin-Fonseca on 16 July 2015.

The user has requested enhancement of the downloaded file.


CURSO BSICO DE POO
Introduccin a la Programacin Orientada a Objetos.
CLASE 1: Filosofa de la POO.

Dr. Rainer Larin Fonseca


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

Programacin Orientada a Objetos


Conceptos fundamentales del paradigma
de OO
Clases y Objetos
Constructores y Destructores
Mtodos y Atributos
Abstraccin y Encapsulamiento
Herencia Simple
Polimorfismo

10/1/2014 CURSO BSICO DE POO | CLASE 1 2


Programacin
Orientada a Objetos
El paradigma orientado a objetos es una filosofa, un modelo de
programacin, con su teora y su metodologa, el cual es necesario
conocer y estudiar primero que todo.

La filosofa de la POO slo es una, lenguajes de POO son muchos


Video Tutorial

Pilares de la
POO
Paradigmas de Programacin

Paradigmas Existentes
Estructurados (C, Pascal, Basic, etc.).
Funcionales (Categorical Abstract Machine
Language - CAML).
Declarativos o Lgicos (Prolog, Mercury, Oz).
Nuevo Paradigma
Orientado a Objetos (C++, C#, Java).
10/1/2014 CURSO BSICO DE POO | CLASE 1 6
Paradigma Estructurado

Estructurados (C, Pascal, Basic, etc.)


Los programas estructurados estn
compuestos nicamente de tres instrucciones
Condicin
de control:
Secuencia (ejecucin ordenada de instrucciones).
Instruccin condicional (if-else-switch).
Sentencia Iteracin (bucle de instrucciones) con condicin al
principio.

10/1/2014 CURSO BSICO 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 < tamao(lista); i++){
a_p( lista[i] );
}
}

10/1/2014 CURSO BSICO DE POO | CLASE 1 8


Una funcin es simplemente un conjunto
de instrucciones que operan sobre unos
argumentos y producen un resultado.
Paradigmas Declarativos o Lgicos

Declarativos o Lgicos (Prolog, Mercury, Oz)


Este paradigma se basa en la definicin de reglas
sin describir un flujo de control de ningn 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 BSICO DE POO | CLASE 1 10


Paradigma Orientado a Objetos - POO

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


La programacin orientada a objetos es una
modelacin sobre la observacin del mundo
real.
Establece relaciones y jerarquas entre los
elementos involucrados y que interactan entre
ellos.
El elemento bsico no es la funcin, sino un
ente denominado Objeto.
10/1/2014 CURSO BSICO DE POO | CLASE 1 11
Paradigma Orientado a Objetos - POO

El mundo a travs de Objetos


Qu es un Objeto?
Todo es un Objeto ~?!

Un objeto es la representacin de un concepto


y contiene la informacin 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 BSICO DE POO | CLASE 1 12


Paradigma Orientado a Objetos - POO

El mundo a travs de Objetos


Persona Los objetos son entidades que tienen un
determinado estado, comportamiento (mtodos)
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 mtodos o
Comunicarse mensajes a los que sabe responder dicho objeto, es
decir, qu operaciones se pueden realizar con l.

10/1/2014 CURSO BSICO DE POO | CLASE 1 13


Un objeto es la representacin en un programa de un
concepto, y contiene toda la informacin 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?


Filosofa que mejor modela el mundo real.
Permite representar modelos complejos.
Los objetos pueden ser utilizados para
representar servicios, conceptos, , en
general cualquier abstraccin 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 vencers

10/1/2014 CURSO BSICO DE POO | CLASE 1 15


POO vs ()

La POO difiere de (), en Slo se


que los atributos (datos) y las escriben
funciones estn separados y funciones que
procesan datos
sin relacin.

Primero se
La programacin estructurada
definen los atributos piensa en trminos funciones, y en
objetos, luego se segundo lugar en los datos que
envan mensajes
para que realicen esos procedimientos manejan.
funciones
sus funciones

10/1/2014 CURSO BSICO 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 representacin de una
abstraccin mental y esta provista de una
identidad, atributos (datos) y mtodos
(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 BSICO DE POO | CLASE 1 18
Conceptos Esenciales de la POO

La POO introduce nuevos conceptos, entre


ellos destacan los siguientes:
Mensaje: Una comunicacin dirigida a un objeto, que le
ordena que ejecute uno de sus mtodos con ciertos
parmetros asociados al evento que lo gener.

Mtodo: Algoritmo asociado a un objeto (o a una clase de


objetos), cuya ejecucin se desencadena tras la recepcin
de un "mensaje".

Evento: Es un suceso en el sistema, tal como una interaccin


del usuario con la mquina, o un mensaje enviado por un
objeto.

Atributos: Caractersticas que tiene la clase.

10/1/2014 CURSO BSICO DE POO | CLASE 1 19


Caractersticas
Esenciales de la POO
Caractersticas de la POO

Abstraccin.

Encapsulamiento y Ocultacin.

Modularidad.

Polimorfismo.

Recoleccin de basura.
10/1/2014 CURSO BSICO DE POO | CLASE 1 21
Caractersticas de la POO

Abstraccin:
Se define como la consideracin aislada de las cualidades
esenciales de un objeto excluyendo aquellos detalles que no son
de inters.

El proceso de abstraccin permite seleccionar las caractersticas


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

La abstraccin es clave en el proceso de anlisis y diseo


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 BSICO DE POO | CLASE 1 22


Caractersticas de la POO
Encapsulamiento y Ocultacin:
Significa reunir todos los elementos que pueden considerarse
pertenecientes a una misma entidad, al mismo nivel de abstraccin y
permite ocultar los detalles de un objeto.

Cada tipo de objeto expone una interfaz a otros objetos que especifica
cmo pueden interactuar con los objetos de la clase.

El aislamiento protege a las propiedades de un objeto contra su


modificacin por quien no tenga derecho a acceder a ellas; solamente
los propios mtodos 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 BSICO DE POO | CLASE 1 23


Caractersticas de la POO

Modularidad:
Permite subdividir una aplicacin en pequeas partes (mdulos),
cada una de las cuales debe ser tan independiente como sea
posible de la aplicacin en s y de las restantes partes.

Estos mdulos se pueden compilar por separado, pero tienen


conexiones con otros mdulos.

10/1/2014 CURSO BSICO DE POO | CLASE 1 24


Caractersticas 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 BSICO DE POO | CLASE 1 25


Caractersticas de la POO

Herencia:
Las clases no estn aisladas, sino que se relacionan entre s,
formando una jerarqua de clasificacin.

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

10/1/2014 CURSO BSICO DE POO | CLASE 1 26


Caractersticas de la POO

Recoleccin de basura:
La recoleccin de basura o garbage collection es la tcnica por la
cual el entorno de objetos se encarga de destruir
automticamente, 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


asignacin o liberacin de memoria, ya que el entorno la
asignar al crear un nuevo objeto y la liberar cuando nadie lo
est usando.

En la mayora de los lenguajes que se extendieron para soportar


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

10/1/2014 CURSO BSICO DE POO | CLASE 1 27


Resumen de POO
La POO es un paradigma surgido en los aos 70.
Utiliza objetos como elementos fundamentales.
Un objeto es una abstraccin de algn hecho o ente del mundo real,
con atributos que representan sus caractersticas y mtodos que emulan
su comportamiento o actividad.
Todas las propiedades y mtodos 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.
Video Tutorial

Clases y
Objetos
Ejercicios 1
En las direcciones de salud de los municipios se desea controlar los datos
de cada una de las embarazadas. De la direccin de salud se conoce su
direccin, nombre, el nombre del doctor y el nombre de la enfermera.
De cada embarazada se conoce: su nmero de identidad, su nombre, la
edad, la cantidad de hijos, el nmero de semanas de gestacin y el peso.
Se desea:
Determinar la cantidad de embarazadas primerizas.
Obtener la cantidad de embarazadas con ms 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

Direccin Nombre
Edad
Campos Nombre Cant. Hijos
Doctor SemanasGestacin
Enfermera Peso

DetCantEmbPrime DetPrimeriza()
Responsabilidades
Ejercicios 2
Un estudiante que estudia un curso de superacin, necesita conocer, a
partir del anlisis 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 intervienen 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.
Diseo de Algoritmos
Diseo de Algoritmos

Algoritmo
problema Un Algoritmo es un conjunto de pasos finitos,
secuenciales, ordenados y lgicos, que
Lenguaje Algortmico permiten lograr un objetivo.

algoritmo Lenguaje Algortmico


Es el conjunto de elementos, smbolos y
Lenguaje de Programacin estructuras, que permiten modelar la solucin
de un problema, mediante una secuencia de
cdigo pasos lgicos, precisos y finitos
Diseo de Algoritmos

Caractersticas de los Algoritmos


Ser finito: Un algoritmo debe terminar siempre
luego de un nmero finito de pasos.
Ser preciso: Cada paso del algoritmo debe ser
definido de manera precisa, rigurosa y sin
ambigedades.
Entrada: El algoritmo recibe una entrada, o sea,
una informacin que ser procesada por l.
Salida: El algoritmo genera resultados, los cuales
guardan una relacin especfica con la entrada.
Efectividad: Todas las operaciones deben ser
realizadas con exactitud.
10/1/2014 CURSO BSICO DE POO | CLASE 1 36
Estructuracin lgica del Algoritmo

entrada procesamiento salida


Qu datos o Qu
Qu frmulas
elementos se desea
debo aplicar?
iniciales se tienen? obtener?
Qu otro
Qu otros procesamiento
datos necesitaran? se necesita?
10/1/2014 CURSO BSICO DE POO | CLASE 1 37
Ejemplo 1
Obtener la suma de dos nmeros cualesquiera que defina el
usuario.

SECUENCIA DE PASOS
1. obtener el primer nmero
2. obtener el segundo nmero
3. calcular la suma de los dos nmeros
4. mostrar el valor del resultado de la suma
Entrada de datos Procesamiento Resultados
(datos que se necesitan (mtodos y frmulas necesarias (informacin que se desea
para la resolucin del problema) para transformar los datos de obtener)
entrada en los resultados que se
desean obtener)

El primer nmero calcular la suma de los mostrar el valor del


El segundo nmero dos nmeros resultado de la suma
Ejercicios 2

Calcular el promedio entre 3 nmeros diferentes entre s.


Respuesta
Entrada: val1, val2, val3
Salida: promedio
INICIO
Val1 = 3
Val2 = 9
Val3 = 5
suma = val1 + val2 + val3
promedio = suma / 3
IMPRIMIR promedio
FIN
Ejemplo 2
Se desea realizar el clculo de la Productividad del trabajo, uno de los
indicadores fundamentales para evaluar el desempeo empresarial,
conociendo que se calcula segn la frmula:

Pt ventas
cantidad detrabajadores
Algoritmo
Ejemplo
2
Respuesta
Entrada de datos Procesamiento (mtodos Resultados
(datos que se necesitan y frmulas necesarias para (informacin que se desea
para la resolucin del problema) transformar los datos de obtener)
entrada en los resultados que se
desean obtener)
1. Las ventas Aplicar la frmula para mostrar el valor de la
2. La cantidad de el clculo de la Productividad del
trabajadores productividad Trabajo

Pt ventas
cantidad detrabajadores
Respuesta
Algoritmo o conjunto de pasos

1. obtener el valor de las ventas


2. obtener la cantidad de trabajadores
3. calcular la divisin de los dos valores, segn la frmula
4. mostrar el valor del resultado de la divisin que representa la
productividad del trabajo
Ejercicios 1
Resolver la problemtica para dada una
cantidad en CUC, lograr la equivalencia en
euros, conociendo que 1euro = 1.28 CUC
Respuesta
Qu se desea obtener?
La equivalencia en euros de una cantidad dada.
Qu datos o elementos iniciales se poseen?
Se necesita preguntar por la cantidad que se desea convertir.
Cmo llegar al resultado?
Aplicar la tasa de cambio de 1euro = 1.28 CUC para calcular: equivalencia=1.28 *
cantidad.
Elementos Bsicos de un
Lenguaje Algortmico
Entidades Primitivas: DATOS

Los datos no son ms que los elementos


bsicos que un algoritmo manipula, ellos
pueden ser:
Constantes y Variables
Cada dato tiene:
Nombre: El nombre con que vamos a
reconocer a ese datos en el algoritmo.
Valor: Es el contenido del dato.
Tipo: Expresa los valores que puede tomar el
contenido de ese dato.

10/1/2014 CURSO BSICO DE POO | CLASE 1 49


Constantes

Un tipo de dato cuyo valor no cambia a lo


largo de toda la ejecucin del programa.
Corresponde a una longitud fija de un rea
reservada en la memoria principal del
ordenador, donde el programa almacena
valores fijos.

Por ejemplo:

El valor de pi = 3.1416

10/1/2014 CURSO BSICO DE POO | CLASE 1 50


Variable

Una variable es una localizacin en la memoria de la mquina, que


tiene un nombre y cuyo contenido puede cambiar a lo largo de la
ejecucin de un programa.

10/1/2014 CURSO BSICO DE POO | CLASE 1 51


Variable

Respecto al mbito de una variable, ste puede ser:

Local: Cuando la misma slo es accesible desde un nico procedimiento


hijo, no pudiendo ser leda o modificada desde otro procedimiento
hermano o desde el propio procedimiento padre.

Global: Cuando la misma es accesible desde todo el mbito del programa.

10/1/2014 CURSO BSICO DE POO | CLASE 1 52


Once a programmer has understood the use of
variables, he has understood the essence of
programming.

Edsger Dijkstra (1930 - 2002)


Entidades Primitivas: TIPOS de DATOS

Tipos de Datos
Numricos (1, 2, 3, ).
Flotantes (2.1, 3.365, 9.56, )
Caracteres (a, b, c, ).
Alfanumricos (b15, a22, ).
Lgicos (Verdadero, Falso).

10/1/2014 CURSO BSICO DE POO | CLASE 1 54


A partir del Ejemplo 1 tenemos que:

Dato: ventas
Nombre Ventas
Valor 200
Tipo Nmero
Entidades Primitivas: Expresiones

Son la combinacin de constantes, variables,


signos de operacin, parntesis y nombres de
funciones especiales.

Cada expresin toma un valor que se


determina tomando el valor de las variables y
constantes implicadas en la ejecucin de las
operaciones indicadas.

(X + E )* 150
10/1/2014 CURSO BSICO DE POO | CLASE 1 56
OPERADORES

Segn los operadores que


utilice, las expresiones se
clasifican en
Aritmticas
relacionales
lgicas
10/1/2014 CURSO BSICO DE POO | CLASE 1 57
EXPRESIONES ARITMTICAS

+ adicin divisin entre nmeros reales


- subtraccin divisin entre nmeros interos

* multiplicacin MOD resto de la divisin

Ejemplos:
(X + E )* Z
Alfa * 22 H
Pi * Radio * Radio
H DIV Q
SQR (x)
10/1/2014 CURSO BSICO DE POO | CLASE 1 58
EXPRESIONES RELACIONALES
Si tenemos dos variables
A=5yB=3
= Igual a
Expresin Resultado
<> Diferente de
A<B Falso
> Mayor que
A >= B Verdadero
< Menor que
A <= B Falso
>= Mayor o igual a
<= Menor ou igual a Expresin Resultado
A=B Falso
A <> B Verdadero
A>B Verdadero
10/1/2014 CURSO BSICO DE POO | CLASE 1 59
Operadores lgicos

Una expresin AND es verdadera si todas las


AND
condiciones son verdaderas
Una expresin OR es verdadera si por lo menos una
OR
condicin es verdadera
Una expresin NOT invierte el valor de la expresin o
NOT condicin, si verdadera invierte para falsa y vice-
versa.

10/1/2014 CURSO BSICO DE POO | CLASE 1 60


EXPRESIONES BOOLEANAS

1 VALOR OPERADOR 2 VALOR RESULTADO


T T T
T F F
AND
F T F
F F F
T T T
T F T
OR
F T T
F F F

T - F
NOT
F - T
10/1/2014 CURSO BSICO DE POO | CLASE 1 61
Segn las tres variables: A = 5, B = 8 y C =1

Expresiones Resultado
A = B AND B > C Falso
A <> B OR B < C Verdadero
A > B NOT Verdadero
A < B AND B > C Verdadero
A >= B OR B = C Falso
A <= B NOT Falso
PRECEDENCIA DE OPERADORES

1. La evaluacin de las expresiones se realiza por el orden de


prioridad de los operadores.
2. Cuando dos operadores tienen la misma prioridad se evala de
izquierda a derecha.
3. Las expresiones entre parntesis se evalan primero.

Operadores Prioridad
+
() 0
not 1
*, /, div, and, 2
+, -, or 3
-
10/1/2014 =, <>, <, >, <=, >=CURSO
(deBSICO DE POO | CLASE 1
relacin) 4 63
ENTIDADES PRIMITIVAS

OPERADOR DE ATRIBUCIN (=). Permite asignarle un valor a un suma = n1+ n2


dato de nuestro problema, es resultado = suma
decir a una variable o a una n2 = 21.4
constante.
El valor puede ser el resultado
de una expresin, el valor de
otra variable o un valor
determinado.
LEER nombre del dato. Para reflejar cuando se necesita leer numero2
la entrada o lectura de un dato. leer ventas
MOSTRAR nombre del dato. Para reflejar cuando se necesita mostrar suma
publicar un determinado mostrar Pt
resultado.
10/1/2014 CURSO BSICO DE POO | CLASE 1 64
Ejercicios 3
Disee un algoritmo que halle el rea y el permetro de un
rectngulo. Considere las siguientes frmulas:

= 2 ( + )
Respuesta
Entrada: Base, Altura
Salida: rea, Permetro
INICIO
REAL base, altura, rea, permetro
LEER base, altura
rea = base*altura
permetro = 2*(base + altura)
IMPRIMIR rea, permetro
FIN
Tarea Independiente

Efecta la evaluacin del polinomio de 2do grado:


= + +
suponiendo que a = 2, b = 3, c = 7 y x = 5.
CURSO BSICO DE POO
Introduccin a la Programacin Orientada a Objetos.
CLASE 1

Dr. Rainer Larin Fonseca


rlarin@cenatav.co.cu
CENTRO DE APLICACIONES DE TECNOLOGIAS DE AVANZADA (CENATAV)

View publication stats

Vous aimerez peut-être aussi