Introduccion_programacion_orientada_objeto_2.ppt

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

Transcript of Introduccion_programacion_orientada_objeto_2.ppt

  • Introduccin a la programacin orientada por objetoTema 2Prof. Domingo Hernndez

  • Tpicos del DaIntroduccin al diseo orientado por objetoQu es la orientacin por objetoDiferencias entre la programacin convencional y la programacin orientada por objetosConceptos bsicos

  • Introduccin al diseo orientado por objetosEl 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 OxOA 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

  • Diseo Orientado por objetoLa 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 objetoEl 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 slo aproximadamente conectados.

  • Qu es el desarrollo Orientado por ObjetosEl 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

  • Constructos bsicos de la programacin OxOObjeto.Identidad del objeto.Clase.Mtodos.Polimorfismo.HerenciaEncadenamiento dinmico.

  • Conceptos bsicos sobre la Orientacin por Objetos Qu es un Objeto ? Un objeto es una entidad fsica o abstracta que tiene un comportamiento ante 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 OxOObjeto Fsico: HornoOperaciones asociadas: Encendido/Apagado/Cargado/Descargado.Objeto Abstracto: ColaOperaciones:Agregar/Eliminar/Verificar vaca/Verificar si llena/Primero cola/Siguiente cola/

  • Conceptos bsicos de OxOIdentidad 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 OxOComponentes 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 OxORepresentacin abstracta de un objeto

    _1056368610.doc

    Diccionario

    ( )

    Archivo Indizado

    Aadir palabra

    Suprimir palabra

    Encontrar palabra

    .

    .

    .

    Interfase

    Estructura de dato

    Operaciones

    Objeto del mundo

    real

  • Conceptos bsicos de la OxOTipos de objetos1.-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.-Objetos ideales no son perceptibles.2.1Relaciones o asociaciones entre objetos2.2Pensamientos2.3Matemticos, lgicos semitico

  • Conceptos bsicos de la OxOClasificacin: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 OxOLos 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 tanto propiedades como comportamiento es la unidad natural de la abstraccin en los sistemas de orientacin por objeto y puede utilizarse para modelar tanto entidades objetos como relaciones entre los objetos.

  • Conceptos Bsicos de la OxOCada 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 OxOTypeTipo_opcion(Piscina,Sauna,Tennis,Golf);Class HotelPropiedades Nombre: Cadena;Direccin: Cadena;Dueo: Compaia;Director: Persona;Facilidades: Set (Tipos_opcion):OperacionesCreate ();Reserva_hab(Habitacin:integer; Huesped:Person, Fecha_llegada,Fecha_partida:Tipo_fecha)end Hotel.

  • Conceptos bsicos de la OxOClass CompaaPropiedadesNombre, Oficina_central, Telfono: Cadena;.........Operaciones..........end Compaia.Class PersonaPropiedadesNombre, Direccin, Telfono: Cadena;.........Operaciones..........end Persona.

  • Conceptos Bsicos de la OxO

  • Conceptos bsicos de la OxO

  • Conceptos bsicos de la OxO

  • CLASE N 2

  • Conceptos bsicos de la OxONotacin 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 pueden o no mostrarse; esto depende del nivel de detalle deseado.

  • Conceptos bsicos de la OxO

  • Conceptos bsicos de la OxOCmo se implanta una clase en C++Class Nombre de la clase {Miembros datos;Miembros mtodos;};

  • Conceptos Bsicosclass persona {// Miembros Datos o Estructura de datos de la clasechar nombre[15],apellido[15],cedula[15];// Miembros Funcin o Mtodos de la clasepublic: 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 Bsicosclass persona {// Miembros Datos o Estructura de datos de la clasechar *nombre,*apellido,*cedula;// Miembros Funcin o Mtodos de la clasepublic:persona(); // Constructor de la clase ~persona(); // Destructor de la clasevoid 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 OxOOperaciones o mtodosUna 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 OxOCmo 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 OxOpersona::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 OxOpersona::~persona(){delete [] nombre;delete [] apellido;delete [] cedula;delete [] sexo;delete [] direccion;}

  • Conceptos bsicos de la OxOCmo se invoca un mtodo sobre un objeto?

    Nombre del objeto.Nombre del mtodo(lista de parmetros);

  • CLASE N 4

  • Conceptos bsicos de la OxOPolimorfismoPolimorfismo significa que la misma operacin puede comportarse diferentemente sobre distintas clases. Por ejemplo, la operacin mover puede comportarse diferentemente sobre una clase llamada Ventana y una clase llamada Piezas_ajedrez.

  • Conceptos bsicos de la OxOClasificacin de Polimorfismo

  • Conceptos bsicos de la OxOPolimorfismo 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 OxOPolimorfismo por Overloading: en este caso el mismo nombre se utiliza para denotar diferentes funciones, y el contexto se utiliza para decidir cul funcin se debera ejecutar para una invocacin particular del nombre.

  • Conceptos bsicos de la OxOPolimorfismo por Coercin: es una operacin semntica que convierte argumentos a los tipos esperados 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 OxOHerencia 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 OxOElementos capaces de ser heredadosHerencia Estructural.Herencia de Comportamiento (herencia de mtodos).

  • Conceptos bsicos de la OxO

  • Conceptos bsicos de la OxOTipos de Herencia:

    Simple

    Mltiple

  • Conceptos bsicos de la OxO

  • Conceptos bsicos de la OxODefinicin 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 slo se hereda una vez.

  • Conceptos bsicos de la OxO

  • Conceptos bsicos de la OxOEncadenamiento 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.