Está en la página 1de 50

Introduccin a la

programacin orientada por


objeto
Tema 2
Prof. Domingo Hernndez
Tpicos del Da
Introduccin al diseo orientado por
objeto
Qu es la orientacin por objeto
Diferencias entre la programacin
convencional y la programacin
orientada por objetos
Conceptos bsicos
Introduccin al diseo
orientado por objetos
El diseo orientado por objetos (DOO),
como otras metodologa de diseos
orientados a la informacin crean una
representacin del dominio del
problema en el mundo real y lo
transforma en un dominio de soluciones
que es el software.
Introduccin al diseo OxO
A diferencia de otros mtodos, el DOO da
como resultado un diseo el cual
interconexiona los objetos de datos
(elementos de datos) y las operaciones de
procesamiento, de forma tal que encapsula la
informacin y el procesamiento.

Este encapsulamiento es el paradigma
fundamental de la orientacin por objetos.

Modelo de una tarea tpica de
programacin
Espacio del mundo real
Objetos reales
y actividades
Objetos abstractos y
operaciones en lenguaje de
programacin
Objeto reales
(cambio de estado)
Datos e
informacin
Problema
Modelo
Programa
Algor tmo
Resultado
Usuario
Representar mediante
abstraccin
Programador
Algor tmo del
mundo real
Resultado
Espacio del programa
Interpreta
Diseo Orientado por objeto
La naturaleza nica del diseo orientado por objetos
se debe a su habilidad para construir basndose en
tres conceptos importantes del diseo del software:

Abstraccin.
Ocultamiento de la informacin.
Modularidad.
Qu es la orientacin por
objeto
El trmino "orientacin por objeto" significa
que organizaremos el software como una
coleccin de objetos discretos que incorporan
tanto estructuras de datos como
procedimientos.
Esto contrasta con la programacin
convencional, en la cual las estructura de
datos y el comportamiento estn solo
aproximadamente conectados.
Qu es el desarrollo Orientado
por Objetos
El desarrollo orientado por objetos es
una nueva forma de pensar acerca del
software basado sobre abstracciones
que existen en el mundo real.
En este contexto, el desarrollo es
referido a la primera parte del ciclo de
vida del software: anlisis, diseo e
implantacin.

Diferencia entre la
programacin convencional
Procedimiento
1
Procedimiento
3
Procedimiento
2
Dato 1
Dato 3
Dato 2
Dato 4
M1
M3
M4 M2 DATO 1
M1
M3
M4 M2 DATO 3
M1
M3
M4 M2 DATO 2
INVOCA 3
INVOCA 4
INVOCA 1
Fig. 2 Sistema convencional
Fig.3 Sistema Orientado por objeto

Constructos bsicos de la
programacin OxO
Objeto.
Identidad del objeto.
Clase.
Mtodos.
Polimorfismo.
Herencia
Encadenamiento dinmico.
Conceptos bsicos sobre la
Orientacin por Objetos
Qu es un Objeto ?
Un objeto es una entidad fsica o
abstracta que tiene un comportamiento
antes ciertos estmulos, tanto externos
como de otros objetos especficos que
se encuentran dentro del sistema.

Conceptos bsicos de la OxO
Qu se puede considerar como objeto ?
-Persona
-Equipo Hardware
-Materiales
-Informacin
-Software
-Procesos
-Procedimientos

Conceptos bsicos de OxO
Objeto Fsico:Horno
Operaciones asociadas:
Encendido/Apagado/Cargado/Descargad
o.
Objeto Abstracto:Cola
Operaciones:
Agregar/Eliminar/Verificar vaca/
Verificar si llena/Primero cola/Siguiente
cola/
Conceptos bsicos de OxO
Identidad de un objeto
Cada objeto tiene su propia identidad
que lo distingue de los dems objetos.
En otras palabras, dos objetos distintos
no son iguales aunque todos los valores
de sus atributos sean idnticos.
Conceptos bsico de la OxO
Componentes para la construccin de
Software de un objeto.
Cuando un objeto se transforma en una
realizacin de software, consta de una
interfaz, una estructura de datos privada y
unos procesos llamados operaciones o
mtodos que son los nicos que pueden
transformar legtimamente la estructura de
datos.
Conceptos bsicos de la OxO

