You are on page 1of 28

PROGRAMACIN ORIENTADA A OBJETOS

Introduccin Objetivo

INTRODUCCIN

La POO
Conceptos Bsicos de la POO Reutilizacin y Jerarqua de Clase Herencia Polimorfismo Sobrecarga de Operadores y Funciones Funciones Especiales Excepciones Metodologa de Modelado y desarrollo de Software Orientado a Objeto

-Representa un enfoque nuevo - Descripcin de los objetos que se manipularn - Se deben identificar las clases y el enfoque en que estas interactuarn

PROGRAMACIN ORIENTADA A OBJETOS


Introduccin Objetivo Conceptos Bsicos de la POO Reutilizacin y Jerarqua de Clase Herencia Polimorfismo Sobrecarga de Operadores y Funciones Funciones Especiales Excepciones Metodologa de Modelado y desarrollo de Software Orientado a Objeto

OBJETIVO

Aplicar conceptos y funciones de la Programacin Orientada a Objetos (POO), apreciando su efectividad en el mantenimiento y reutilizacin de componentes (objetos, mensajes, mtodos y clases) y, en la resolucin de problemas.

PROGRAMACIN ORIENTADA A OBJETOS


Introduccin Objetivo Conceptos Bsicos de la POO Reutilizacin y Jerarqua de Clase Herencia Polimorfismo Sobrecarga de Operadores y Funciones Funciones Especiales Excepciones Metodologa de Modelado y desarrollo de Software Orientado a Objeto

POO

Definido por Grady Booch (1995) Mtodo de Implementacin Clase Tipo Abstracto de Dato Descripcin de un Objeto Similar a un Tipo de Dato Programas Organizados Cooperativa de Objetos Instancia de una clase Jerarqua de clases

POO

Relaciones de herencia Caractersticas Objetos, Clases, Herencia, Mensajes y Polimorfismo

Objeto

Unidad de encapsulamiento
Datos y Funciones

PROGRAMACIN ORIENTADA A OBJETOS


Introduccin Objetivo Conceptos Bsicos de la POO Reutilizacin y Jerarqua de Clase
Nombre

OBJETO
Nombre

Auto Matrcula Marca Valor Precio

Atributos

Dato

Ao_compra

Cal_prec_act

Herencia Polimorfismo Sobrecarga de Operadores y Funciones

Mtodo

Accin Cuerpo

Objeto-Objeto

Mensaje Funciones Especiales Excepciones Metodologa de Modelado y desarrollo de Software Orientado a Objeto
Emisor

Peticin Mtodos-Objeto

Receptor

PROGRAMACIN ORIENTADA A OBJETOS


Introduccin Objetivo Conceptos Bsicos de la POO Reutilizacin y Jerarqua de Clase Herencia Polimorfismo Sobrecarga de Operadores y Funciones Funciones Especiales Excepciones Metodologa de Modelado y desarrollo de Software Orientado a Objeto

CLASE
Cuenta Cuenta Cte Cuenta Ahorro

Servicio
Horas Frecuencia Descuento

S1010
8 2 20

S2020
4 6 10

Clase

Instancia

Declaracin de una Clase


