Вы находитесь на странице: 1из 28

Lic.

Yamila Bolvar, concurso 2007

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

INTRODUCCIN

La POO
-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

POO

Objetivo
Conceptos Bsicos de la
POO
Reutilizacin y Jerarqua de
Clase

Definido por Grady Booch (1995)


Mtodo de Implementacin
Programas Organizados

Clase

Cooperativa de Objetos
Instancia de una clase
Jerarqua de clases

Tipo Abstracto de Dato

Herencia

Descripcin de un Objeto

POO

Similar a un Tipo de Dato

Polimorfismo
Sobrecarga de Operadores y
Funciones

Caractersticas
Objetos, Clases,
Herencia, Mensajes y Polimorfismo
Objeto
Unidad de encapsulamiento

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

Relaciones de herencia

Datos y Funciones

PROGRAMACIN ORIENTADA A OBJETOS


Introduccin

OBJETO

Auto

Objetivo
Conceptos Bsicos de la
POO

Nombre

Atributos

Marca

Dato
Valor

Reutilizacin y Jerarqua de
Clase
Nombre

Herencia

Mtodo

Accin
Cuerpo

Polimorfismo
Sobrecarga de Operadores y
Funciones
Funciones Especiales

Objeto-Objeto

Mensaje

Peticin
Mtodos-Objeto

Excepciones
Metodologa de Modelado y
desarrollo de Software
Orientado a Objeto

Emisor

Matrcula

Receptor

Precio
Ao_compra
Cal_prec_act

PROGRAMACIN ORIENTADA A OBJETOS


Introduccin
Objetivo

CLASE
Cuenta

Cuenta Cte

Cuenta Ahorro

Servicio

S1010

S2020

Conceptos Bsicos de la
POO

Horas

Frecuencia

Reutilizacin y Jerarqua de
Clase

Descuento

20

10

Herencia
Polimorfismo
Sobrecarga de Operadores y
Funciones

Clase

Instancia

Declaracin de una Clase


class nom_clase
{
//cuerpo de la clase

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

};

Definicin de una Clase


tipo_retorno nom_clase :: nom_funcin(argumentos)
{

PROGRAMACIN ORIENTADA A OBJETOS


Introduccin
Objetivos

CLASE
NIVELES DE ACCESO

Conceptos Bsicos de la
POO

Pblicos

Accesible desde cualquier parte del programa

Privados

Accesible slo por funciones miembros

Reutilizacin y Jerarqua de
Clase
Miembro
Herencia
Polimorfismo
Protegidos

Sobrecarga de Operadores y
Funciones

Accesible por funciones miembros de la


clase y de la clase derivada

class nom_clase
{

Funciones Especiales

Private:
//Miembros privados

Excepciones
Metodologa de Modelado y
desarrollo de Software
Orientado a Objeto

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

REUTILIZACIN DE CLASES

Objetivos
Conceptos Bsicos de la
POO

Ventajas

- Ahorro de tiempo
- Facilidad para intercambiar software

Reutilizacin y Jerarqua de
Clase
Clase Compilada
anteriormente

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

Tipos

Cdigo Fuente de
una 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

JERARQUA DE CLASES

- Expresa relacin entre Clases y organizacin de Objetos


- Permite una ordenacin de las abstracciones

Estructura de Clase
Jerarqua es un
Generalizacin/Especializacin

Estructura de Objetos
Jerarqua parte de
Agregacin

Persona

Auto

es un

es un

Empleado

Estudiante
es un

Vendedor

Parte_de
Motor

Parte_de
Transmisin

PROGRAMACIN ORIENTADA A OBJETOS


Introduccin
Objetivo

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

Conceptos Bsicos de la
POO

Tipos

Reutilizacin y Jerarqua de
Clase
Herencia

Herencia Simple

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

Artculo

Polimorfismo
Sobrecarga de Operadores y
Funciones

Herencia Mltiple

Video

Audio

Radio

CD

PROGRAMACIN ORIENTADA A OBJETOS


Introduccin
Objetivo

HERENCIA
Sintaxis de la Herencia Simple

Conceptos Bsicos de la
POO

class nom_clase_base { };

Reutilizacin y Jerarqua de
Clase

Herencia
Polimorfismo

class nom_clase_derivada: public | private | protected nom_clas_base

...
};

Sintaxis de la Herencia Mltiple

Sobrecarga de Operadores y
Funciones

class A { };

Funciones Especiales

class C: public | private | protected A, public | private | protected B

class B { };

Excepciones
Metodologa de Modelado y
desarrollo de Software
Orientado a Objeto

};

PROGRAMACIN ORIENTADA A OBJETOS


Introduccin

HERENCIA

Objetivo
Tipo de Acceso a la clase base
Conceptos Bsicos de la
POO
Reutilizacin y Jerarqua de
Clase