Diccionario ( )
Archivo Indizado
Aadir palabra
Suprimir palabra
Encontrar palabra
.
.
.
Interfase
Estructura de dato
Operaciones
Objeto del mundo
real

Representacin abstracta de un objeto
Conceptos bsicos de la OxO
Tipos de objetos
1.- Objetos reales
1.1 Objeto fsico: Son objetos extremamente
perceptibles
ejemplo(vista, olfato,gusto,odo)
1.2 Objetos psquicos: Son internamente
perceptibles. Ejemplo:
dolor, sentimiento, imgenes.
2.- Objeto ideales no son perceptibles.
2.1 Relaciones o asociaciones entre objetos
2.2 Pensamientos
2.3 Matemticos, lgicos semitico
Conceptos bsicos de la OxO
Clasificacin:
El proceso de clasificacin es el enfoque
central de la orientacin por objeto y
concierne a la agrupacin de objetos con
propiedades (estructuras de datos o
atributos) y comportamiento (operaciones)
similares dentro de una clase.
Una clase es la abstraccin que describe
propiedades importantes para una aplicacin.

Conceptos Bsicos de la OxO
Los objetos que pertenecen a una clase se describen
colectivamente por la definicin de una clase, esto
significa que en lugar de describir los objetos
individuales la orientacin por objeto concentra en un
patrn tanto el estado como el comportamiento que
es comn a todos los objetos de la clase.

Esta clase de estructura que abarca tantos
propiedades como comportamiento es la unidad
natural de la abstraccin en los sistemas de
orientacin por objeto y puede ser utilizarse para
modelar tanto entidades objetos como relaciones
entre los objetos.

Conceptos Bsicos de la OxO
Cada clase describe una posibilidad infinita de un
conjunto individual de objetos. Cada objeto que
pertenezca a una clase es llamado instancia de la
clase.

La instanciacin es lo inverso a la clasificacin y
concierne a la generacin de los distintos objetos de
una clase. La distincin entre una clase y sus
instancias es similar a la distincin entre una
definicin de tipo y la declaracin de una variable en
un lenguaje de programacin convencional. Sin
embargo, la mayora de los sistemas orientados por
objeto crean dinmicamente instancias por envo de
mensajes "Nuevo" y "Crear" una clase.

Conceptos bsicos de la OxO
Type Tipo_opcion(Piscina,Sauna,Tennis,Golf);
Class Hotel
Propiedades
Nombre: Cadena;
Direccin: Cadena;
Dueo: Compaia;
Director: Persona;
Facilidades: Set (Tipos_opcion):
Operaciones
Create ();
Reserva_hab(Habitacin:integer;
Huesped:Person,
Fecha_llegada,
Fecha_partida:Tipo_fecha)
end Hotel.

Conceptos bsicos de la OxO
Class Compaa
Propiedades
Nombre, Oficina_central, Telfono: Cadena;
.........
Operaciones
..........
end Compaia.
Class Persona
Propiedades
Nombre, Direccin, Telfono: Cadena;
.........
Operaciones
..........
end Persona.

Conceptos Bsicos de la OxO


La Pedregosa
Av.Losprocer es
I nstancia de Compaia
I nstancia de Persona

Piscina,Sauna, Golf

I nstancia Compaa
Nombr e

Oficina_general
Telfono
Turisol
Mr ida
22454
I nstancia Per sona
Direccin
Pedr o perez
Calle 22 entre
Av.2 y 3
I nstancia de Hotel
Direccin
Nombr e
Dueo
Gerente
Facilidades
Nombr e
Fig.5 Ejemplo de la clase Hotel
Conceptos bsicos de la OxO
Aplicando
abstraccin
Atributos

Tamao del marco
Tamao de la rueda
Material
Engranaje
Material

Operaciones

Pasos
Reparar
Cambio de posicin
Conceptos bsicos de la OxO
Aplicando
abstraccin
Objetos polgonos
Clase polgono

Atributos
Vrtices
Color del borde
Color de relleno

