Introduccin a la programacin orientada por objeto Tema 2 Prof.
Domingo Hernndez
Diapositiva 2
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
Diapositiva 3
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.
Diapositiva 4
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.
Diapositiva 5
Modelo de una tarea tpica de programacin
Diapositiva 6
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.
Diapositiva 7
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.
Diapositiva 8
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.
Diapositiva 9
Diferencia entre la programacin convencional
Diapositiva 10
Constructos bsicos de la programacin OxO Objeto. Identidad del
objeto. Clase. Mtodos. Polimorfismo. Herencia Encadenamiento
dinmico.
Diapositiva 11
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.
Diapositiva 12
Conceptos bsicos de la OxO Qu se puede considerar como objeto ?
-Persona -Equipo Hardware -Materiales -Informacin -Software
-Procesos -Procedimientos
Diapositiva 13
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/
Diapositiva 14
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.
Diapositiva 15
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.
Diapositiva 16
Conceptos bsicos de la OxO Representacin abstracta de un
objeto
Diapositiva 17
Conceptos bsicos de la OxO Tipos de objetos 1.-Objetos reales
1.1Objeto fsico:Son objetos extremamente perceptibles
ejemplo(vista, olfato,gusto,odo) 1.2Objetos psquicos: Son
internamente perceptibles. Ejemplo: dolor, sentimiento, imgenes.
2.-Objeto ideales no son perceptibles. 2.1Relaciones o asociaciones
entre objetos 2.2Pensamientos 2.3Matemticos, lgicos semitico
Diapositiva 18
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.
Diapositiva 19
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.
Diapositiva 20
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.
Diapositiva 21
Conceptos bsicos de la OxO
TypeTipo_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.
Diapositiva 22
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.
Diapositiva 23
Conceptos Bsicos de la OxO
Diapositiva 24
Conceptos bsicos de la OxO
Diapositiva 25
Diapositiva 26
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.
Diapositiva 27
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.
Diapositiva 28
Conceptos bsicos de la OxO Cmo se implanta una clase en C++
Class Nombre de la clase { Miembros datos; Miembros mtodos; };
Diapositiva 29
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.
Diapositiva 30
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.
Diapositiva 31
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.
Diapositiva 32
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 Cmo se invoca un mtodo sobre un
objeto? Nombre del objeto. Nombre del mtodo(lista de
parmetros);
Diapositiva 38
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.
Diapositiva 39
Conceptos bsicos de la OxO Clasificacin de Polimorfismo
Diapositiva 40
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.
Diapositiva 41
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.
Diapositiva 42
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.
Diapositiva 43
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.
Diapositiva 44
Conceptos bsicos de la OxO Elementos capaces de ser heredados
Herencia Estructural. Herencia de Comportamiento ( herencia de
mtodos).
Diapositiva 45
Conceptos bsicos de la OxO
Diapositiva 46
Tipos de Herencia: Simple. Mltiple
Diapositiva 47
Conceptos bsicos de la OxO
Diapositiva 48
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.
Diapositiva 49
Conceptos bsicos de la OxO
Diapositiva 50
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.