You are on page 1of 50

Introduccin a la programacin orientada por objeto

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
Resultado Objetos reales y actividades Algortmo del mundo real Objeto reales (cambio de estado) Problema Modelo

Espacio del programa


Representar mediante abstraccin Programador Usuario Interpreta

Programa

Objetos abstractos y operaciones en lenguaje de programacin

Algortmo

Datos e informacin Resultado

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


Dato 1 Dato 2
Pro ce d imie nto 2 Pro ce d imie nto 1 Pro ce d imie nto 3

Dato 4

Dato 3

Fig. 2 Sistem a convencional M1 INVO CA 4 M4 DATO 2 M2 M3 M1 M4 DATO 1 M2 M3 M1 M4 INVO CA 3 DATO 3 M2 M3 INVO CA 1

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 Objeto del mundo real ( ) Archivo Indizado Aadir palabra Suprimir palabra Encontrar palabra . . . Interfase Estructura de dato

Operaciones

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


I nstancia Compaa Nombr e I nstancia de Hotel Nombr e La Pedregosa Oficina_general Telfono Turisol M r ida 22454

Direccin

A v. Los procer es

Dueo Gerente Facilidades

I nstancia de Compaia I nstancia Per sona I nstancia de Persona Nombr e Direccin Pedr o perez Calle 22 entre A v. 2 y 3

Piscina, Sauna, Golf

Fig. 5 Ejemplo de la clase Hotel

Conceptos bsicos de la OxO


Atributos Tam ao del m arco Tam ao de la rueda Material Engranaje Material Operaciones Pasos Reparar Cam bio de posicin

Aplicando abstraccin

Conceptos bsicos de la OxO


Clase polgono Objetos polgonos Aplicando abstraccin 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

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(); ~persona(); // Constructor de la clase // 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
Paramtrico Inclusin Universal Polimorfismo Ad Hoc Overloading Coercin

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


Persona Nombre Edad Direccin Sexo

Cargo Empleado Estudiante Denominacin Profesin Director Secretara Ao de experiencia Dependencia Idiomas Dependencia Carrera

Conceptos bsicos de la OxO

Tipos de Herencia: Simple. Mltiple

Conceptos bsicos de la OxO


Persona Nombre Edad Direccin Sexo

Cargo Empleado Estudiante Denominacin Profesin Director Secretara Ao de experiencia Dependencia Idiomas Dependencia Carrera

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.

You might also like