ACCESO A LA CLASE BASE


DERIVACIN

Public

Private

Protected

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

Pblica

Public

No accesible

Protected

Privada

Private

No accesible

Private

Protegida

Protected

No accesible

Protected

PROGRAMACIN ORIENTADA A OBJETOS


Introduccin

POLIMORFISMO

Objetivo
Conceptos Bsicos de la
POO

Clase derivada implementa


funciones virtuales

permite

Objetos responden diferente a un


mismo mensaje

Reutilizacin y Jerarqua de
Clase

Polimorfismo

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

declarar

Funciones miembros virtuales


en clase base

se debe

Crear una jerarqua de clase

PROGRAMACIN ORIENTADA A OBJETOS


Introduccin
Objetivo
Conceptos Bsicos de la
POO

POLIMORFISMO

class figura
{
public:
virtual void Area ( );

Reutilizacin y Jerarqua de
Clase

};

Herencia
Polimorfismo

class triangulo : public figura


{
public:
void Area ( );

Sobrecarga de Operadores y
Funciones

};

Funciones Especiales
Excepciones
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

SOBRECARGA DE OPERADORES

- No se pueden inventar nuevos operadores


- 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:

Polimorfismo

complejo operator ++( );

Sobrecarga de Operadores y
Funciones

};

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

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

PROGRAMACIN ORIENTADA A OBJETOS


Introduccin
Objetivo
Conceptos Bsicos de la
POO

SOBRECARGA DE FUNCIONES

Hacer uso de un mismo nombre para varias funciones que ejecutan tareas similares.
Para ello las funciones deben:
- Diferir al menos en el tipo o nmero de parmetros que acepta

Reutilizacin y Jerarqua de
Clase
Herencia

class triangulo
{

Polimorfismo

private:
float area;

Sobrecarga de Operadores y
Funciones

int lado;

Funciones Especiales

float leer( ){ .. return area;}

public:

int leer( ){ .. return lado;}

Excepciones
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

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

Constructor
Por Defecto
class nom_clase

class nom_clase

Herencia
Polimorfismo
Sobrecarga de Operadores y
Funciones
Funciones Especiales
Excepciones

Alternativo

public:

public:

nom_clase( ) {}

nom_clase(argumentos ) {}

};

};

Destructor
class nom_clase
{
public:

Metodologa de Modelado y
desarrollo de Software
Orientado a Objeto

~nom_clase( ) {}

};

PROGRAMACIN ORIENTADA A OBJETOS


Introduccin
Objetivo
Conceptos Bsicos de la
POO

FUNCIONES ESPECIALES
Funciones en Lnea (inline)
class nom_clase
{
public:

Reutilizacin y Jerarqua de
Clase
Herencia
Polimorfismo
Sobrecarga de Operadores y
Funciones

inline tipo_retorno
nom_func(argumentos ); {}

};

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

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

};
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

FUNCIONES ESPECIALES
Funciones Virtuales
class nom_clase_base
{
public:

Reutilizacin y Jerarqua de
Clase

virtual tipo_retorno nom_fun_virtual(argumentos) ;

Herencia

};

Polimorfismo
Sobrecarga de Operadores y
Funciones
Funciones Especiales

class nom_clase_derivada: public nom_clas_base


{
public:
tipo_retorno nom_fun_virtual(argumentos) ;

Excepciones
Metodologa de Modelado y
desarrollo de Software
Orientado a Objeto

};

PROGRAMACIN ORIENTADA A OBJETOS


Introduccin

EXCEPCIONES

Objetivo
Anomalas durante la ejecucin

Conceptos Bsicos de la
POO
Reutilizacin y Jerarqua de
Clase

Se captura excepcin
Manejadores

Fuentes de error
Resultado fuera de rango

catch
try

Herencia

Divisin entre cero

Excepciones

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

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

METODOLOGA DE MODELADO Y DESARROLLO DE


SOFTWARE OO

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

Mecanismos generales

Notacin estndar para modelado

Informacin sobre elementos

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

+ Indica atributos pblicos


# Indica atributos protegidos
- Indica atributos privados

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

Dependencia
Generalizacin
Asociacin

PROGRAMACIN ORIENTADA A OBJETOS


Introduccin

METODOLOGA DE MODELADO Y DESARROLLO DE


SOFTWARE OO

Objetivo
Conceptos Bsicos de la
POO
Anlisis de Requerimientos

Reutilizacin y Jerarqua de
Clase

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

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

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

Reutilizacin y Jerarqua de
Clase

#include <stdlib.h>

Herencia

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();
};

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

//Definicin de la clase CEmpleado

PROGRAMACIN ORIENTADA A OBJETOS


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

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

Herencia
//Definicin de la clase CGerente heredada de CEmpleado

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

EJEMPLO

Objetivo
//Funciones miembros de CGerente

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");
}

Вам также может понравиться