Introducción a la programación orientada por objeto
Tópicos del DíaIntroducción al diseño orientado por objetoQué es la orientación por objetoDiferencias entre la programación convencional y la programación orientada por objetosConceptos básicos
Introducción al diseño orientado por objetosEl diseño orientado por objetos (DOO), como otras metodología de diseños orientados a la información crean una representación del dominio del problema en el mundo real y lo transforma en un dominio de soluciones que es el software.
Introducción al diseño OxOA diferencia de otros métodos, el DOO da como resultado un diseño el cual interconexiona los objetos de datos (elementos de datos) y  las operaciones de procesamiento, de forma tal que encapsula la información y el procesamiento.  Este encapsulamiento es el paradigma  fundamental de la orientación por objetos.
Modelo de una tarea típica de programación
Diseño Orientado por objetoLa naturaleza única del diseño orientado por objetos se debe a su habilidad para construir basándose en tres conceptos importantes del diseño del software:  Abstracción.
Ocultamiento de la información.
Modularidad. Qué es la orientación por objetoEl término "orientación por objeto" significa que organizaremos el software como una colección de objetos discretos que incorporan tanto estructuras de datos como procedimientos. Esto contrasta con la programación convencional, en la cual las estructura de datos y el comportamiento están solo 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:  análisis, diseño  e implantación.
Diferencia entre la programación convencional
Constructos básicos de la programación OxOObjeto.Identidad del objeto.Clase.Métodos.Polimorfismo.HerenciaEncadenamiento dinámico.
Conceptos básicos sobre la Orientación por Objetos¿ Qué es un Objeto ?   Un objeto es una entidad física o abstracta que tiene un comportamiento antes ciertos estímulos, tanto externos como de otros objetos específicos que se encuentran dentro del sistema.
Conceptos básicos de la OxO¿ Qué se puede considerar como objeto ?	-Persona	-Equipo Hardware	-Materiales	-Información	-Software	-Procesos	-Procedimientos
Conceptos básicos de OxOObjeto Físico:HornoOperaciones asociadas: 	Encendido/Apagado/Cargado/Descargado.Objeto Abstracto:ColaOperaciones:			Agregar/Eliminar/Verificar vacía/		Verificar si llena/Primero cola/Siguiente cola/
Conceptos básicos de OxOIdentidad de un objeto   Cada objeto tiene su propia identidad que lo distingue de los demás objetos.  En otras palabras, dos objetos distintos no son iguales aunque todos los valores de sus atributos sean idénticos.
Conceptos básico de la OxOComponentes para la construcción de Software de un objeto.	Cuando un objeto se transforma en una realización de software, consta de una interfaz, una estructura de datos privada y unos procesos llamados operaciones o métodos que son los únicos que pueden transformar legítimamente la estructura de datos.
Conceptos básicos de la OxORepresentación abstracta de un objeto
Conceptos básicos de la OxOTipos de objetos1.-Objetos reales 1.1	Objeto físico:	Son objetos extremamente 			perceptibles 						ejemplo(vista, olfato,gusto,oído)1.2	Objetos psíquicos: Son internamente perceptibles.  Ejemplo: 						dolor, sentimiento, imágenes.2.-Objeto ideales no son perceptibles.2.1	Relaciones o asociaciones entre objetos	2.2	Pensamientos2.3	Matemáticos, lógicos semiótico
Conceptos básicos de la OxOClasificación:	El proceso de clasificación es el enfoque central de la orientación por objeto y concierne a la agrupación de objetos con propiedades (estructuras de datos o atributos) y comportamiento (operaciones) similares dentro de una clase.	Una clase  es la abstracción que describe propiedades importantes para una aplicación.
Conceptos Básicos de la OxOLos objetos que pertenecen a una clase se describen colectivamente por la definición de una clase, esto significa que en lugar de describir los objetos individuales la orientación por objeto concentra en un patrón  tanto el estado como el comportamiento que es común a todos los objetos de la clase. Esta clase de estructura que abarca tantos propiedades como comportamiento es la unidad natural de la abstracción en los sistemas de orientación por objeto y puede ser utilizarse para modelar tanto entidades objetos como relaciones entre los objetos.
Conceptos Básicos de la OxOCada clase describe una posibilidad infinita de un conjunto individual de objetos.  Cada objeto que pertenezca a una clase es llamado instanciade la clase.	La instanciación es lo inverso a la clasificación y concierne a la generación de los distintos objetos de una clase. La distinción entre una clase y sus instancias es similar a la distinción entre una definición de tipo y la declaración de una variable en un lenguaje de programación convencional. Sin embargo, la mayoría de los sistemas orientados por objeto crean dinámicamente instancias por envío de mensajes "Nuevo" y "Crear" una clase.
Conceptos básicos de la OxOType		Tipo_opcion(Piscina,Sauna,Tennis,Golf);Class HotelPropiedades Nombre: Cadena;			Dirección: Cadena;			Dueño: Compañia;			Director: Persona;			Facilidades: Set (Tipos_opcion):Operaciones			Create ();			Reserva_hab(Habitación:integer; 				Huesped:Person, 						Fecha_llegada,				Fecha_partida:Tipo_fecha)		end Hotel.
Conceptos básicos de la OxOClass CompañíaPropiedadesNombre, Oficina_central, Teléfono: Cadena;		.........Operaciones	..........end Compañia.Class PersonaPropiedadesNombre, Dirección, Teléfono: Cadena;			.........Operaciones			..........end Persona.
Conceptos Básicos de la OxO
Conceptos básicos  de la OxO
Conceptos básicos de la OxO
Conceptos básicos de la OxONotación para representar una clase.Una clase se representa por una caja la cual puede tener 3 regiones.  La primera región contiene el nombre de la clase. La segunda región 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 región contiene los nombres de las operaciones.  Cada nombre de operación 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 básicos de la OxONombre de la claseNombre_atributo1: tipo dato1= valor defecto1Nombre_atributo2: tipo dato2= valor defecto2...Nombre_operación1(lista de argumento):tipo_resultado1Nombre_operación2 (lista de argumento):tipo_resultado2...
Conceptos básicos de la OxOCómo se implanta una clase en C++Class Nombre de la clase {		Miembros datos;		Miembros métodos;};
Conceptos Básicosclass persona {// Mienbros Datos o Estructura de datos de la clase	charnombre[15],apellido[15],cedula[15];	// Miembros Función o Métodos 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 Básicosclass persona {// Mienbros Datos o Estructura de datos de la clase	char *nombre,*apellido,*cedula;	// Miembros Función o Métodos 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 básicos de la OxOOperaciones ó métodos	Una operación es una función o transformación que puede ser aplicada sobre los objetos en una clase.  Por ejemplo:  abrir, cerrar, ocultar, desplegar, son operaciones sobre una clase ventana.	Cada operación tiene un objeto destino con un argumento implícito. El comportamiento de la operación depende de la clase destino.
Conceptos básicos de la OxO¿ Cómo se declara una función miembro de la clase ? (menos los constructores y destructores)Tipo que devuelvenombre de la clase: : nombre del método (Lista de parámetros  ) {			cuerpo de la función o método};	Los : : son conocidos como el alcance del operador resolución, lo que indica al compilador donde comienza la función.
Conceptos básicos 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 básicos de la OxOpersona::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 básicos de la OxOvoid persona::asigna_nombre(char *nomb_nuevo){       strcpy(nombre=new char [strlen(nomb_nuevo)+1],nomb); }
Conceptos básicos de la OxOpersona::~persona(){		delete [] nombre;		delete [] apellido;		delete [] cedula;		delete [] sexo;		delete [] direccion;		}
Conceptos básicos de la OxOCómo se invoca un método sobre un objeto?Nombre del objeto.Nombre del método(lista de parámetros);
Conceptos básicos de la OxOPolimorfismo	Polimorfismo significa que la misma operación puede comportarse diferentemente sobre distintas clases. Por ejemplo, la operación "mover"  ejemplo puede comportarse diferentemente sobre una clase llamada Ventana y una clase llamada Piezas_ajedrez.
Conceptos básicos de la OxOClasificación de Polimorfismo 
Conceptos básicos de la OxOPolimorfismo Paramétrico: Se obtiene cuando una función trabaja uniformemente sobre un rango de tipos; esos tipos normalmente exhiben una estructura común y puede comportarse de manera distinta para cada tipo.Polimorfismo de Inclusión: 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 básicos de la OxOPolimorfismo por Overloading: En este caso el mismo nombre se utiliza para denotar diferentes funciones, y el contexto se utiliza para decidir cual función se debería ejecutar para una invocación particular del nombre.
Conceptos básicos de la OxO Polimorfismo por Coerción: Es una operación semántica que convierte  argumentos a los tipos esperado por una función, en una situación que de otra forma resultaría en un tipo de error. La coerción puede estar dada estáticamente, insertándose automáticamente entre argumentos y funciones a tiempo de compilación o pueden tener que determinarse dinámicamente, con pruebas a tiempos de ejecución sobre los argumentos.
Conceptos básicos de la OxOHerencia  La herencia consiste en el compartir atributos y métodos entre clases basándose en una relación jerárquica.  Una clase puede definirse ampliamente y redefinirse sucesivamente en subclases más refinadas.  Cada subclase que se incorpora, hereda todas las propiedades de su superclase y adiciona sus propias y únicas propiedades.
Conceptos básicos de la OxOElementos capaces de ser heredadosHerencia Estructural.Herencia de Comportamiento ( herencia de métodos).
Conceptos básicos de la OxO
Conceptos básicos de la OxOTipos de Herencia:Simple.Múltiple
Conceptos básicos de la OxO
Conceptos básicos de la OxODefinición de Herencia Múltiple:  Una clase puede heredar rasgos de más de una superclase.  Una clase con más de una superclase es llamada clase junta.  Un rasgo de una clase ancestro que se encuentra más de una vez a lo largo de una ruta solo se hereda una vez.
Conceptos básicos de la OxO

Programacion o o

  • 1.
    Introducción a laprogramación orientada por objeto
  • 2.
    Tópicos del DíaIntroducciónal diseño orientado por objetoQué es la orientación por objetoDiferencias entre la programación convencional y la programación orientada por objetosConceptos básicos
  • 3.
    Introducción al diseñoorientado por objetosEl diseño orientado por objetos (DOO), como otras metodología de diseños orientados a la información crean una representación del dominio del problema en el mundo real y lo transforma en un dominio de soluciones que es el software.
  • 4.
    Introducción al diseñoOxOA diferencia de otros métodos, el DOO da como resultado un diseño el cual interconexiona los objetos de datos (elementos de datos) y las operaciones de procesamiento, de forma tal que encapsula la información y el procesamiento. Este encapsulamiento es el paradigma fundamental de la orientación por objetos.
  • 5.
    Modelo de unatarea típica de programación
  • 6.
    Diseño Orientado porobjetoLa naturaleza única del diseño orientado por objetos se debe a su habilidad para construir basándose en tres conceptos importantes del diseño del software: Abstracción.
  • 7.
    Ocultamiento de lainformación.
  • 8.
    Modularidad. Qué esla orientación por objetoEl término "orientación por objeto" significa que organizaremos el software como una colección de objetos discretos que incorporan tanto estructuras de datos como procedimientos. Esto contrasta con la programación convencional, en la cual las estructura de datos y el comportamiento están solo aproximadamente conectados.
  • 9.
    Qué es eldesarrollo 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: análisis, diseño e implantación.
  • 10.
    Diferencia entre laprogramación convencional
  • 11.
    Constructos básicos dela programación OxOObjeto.Identidad del objeto.Clase.Métodos.Polimorfismo.HerenciaEncadenamiento dinámico.
  • 12.
    Conceptos básicos sobrela Orientación por Objetos¿ Qué es un Objeto ? Un objeto es una entidad física o abstracta que tiene un comportamiento antes ciertos estímulos, tanto externos como de otros objetos específicos que se encuentran dentro del sistema.
  • 13.
    Conceptos básicos dela OxO¿ Qué se puede considerar como objeto ? -Persona -Equipo Hardware -Materiales -Información -Software -Procesos -Procedimientos
  • 14.
    Conceptos básicos deOxOObjeto Físico:HornoOperaciones asociadas: Encendido/Apagado/Cargado/Descargado.Objeto Abstracto:ColaOperaciones: Agregar/Eliminar/Verificar vacía/ Verificar si llena/Primero cola/Siguiente cola/
  • 15.
    Conceptos básicos deOxOIdentidad de un objeto Cada objeto tiene su propia identidad que lo distingue de los demás objetos. En otras palabras, dos objetos distintos no son iguales aunque todos los valores de sus atributos sean idénticos.
  • 16.
    Conceptos básico dela OxOComponentes para la construcción de Software de un objeto. Cuando un objeto se transforma en una realización de software, consta de una interfaz, una estructura de datos privada y unos procesos llamados operaciones o métodos que son los únicos que pueden transformar legítimamente la estructura de datos.
  • 17.
    Conceptos básicos dela OxORepresentación abstracta de un objeto
  • 18.
    Conceptos básicos dela OxOTipos de objetos1.-Objetos reales 1.1 Objeto físico: Son objetos extremamente perceptibles ejemplo(vista, olfato,gusto,oído)1.2 Objetos psíquicos: Son internamente perceptibles. Ejemplo: dolor, sentimiento, imágenes.2.-Objeto ideales no son perceptibles.2.1 Relaciones o asociaciones entre objetos 2.2 Pensamientos2.3 Matemáticos, lógicos semiótico
  • 19.
    Conceptos básicos dela OxOClasificación: El proceso de clasificación es el enfoque central de la orientación por objeto y concierne a la agrupación de objetos con propiedades (estructuras de datos o atributos) y comportamiento (operaciones) similares dentro de una clase. Una clase es la abstracción que describe propiedades importantes para una aplicación.
  • 20.
    Conceptos Básicos dela OxOLos objetos que pertenecen a una clase se describen colectivamente por la definición de una clase, esto significa que en lugar de describir los objetos individuales la orientación por objeto concentra en un patrón tanto el estado como el comportamiento que es común a todos los objetos de la clase. Esta clase de estructura que abarca tantos propiedades como comportamiento es la unidad natural de la abstracción en los sistemas de orientación por objeto y puede ser utilizarse para modelar tanto entidades objetos como relaciones entre los objetos.
  • 21.
    Conceptos Básicos dela OxOCada clase describe una posibilidad infinita de un conjunto individual de objetos. Cada objeto que pertenezca a una clase es llamado instanciade la clase. La instanciación es lo inverso a la clasificación y concierne a la generación de los distintos objetos de una clase. La distinción entre una clase y sus instancias es similar a la distinción entre una definición de tipo y la declaración de una variable en un lenguaje de programación convencional. Sin embargo, la mayoría de los sistemas orientados por objeto crean dinámicamente instancias por envío de mensajes "Nuevo" y "Crear" una clase.
  • 22.
    Conceptos básicos dela OxOType Tipo_opcion(Piscina,Sauna,Tennis,Golf);Class HotelPropiedades Nombre: Cadena; Dirección: Cadena; Dueño: Compañia; Director: Persona; Facilidades: Set (Tipos_opcion):Operaciones Create (); Reserva_hab(Habitación:integer; Huesped:Person, Fecha_llegada, Fecha_partida:Tipo_fecha) end Hotel.
  • 23.
    Conceptos básicos dela OxOClass CompañíaPropiedadesNombre, Oficina_central, Teléfono: Cadena; .........Operaciones ..........end Compañia.Class PersonaPropiedadesNombre, Dirección, Teléfono: Cadena; .........Operaciones ..........end Persona.
  • 24.
  • 25.
  • 26.
  • 27.
    Conceptos básicos dela OxONotación para representar una clase.Una clase se representa por una caja la cual puede tener 3 regiones. La primera región contiene el nombre de la clase. La segunda región 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 región contiene los nombres de las operaciones. Cada nombre de operación 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.
  • 28.
    Conceptos básicos dela OxONombre de la claseNombre_atributo1: tipo dato1= valor defecto1Nombre_atributo2: tipo dato2= valor defecto2...Nombre_operación1(lista de argumento):tipo_resultado1Nombre_operación2 (lista de argumento):tipo_resultado2...
  • 29.
    Conceptos básicos dela OxOCómo se implanta una clase en C++Class Nombre de la clase { Miembros datos; Miembros métodos;};
  • 30.
    Conceptos Básicosclass persona{// Mienbros Datos o Estructura de datos de la clase charnombre[15],apellido[15],cedula[15]; // Miembros Función o Métodos 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.
  • 31.
    Conceptos Básicosclass persona{// Mienbros Datos o Estructura de datos de la clase char *nombre,*apellido,*cedula; // Miembros Función o Métodos 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.
  • 32.
    Conceptos básicos dela OxOOperaciones ó métodos Una operación es una función o transformación que puede ser aplicada sobre los objetos en una clase. Por ejemplo: abrir, cerrar, ocultar, desplegar, son operaciones sobre una clase ventana. Cada operación tiene un objeto destino con un argumento implícito. El comportamiento de la operación depende de la clase destino.
  • 33.
    Conceptos básicos dela OxO¿ Cómo se declara una función miembro de la clase ? (menos los constructores y destructores)Tipo que devuelvenombre de la clase: : nombre del método (Lista de parámetros ) { cuerpo de la función o método}; Los : : son conocidos como el alcance del operador resolución, lo que indica al compilador donde comienza la función.
  • 34.
    Conceptos básicos dela 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 ");}
  • 35.
    Conceptos básicos dela OxOpersona::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); }
  • 36.
    Conceptos básicos dela OxOvoid persona::asigna_nombre(char *nomb_nuevo){ strcpy(nombre=new char [strlen(nomb_nuevo)+1],nomb); }
  • 37.
    Conceptos básicos dela OxOpersona::~persona(){ delete [] nombre; delete [] apellido; delete [] cedula; delete [] sexo; delete [] direccion; }
  • 38.
    Conceptos básicos dela OxOCómo se invoca un método sobre un objeto?Nombre del objeto.Nombre del método(lista de parámetros);
  • 39.
    Conceptos básicos dela OxOPolimorfismo Polimorfismo significa que la misma operación puede comportarse diferentemente sobre distintas clases. Por ejemplo, la operación "mover" ejemplo puede comportarse diferentemente sobre una clase llamada Ventana y una clase llamada Piezas_ajedrez.
  • 40.
    Conceptos básicos dela OxOClasificación de Polimorfismo 
  • 41.
    Conceptos básicos dela OxOPolimorfismo Paramétrico: Se obtiene cuando una función trabaja uniformemente sobre un rango de tipos; esos tipos normalmente exhiben una estructura común y puede comportarse de manera distinta para cada tipo.Polimorfismo de Inclusión: 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.
  • 42.
    Conceptos básicos dela OxOPolimorfismo por Overloading: En este caso el mismo nombre se utiliza para denotar diferentes funciones, y el contexto se utiliza para decidir cual función se debería ejecutar para una invocación particular del nombre.
  • 43.
    Conceptos básicos dela OxO Polimorfismo por Coerción: Es una operación semántica que convierte argumentos a los tipos esperado por una función, en una situación que de otra forma resultaría en un tipo de error. La coerción puede estar dada estáticamente, insertándose automáticamente entre argumentos y funciones a tiempo de compilación o pueden tener que determinarse dinámicamente, con pruebas a tiempos de ejecución sobre los argumentos.
  • 44.
    Conceptos básicos dela OxOHerencia  La herencia consiste en el compartir atributos y métodos entre clases basándose en una relación jerárquica. Una clase puede definirse ampliamente y redefinirse sucesivamente en subclases más refinadas. Cada subclase que se incorpora, hereda todas las propiedades de su superclase y adiciona sus propias y únicas propiedades.
  • 45.
    Conceptos básicos dela OxOElementos capaces de ser heredadosHerencia Estructural.Herencia de Comportamiento ( herencia de métodos).
  • 46.
  • 47.
    Conceptos básicos dela OxOTipos de Herencia:Simple.Múltiple
  • 48.
  • 49.
    Conceptos básicos dela OxODefinición de Herencia Múltiple: Una clase puede heredar rasgos de más de una superclase. Una clase con más de una superclase es llamada clase junta. Un rasgo de una clase ancestro que se encuentra más de una vez a lo largo de una ruta solo se hereda una vez.
  • 50.
  • 51.
    Conceptos básicos dela OxOEncadenamiento Dinámico:Una de las ventajas que promueve el estilo de programación orientada por objeto es la característica del encadenamiento dinámico, también llamado encadenamiento tardío. En efecto, no se tendrían sistemas orientados por objeto sin esa poderosa capacidad. Simplemente, la declaración encadenamiento dinámico significa que el sistema encadenará una rutina a un selector para un método particular que está implantado sobre un objeto clase.