class nom_clase { //cuerpo de la clase };

Definicin de una Clase


tipo_retorno nom_clase :: nom_funcin(argumentos)

{
}

PROGRAMACIN ORIENTADA A OBJETOS


Introduccin Objetivos Conceptos Bsicos de la POO Reutilizacin y Jerarqua de Clase Miembro Herencia Polimorfismo
Protegidos Privados Accesible slo por funciones miembros

CLASE NIVELES DE ACCESO

Pblicos

Accesible desde cualquier parte del programa

Accesible por funciones miembros de la clase y de la clase derivada

Sobrecarga de Operadores y Funciones Funciones Especiales Excepciones Metodologa de Modelado y desarrollo de Software Orientado a Objeto

class nom_clase { Private: //Miembros privados Public: //Miembros pblicos Protected: //Miembros protegidos }; Para acceder a un mtodo de una clase :

nom_clase obj1; obj1.nombreMetodo(arg1,arg2,, argN);

PROGRAMACIN ORIENTADA A OBJETOS


Introduccin Objetivos Conceptos Bsicos de la POO Reutilizacin y Jerarqua de Clase Herencia Polimorfismo Sobrecarga de Operadores y Funciones Funciones Especiales Excepciones Metodologa de Modelado y desarrollo de Software Orientado a Objeto Tipos
Clase Compilada anteriormente - Ahorro de tiempo Ventajas - Facilidad para intercambiar software

REUTILIZACIN DE CLASES

Cdigo Fuente de una Clase

PROGRAMACIN ORIENTADA A OBJETOS


Introduccin Objetivo
- Expresa relacin entre Clases y organizacin de Objetos

JERARQUA DE CLASES

Conceptos Bsicos de la POO Reutilizacin y Jerarqua de Clase Herencia Polimorfismo

- Permite una ordenacin de las abstracciones

Estructura de Clase Jerarqua es un Generalizacin/Especializacin Persona es un es un Estudiante es un Vendedor

Estructura de Objetos Jerarqua parte de Agregacin Auto Parte_de Motor Parte_de Transmisin

Sobrecarga de Operadores y Funciones Funciones Especiales Excepciones Metodologa de Modelado y desarrollo de Software Orientado a Objeto

Empleado

PROGRAMACIN ORIENTADA A OBJETOS


Introduccin Objetivo Conceptos Bsicos de la POO Reutilizacin y Jerarqua de Clase Herencia Polimorfismo Sobrecarga de Operadores y Funciones Funciones Especiales Excepciones Metodologa de Modelado y desarrollo de Software Orientado a Objeto
Video Herencia Simple Artculo Herencia Mltiple A B

HERENCIA
- Propiedad que permite a los objetos ser construidos a partir de otros objetos

Tipos

Audio

Radio

CD

PROGRAMACIN ORIENTADA A OBJETOS


Introduccin Objetivo Conceptos Bsicos de la POO Reutilizacin y Jerarqua de Clase Herencia Polimorfismo Sobrecarga de Operadores y Funciones Funciones Especiales Excepciones Metodologa de Modelado y desarrollo de Software Orientado a Objeto
};

HERENCIA
Sintaxis de la Herencia Simple
class nom_clase_base { }; class nom_clase_derivada: public | private | protected nom_clas_base

{
... };

Sintaxis de la Herencia Mltiple


class A { }; class B { }; class C: public | private | protected A, public | private | protected B

PROGRAMACIN ORIENTADA A OBJETOS


Introduccin Objetivo Tipo de Acceso a la clase base Conceptos Bsicos de la POO Reutilizacin y Jerarqua de Clase Herencia Polimorfismo Sobrecarga de Operadores y Funciones Funciones Especiales Excepciones Metodologa de Modelado y desarrollo de Software Orientado a Objeto
ACCESO A LA CLASE BASE DERIVACIN Pblica Privada Protegida Public Public Private Protected Private No accesible No accesible No accesible Protected Protected Private Protected

HERENCIA

PROGRAMACIN ORIENTADA A OBJETOS


Introduccin Objetivo Conceptos Bsicos de la POO Reutilizacin y Jerarqua de Clase Herencia Polimorfismo Sobrecarga de Operadores y Funciones Funciones Especiales Excepciones Metodologa de Modelado y desarrollo de Software Orientado a Objeto

POLIMORFISMO

Clase derivada implementa funciones virtuales

permite

Objetos responden diferente a un mismo mensaje

Polimorfismo
declarar se debe

Funciones miembros virtuales en clase base

Crear una jerarqua de clase

PROGRAMACIN ORIENTADA A OBJETOS


Introduccin Objetivo Conceptos Bsicos de la POO Reutilizacin y Jerarqua de Clase
};

POLIMORFISMO

class figura { public: virtual void Area ( );

Herencia
class triangulo : public figura

Polimorfismo Sobrecarga de Operadores y Funciones

{ public: void Area ( ); };

Funciones Especiales Excepciones Metodologa de Modelado y desarrollo de Software Orientado a Objeto

PROGRAMACIN ORIENTADA A OBJETOS


Introduccin Objetivo
- No se pueden inventar nuevos operadores

SOBRECARGA DE OPERADORES

Conceptos Bsicos de la POO Reutilizacin y Jerarqua de Clase Herencia Polimorfismo Sobrecarga de Operadores y Funciones Funciones Especiales Excepciones Metodologa de Modelado y desarrollo de Software Orientado a Objeto

- La sobrecarga de operadores funciona slo cuando se aplica a objetos - No se puede cambiar un operador unitario por uno binario y viceversa - Empleo de la palabra reservada operator class complejo { public: complejo operator ++( ); };

Unarios: ++, -Binarios: /, %, (), [], new, delete, +=, -=, *=, =, ... Unarios o Binarios: +, -, *, &

PROGRAMACIN ORIENTADA A OBJETOS


Introduccin Objetivo
Hacer uso de un mismo nombre para varias funciones que ejecutan tareas similares.

SOBRECARGA DE FUNCIONES

Conceptos Bsicos de la POO Reutilizacin y Jerarqua de Clase Herencia Polimorfismo Sobrecarga de Operadores y Funciones Funciones Especiales Excepciones

Para ello las funciones deben: - Diferir al menos en el tipo o nmero de parmetros que acepta

class triangulo { private: float area; int lado; public: float leer( ){ .. return area;} int leer( ){ .. return lado;}

Metodologa de Modelado y desarrollo de Software Orientado a Objeto

};

PROGRAMACIN ORIENTADA A OBJETOS


Introduccin Objetivo Conceptos Bsicos de la POO Reutilizacin y Jerarqua de Clase Herencia Polimorfismo Sobrecarga de Operadores y Funciones Funciones Especiales Excepciones Metodologa de Modelado y desarrollo de Software Orientado a Objeto
}; };