Operaciones

Dibujar
Borrar
Mover

Conceptos bsicos de la OxO
Notacin para representar una clase.
Una clase se representa por una caja la cual puede
tener 3 regiones.
La primera regin contiene el nombre de la clase.
La segunda regin contiene la lista de atributos,
cada nombre de atributo puede estar seguido por
detalles opcionales tales como tipo de atributo y
valores por defectos.
La tercera regin contiene los nombres de las
operaciones. Cada nombre de operacin puede ser
seguido por detalles opcionales tales como listas de
argumentos y tipos de resultados. Los atributos y
operaciones puede o no mostrarse; esto depende
del nivel de detalle deseado.
Conceptos bsicos de la OxO
Nombre de la clase

Nombre_atributo1: tipo dato1= valor defecto1
Nombre_atributo2: tipo dato2= valor defecto2
.
.
.

Nombre_operacin1(lista de argumento):tipo_resultado1
Nombre_operacin2 (lista de argumento):tipo_resultado2
.
.
.

Conceptos bsicos de la OxO
Cmo se implanta una clase en C++
Class Nombre de la clase {
Miembros datos;
Miembros mtodos;
};
Conceptos Bsicos
class persona {
// Mienbros Datos o Estructura de datos de la clase
char nombre[15],apellido[15],cedula[15];
// Miembros Funcin o Mtodos de la clase
public:
void presenta_valores();
void asigna_nombre(char *nombre_nuevo);
void asigna_apellido(char *apellido_nuevo);
void asigna_cedula(char *cedula_nueva);
void cumpleano();
}; // Observe que se debe finalizar con punto y coma.
Conceptos Bsicos
class persona {
// Mienbros Datos o Estructura de datos de la clase
char *nombre,*apellido,*cedula;
// Miembros Funcin o Mtodos de la clase
public:
persona(); // Constructor de la clase
~persona(); // Destructor de la clase
void presenta_valores();
void asigna_nombre(char *nombre_nuevo);
void asigna_apellido(char *apellido_nuevo);
void asigna_cedula(char *cedula_nueva);
void cumpleano();
}; // Observe que se debe finalizar con punto y coma.
Conceptos bsicos de la OxO
Operaciones mtodos
Una operacin es una funcin o
transformacin que puede ser aplicada sobre
los objetos en una clase. Por ejemplo: abrir,
cerrar, ocultar, desplegar, son operaciones
sobre una clase ventana.
Cada operacin tiene un objeto destino
con un argumento implcito. El
comportamiento de la operacin depende de
la clase destino.
Conceptos bsicos de la OxO
Cmo se declara una funcin miembro
de la clase ? (menos los constructores y
destructores)
Tipo que devuelve nombre de la clase : :
nombre del mtodo (Lista de parmetros ) {
cuerpo de la funcin o mtodo
};
Los : : son conocidos como el alcance del
operador resolucin, lo que indica al
compilador donde comienza la funcin.
Conceptos bsicos de la OxO
persona::persona(){
strcpy(nombre=new char [30],"Domingo");
strcpy(apellido=new char [30],"Hernandez");
strcpy(cedula=new char [13],"v.-8.333.439");
strcpy(sexo=new char [13],"Masculino");
fecha_nac.set("12","03","64");
strcpy(direccion=new char [80],"Calle 32 ");
}
Conceptos bsicos de la OxO

persona::persona(char *nomb,char *apell, char *ced, char *sex, char *d,
char *m, char *a, char *direcc ){
strcpy(nombre=new char [strlen(nomb)+1],nomb);
strcpy(apellido=new char [strlen(apell)+1],apell);
strcpy(cedula=new char [strlen(ced)+1],ced);
strcpy(sexo=new char [strlen(sex)+1],sex);
fecha_nac.set(d,m,a);
strcpy(direccion=new char [strlen(direcc)+1],direcc);
}
Conceptos bsicos de la OxO

void persona::asigna_nombre(char *nomb_nuevo){
strcpy(nombre=new char [strlen(nomb_nuevo)+1],nomb);
}
Conceptos bsicos de la OxO
persona::~persona(){
delete [] nombre;
delete [] apellido;
delete [] cedula;
delete [] sexo;
delete [] direccion;
}
Conceptos bsicos de la OxO
Cmo se invoca un mtodo sobre un
objeto?

