introducción a la programación orientada por objeto tema 2 prof. domingo hernández

50
Introducción a la programación orientada por objeto Tema 2 Prof. Domingo Hernández

Upload: marguerita-natividad

Post on 21-Jan-2015

8 views

Category:

Documents


1 download

TRANSCRIPT

  • Diapositiva 1
  • 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.
  • Diapositiva 33
  • 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 "); }
  • Diapositiva 34
  • 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); }
  • Diapositiva 35
  • Conceptos bsicos de la OxO void persona::asigna_nombre(char *nomb_nuevo){ strcpy(nombre=new char [strlen(nomb_nuevo)+1],nomb); }
  • Diapositiva 36
  • Conceptos bsicos de la OxO persona::~persona(){ delete [] nombre; delete [] apellido; delete [] cedula; delete [] sexo; delete [] direccion; }
  • Diapositiva 37
  • 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.