FUNCIONES ESPECIALES
Dan sentido a la herencia entre clases y permiten la manipulacin e inicializacin del objeto

Constructor
Por Defecto class nom_clase { public: nom_clase( ) {} Alternativo class nom_clase { public: nom_clase(argumentos ) {}

};

Destructor
class nom_clase { public: ~nom_clase( ) {}

PROGRAMACIN ORIENTADA A OBJETOS


Introduccin Objetivo Conceptos Bsicos de la POO Reutilizacin y Jerarqua de Clase Herencia Polimorfismo Sobrecarga de Operadores y Funciones Funciones Especiales Excepciones Metodologa de Modelado y desarrollo de Software Orientado a Objeto

FUNCIONES ESPECIALES Funciones en Lnea (inline)


class nom_clase { public: inline tipo_retorno nom_func(argumentos ); {} };

Funciones Amigas
class nom_clase_base { friend tipo_retorno nom_func(argumentos) ;

}; class nom_clase_derivada: public nom_clas_base { friend tipo_retorno nom_func(argumentos) ; };

PROGRAMACIN ORIENTADA A OBJETOS


Introduccin Objetivo Conceptos Bsicos de la POO Reutilizacin y Jerarqua de Clase Herencia Polimorfismo Sobrecarga de Operadores y Funciones Funciones Especiales Excepciones Metodologa de Modelado y desarrollo de Software Orientado a Objeto
class nom_clase_derivada: public nom_clas_base { public: tipo_retorno nom_fun_virtual(argumentos) ; };

FUNCIONES ESPECIALES Funciones Virtuales


class nom_clase_base { public: virtual tipo_retorno nom_fun_virtual(argumentos) ; };

PROGRAMACIN ORIENTADA A OBJETOS


Introduccin Objetivo
Anomalas durante la ejecucin

EXCEPCIONES

Conceptos Bsicos de la POO Reutilizacin y Jerarqua de Clase Herencia Polimorfismo Sobrecarga de Operadores y Funciones Funciones Especiales Excepciones Metodologa de Modelado y desarrollo de Software Orientado a Objeto

Se captura excepcin
Manejadores catch try Fuentes de error Resultado fuera de rango Divisin entre cero

Excepciones

Se detecta una excepcin Se lanza o levanta (thow)

PROGRAMACIN ORIENTADA A OBJETOS


Introduccin Objetivo Conceptos Bsicos de la POO Reutilizacin y Jerarqua de Clase Herencia Polimorfismo Sobrecarga de Operadores y Funciones Funciones Especiales Excepciones Metodologa de Modelado y desarrollo de Software Orientado a Objeto

EXCEPCIONES try { float f, g; cout << Introduzca lados del triangulo rectangulo: ; cin >> f >> g; cout << Hipotenusa: << hipo(f, g) << endl: } catch(char *msg){ cerr << msg << endl; return 1; } return 0; } float hipo(float a, float b) thow (char *){ if (a == 0 || b == 0) throw Los valores ser distinto de cero; if (a < 0 || b < 0) throw Los valores deben ser positivos; return sqrt (a * a + b * b);

PROGRAMACIN ORIENTADA A OBJETOS


Introduccin Objetivo Conceptos Bsicos de la POO Reutilizacin y Jerarqua de Clase Herencia Polimorfismo Sobrecarga de Operadores y Funciones Funciones Especiales Excepciones Metodologa de Modelado y desarrollo de Software Orientado a Objeto

METODOLOGA DE MODELADO Y DESARROLLO DE SOFTWARE OO

Mecanismos generales
Informacin sobre elementos

Notacin estndar para modelado No es propietaria Desarrollo de software

Elementos del Modelo Conceptos OO

UML

Diagramas Descripcin de una vista vistas Aspectos del sistema

Partes fundamentales Vistas


Diagramas Elementos del modelo Mecanismos generales

PROGRAMACIN ORIENTADA A OBJETOS


Introduccin Objetivo

METODOLOGA DE MODELADO Y DESARROLLO DE SOFTWARE OO UML

Conceptos Bsicos de la POO Reutilizacin y Jerarqua de Clase Herencia Polimorfismo Sobrecarga de Operadores y Funciones Funciones Especiales Excepciones Metodologa de Modelado y desarrollo de Software Orientado a Objeto Dependencia Generalizacin Asociacin + Indica atributos pblicos # Indica atributos protegidos - Indica atributos privados

PROGRAMACIN ORIENTADA A OBJETOS


Introduccin Objetivo Conceptos Bsicos de la POO Reutilizacin y Jerarqua de Clase Herencia Polimorfismo Sobrecarga de Operadores y Funciones Funciones Especiales Excepciones Metodologa de Modelado y desarrollo de Software Orientado a Objeto Anlisis de Requerimientos Anlisis

METODOLOGA DE MODELADO Y DESARROLLO DE SOFTWARE OO

FASES DEL DESARROLLO DE UN SISTEMA

Diseo

Programacin

Pruebas

PROGRAMACIN ORIENTADA A OBJETOS


Introduccin Objetivo Conceptos Bsicos de la POO Reutilizacin y Jerarqua de Clase Herencia Polimorfismo Sobrecarga de Operadores y Funciones Funciones Especiales Excepciones Metodologa de Modelado y desarrollo de Software Orientado a Objeto

EJEMPLO
Sobrecarga de Operadores y Funciones

#include <iostream.h> class binario { int x; public: binario () { x = 0; } binario (int a) { x = a; } binario operator + (binario &); void visualizar(){ cout << x << endl; } }; binario binario::operator + (binario &a) { binario aux; aux.x = x + a.x; return aux; } void main() { binario p(4), s(2), t; t = p + s; t.visualizar(); }

PROGRAMACIN ORIENTADA A OBJETOS


Introduccin Objetivo Conceptos Bsicos de la POO Reutilizacin y Jerarqua de Clase Herencia Polimorfismo Sobrecarga de Operadores y Funciones Funciones Especiales Excepciones Metodologa de Modelado y desarrollo de Software Orientado a Objeto

EJEMPLO
Herencia
#include <iostream.h> #include <string.h>

#include <stdlib.h>
//Definicin de la clase CEmpleado class CEmpleado { protected: char ape[20]; double sueldo; public: CEmpleado() { strcpy(ape, ""); sueldo=0; } CEmpleado(char ap[20], double s) { strcpy(ape, ap); sueldo=s; } char* ObtenerApellido(); double ObtenerSueldo(); };

PROGRAMACIN ORIENTADA A OBJETOS


Introduccin Objetivo Conceptos Bsicos de la POO Reutilizacin y Jerarqua de Clase Herencia
//Definicin de la clase CGerente heredada de CEmpleado

EJEMPLO
//funciones miembros de CEmpleado char* CEmpleado::ObtenerApellido () { return ape; } double CEmpleado::ObtenerSueldo () { return sueldo; }

Polimorfismo Sobrecarga de Operadores y Funciones Funciones Especiales Excepciones Metodologa de Modelado y desarrollo de Software Orientado a Objeto

class CGerente:public CEmpleado { char dpto[20]; char secretaria[20]; public: CGerente(char n[20], double s, char d[20], char sec[20]) { strcpy(ape, n); sueldo=s; strcpy(dpto,d); strcpy(secretaria, sec); } char* ObtenerSecretaria(); char* ObtenerDpto(); };

PROGRAMACIN ORIENTADA A OBJETOS


Introduccin Objetivo
//Funciones miembros de CGerente

EJEMPLO

Conceptos Bsicos de la POO Reutilizacin y Jerarqua de Clase Herencia Polimorfismo Sobrecarga de Operadores y Funciones Funciones Especiales Excepciones Metodologa de Modelado y desarrollo de Software Orientado a Objeto

char* CGerente::ObtenerSecretaria() { return secretaria; } char* CGerente::ObtenerDpto () { return dpto; } //funcin principal void main(void) { CGerente g("Perez", 2500.60, "Sistemas", "Juana"); cout << g.ObtenerApellido()<<endl; cout << g.ObtenerSueldo()<<endl; cout << g.ObtenerDpto()<<endl; cout << g.ObtenerSecretaria()<<endl; system("pause"); }

You might also like