Nombre del objeto.Nombre del mtodo(lista de parmetros);
Conceptos bsicos de la OxO
Polimorfismo
Polimorfismo significa que la misma
operacin puede comportarse
diferentemente sobre distintas clases.
Por ejemplo, la operacin "mover"
ejemplo puede comportarse
diferentemente sobre una clase llamada
Ventana y una clase llamada
Piezas_ajedrez.
Conceptos bsicos de la OxO
Clasificacin de Polimorfismo


Universal
Ad Hoc
Paramtrico
Inclusin
Overloading
Coercin
Polimorfismo
Conceptos bsicos de la OxO
Polimorfismo Paramtrico: Se obtiene
cuando una funcin trabaja uniformemente
sobre un rango de tipos; esos tipos
normalmente exhiben una estructura comn
y puede comportarse de manera distinta para
cada tipo.
Polimorfismo de Inclusin: Es un
polimorfismo utilizado por modelos de
subtipos y herencia. En este tipo de
polimorfismo un objeto puede pertenecer a
clases diferentes que no necesariamente son
disjuntas.

Conceptos bsicos de la OxO
Polimorfismo por Overloading: En este
caso el mismo nombre se utiliza para
denotar diferentes funciones, y el
contexto se utiliza para decidir cual
funcin se debera ejecutar para una
invocacin particular del nombre.

Conceptos bsicos de la OxO

Polimorfismo por Coercin: Es una operacin
semntica que convierte argumentos a los
tipos esperado por una funcin, en una
situacin que de otra forma resultara en un
tipo de error. La coercin puede estar dada
estticamente, insertndose
automticamente entre argumentos y
funciones a tiempo de compilacin o pueden
tener que determinarse dinmicamente, con
pruebas a tiempos de ejecucin sobre los
argumentos.

Conceptos bsicos de la OxO
Herencia
La herencia consiste en el compartir atributos
y mtodos entre clases basndose en una
relacin jerrquica.
Una clase puede definirse ampliamente y
redefinirse sucesivamente en subclases ms
refinadas.
Cada subclase que se incorpora, hereda
todas las propiedades de su superclase y
adiciona sus propias y nicas propiedades.
Conceptos bsicos de la OxO
Elementos capaces de ser heredados
Herencia Estructural.
Herencia de Comportamiento ( herencia
de mtodos).
Conceptos bsicos de la OxO
Nombre
Persona
Empleado Estudiante
Secretar a
Director
Ao de experiencia
Idiomas
Dependencia
Cargo
Denominacin
Carrera
Edad
Direccin
Sexo
Profesin
Dependencia
Conceptos bsicos de la OxO
Tipos de Herencia:

Simple.

Mltiple
Conceptos bsicos de la OxO
Nombre
Persona
Empleado Estudiante
Secretar a
Director
Ao de experiencia
Idiomas
Dependencia
Cargo
Denominacin
Carrera
Edad
Direccin
Sexo
Profesin
Dependencia
Conceptos bsicos de la OxO
Definicin de Herencia Mltiple: Una
clase puede heredar rasgos de ms de
una superclase. Una clase con ms de
una superclase es llamada clase junta.
Un rasgo de una clase ancestro que se
encuentra ms de una vez a lo largo de
una ruta solo se hereda una vez.
Conceptos bsicos de la OxO
Vehculos
Vehculos Terrestres Vehculos Acuticos
Carros
Vehculos
Anfibios
Bote
Conceptos bsicos de la OxO
Encadenamiento Dinmico:
Una de las ventajas que promueve el estilo de
programacin orientada por objeto es la
caracterstica del encadenamiento dinmico,
tambin llamado encadenamiento tardo. En
efecto, no se tendran sistemas orientados
por objeto sin esa poderosa capacidad.
Simplemente, la declaracin
encadenamiento dinmico significa que el
sistema encadenar una rutina a un selector
para un mtodo particular que est
implantado sobre un objeto clase.

También podría gustarte