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

1

Tema #1
Programacin
Orientada a Objetos
Universidad Autnoma
Gabriel Ren Moreno

Elaborado por: Ing. Juan Carlos Contreras Villegas
2
Objetivos
Los objetivos del presente tema son:
Conocer los conceptos la programacin
orientada a objetos
Utilizar la notacin de UML para la
representacin de los diagramas de
clases.
Implementar los conceptos realizando
pequeos programas demo C++
3
Caractersticas
Esta basado en Objetos, se modela y se
piensa en los Objetos y lo que estos
pueden hacer, o lo que se puede hacer
con estos.
Se pueden construir fcilmente nuevas
aplicaciones sin mucho esfuerzo
La Herencia puede ser una herramienta
muy til en OOP, y al mismo tiempo puede
ser FATAL.
4
P.O.O. - Lenguajes
Ada
Modula
Smalltalk (Alan Kay)
Java (Sun Microsystems)
Eiffel
C++
Object Pascal
C#
5
Conceptos
Clases & Objetos
Atributos y Mtodos
Encapsulamiento
Herencia
Polimorfismo
Generalizacin, Asociacin, Agregacin
6
Abstraccin
Concepto. Se define
como la capacidad para
examinar algo sin
preocuparse de sus
detalles internos.
Existen dos tipos de abstracciones: abstraccin
de datos y abstraccin funcional
7
Abstraccin de Datos
Consiste en utilizar los datos sin
preocuparse por los detalles de su
implementacin, es decir, lo importante es
saber que tipo de informacin se puede
utilizar y no como est almacenado
Que Atributo
Como Campo
8
Abstraccin funcional
Consiste en saber que es lo que hace un
determinado proceso, pero no como lo
hace.
Por ejemplo el proceso Ordenar de la
clase Vector, sabemos que el mtodo
ordenar los elementos del vector, pero
no nos interesa como lo har.
Que mtodo
Como algoritmo
9
Encapsulamiento
Consiste en reunir varias cosas para ser
manipuladas como una sola unidad.
Por ejemplo al definir variables de tipo
Registro estamos encapsulando los
campos del registro.
Al definir una clase estamos
encapsulando los atributos y los mtodos.
10
Abstraccin y
Encapsulamiento
La abstraccin y el encapsulamiento son
conceptos complementarios
La abstraccin se enfoca a la vista
exterior de un objeto
El encapsulamiento previene a otros
objetos ver su interior, donde el
comportamiento de la abstraccin se ha
realizado.
11
Ocultamiento
Consiste en no permitir el acceso a los
componentes de una clases (atributos, mtodos)
Esto se logra con la visibilidad que ofrecen los
lenguajes de programacin.
Privado: Solo los miembros de la clase tienen
acceso
Protegido: Solo los miembros de la clase y sus
derivados tienen acceso
Pblico: Todos tienen acceso
12
Modularidad
Este concepto ya viene desde la
programacin modular, y se refiere al
hecho de realizar un programa por partes,
a las cuales se las denomina mdulos.
Un mdulo es un archivo que contiene un
conjunto de declaraciones y/o procesos.
En OOP normalmente un mdulo contiene
la interfaz y la implementacin de un o
ms clases relacionadas.
13
CLASE
14
CLASE
Una clase representa a un conjunto
de objetos que comparten una
estructura y un comportamiento
comunes.
La estructura de un objeto se define
en su clase, por lo que un objeto es
en realidad la instancia de una clase.
15
CLASE
Llacua Vasquez
Es una entidad que tiene Atributos(datos)
y Procesos(mtodos) inherentes al
propsito y funcionamiento de la misma.
Los atributos identifican las
caractersticas de la clase y los procesos
establecen su comportamiento


16
CLASE
Luis Joyanes Aguilar
Una Clase es un tipo definido por el
usuario(programador) que determina las
estructuras de datos y las operaciones
asociadas con este tipo
La Clase es simplemente un modelo que se
utiliza para describir uno o ms objetos
del mismo tipo
17
OBJETO
Un objeto es una abstraccin de una
entidad del mundo real.
Toda interaccin con el mundo
externo es por medio de una
interfase.
18
OBJETO
Un objeto tiene:
Un estado
Un comporta-
miento bien
definido
Una identidad
nica
19
Estado
El estado de un objeto se compone de
todas las propiedades de un objeto
(estticas)
Y los valores asociados a ellas
(dinmicos).
Estos valores pueden ser:
Simples
O denotar a otro objeto.
Estado = Atributos = Datos miembro
20
ATRIBUTOS
Concepto: Caractersticas que definen a la
clase, es lo que el usuario (de la clase)
puede ver. Es la abstraccin.
Otro concepto: variables que estn dentro
de los objetos y que contienen los valores
del objeto.
Tambin son llamados: propiedades,
datos miembro.
21
ATRIBUTOS Ejemplo1
Una Fraccin est definido por un par de
nmeros naturales, los cuales se
denominan el numerador y denominador.
Fraccion
Numerador
Denominador

num_
den
22
ATRIBUTOS Ejemplo2
Un Fecha est definido por tres datos: da,
mes y ao.
Fecha
Da
Mes
Ao

15/ 12/ 2005
23
Comportamiento
El comportamiento de un objeto es la forma en
que acta y reacciona, en trminos de sus
cambios de estado e intercambio de mensajes
con otros objetos.
El comportamiento de un objeto est
determinado por las operaciones que pueden ser
invocadas sobre el mismo.
Los tres tipos de operaciones ms comunes son:
24
MTODOS
Concepto: Son las operaciones que se pueden
realizar con los objetos de la clase.
Otro concepto: Son los procesos (funciones o
procedimientos) que permiten trabajar con los
datos de los objetos
Tambin son llamados: funciones miembro
De acuerdo al trabajo que realizan los
mtodos, estos se clasifican
en:Constructores,destructores, ponedores,
selectores.
25
Tipos de Mtodos
Constructores
Destructores
Modificadores
Selectores
Iteradores
26
Constructor
El constructor es un proceso que se
encarga de:
Reservar espacio de memoria para los
datos del objeto
Inicializar los atributos del objeto (darle un
estado inicial)
Tipos de Constructor:
Oficio, Copia, con Parmetros
27
Constructor de oficio
Inicializa los atributos con valores
definidos por el implementador de la
clase.
Ej.
Fecha::Fecha()
{ d=1; m=1; a=2001;
}
28
Constructor de copia
Inicializa los atributos del objeto con los
datos provenientes de otro objeto de la
misma clase.
Ej.
Fecha::Fecha(const Fecha &f2)
{ d=f2.d;
m=f2.m;
a=f2.a;
}
29
Constructor con parmetros
Inicializa el objeto con datos provenientes
de los parmetros.
Ej.
Fecha::Fecha(byte dd, byte mm,Word aa)
{ SetFecha(dd, mm, aa);
}
30
Destructor
Liberar la memoria reservada para los
datos del objeto.
La mayora de los lenguajes lo tiene
implementado por default por lo que solo
se lo implementa cuando el objeto reserva
memoria en tiempo de ejecucin.
31
Modificador
Permite cambiar el estado de un objeto,
modificando los atributos del mismo.
Ej.
Void Fecha::SetDia(byte dd)
{ SetFecha(dd, m, a);
}
32
Selector
Permite devolver el valor de los atributos
sin alterar su estado.
Ej.
byte Fecha::GetDia()
{ return d;
}
33
Identidad
Es la propiedad de un objeto que lo distingue de todos los
dems objetos
No hay que confundir el nombre de un objeto con el objeto
mismo.
Ej. piolin != &piolin;
Puede haber varias variables que se refieran al mismo
objeto, pero no varios objetos con la misma identidad.
Ej. Canario *pointer = &piolin;
Puede haber objetos con el mismo estado pero identidades
diferentes.
Ej. Canario cantarin = piolin;
Conclusin: hay dos tipos de igualdad: de estado y de
identidad.
34
Mtodos Ejemplo1-2
CQuebrado

PonNumerador
PonDenominador
ObtDenominador
ObtNumerador
Simplificar
CVector

PonDimension
PonElemento
ObtDimension
ObtElemento
Ordenar
Representacin grfica de los mtodos de las clases CQuebrado y CVector
35
Mtodo Constructor
El mtodo constructor es un proceso cuyo
trabajo consiste en: Reservar espacio de
memoria para un objeto de la clase e
inicializar los atributos del objeto.
El constructor es invocado explicitamente
en Object Pascal, e implcitamente en C++.
Todas las clases definen al menos un
mtodo constructor.
36
Contructor Ejemplo1
Implementacin en OP
Constructor Cquebrado.Create;
Begin
num:=1;
den:=1;
End;

Implementacin en C++
Cquebrado::Cquebrado()
{
num=1;
den =1;
}
Se inicializan los objetos de la clase Cquebrado como la fraccion 1/1
37
Constructor Ejemplo2
Implementacin en
OP
Constructor Cvector.Create;
Begin
dim:=0;
End;
Implementacin en
C++
Cvector::Cvector()
{
dim=0;
}
Se inicializan los objetos de la clase Cvector como un vector vacio, es decir,
sin elementos
38
Mtodo Destructor
Concepto. El destructor es un proceso
que se encarga de liberar el espacio de
memoria asignado a los atributos del
objeto y al objeto mismo.
Normalmente no es necesario
implementar el destructor a menos que
los atributos del objeto sean punteros.
39
Destructor Ejemplo1-2
Implementacin en OP
Destructor Cquebrado.Destroy;
Begin
------
End;

Destructor Cvector.Destroy;
Begin
-----
End;
Implementacin en C++
Cquebrado::~Cquebrado()
{
-------
}

Cvector::~Cvector()
{
------
}
40
Mtodo Ponedor
El mtodo ponedor es un proceso cuyo trabajo
consiste en asignar valores a los atributos de un
objeto.
En una clase debe haber por lo menos un mtodo
ponedor para cada uno de los atributos.
Para los nombres de los procesos ponedores
normalmente se utilizan los prefijos Set o Pon
41
Ponedor Ejemplo1 en OP
Procedure Cquebrado.PonNumerador(n:word);
Begin
num:=n;
End;

Procedure Cquebrado.PonDenominador(d:word);
Begin
den:=d;
End;
42
CLASE Ejemplo1
Deseamos construir un tipo de dato que permita
almacenar datos de la siguiente forma: , , 3/5 ,
4/7, etc.
tal tipo de dato podra llamarse Cquebrado
Representacin grfica
CQuebrado
43
CLASE - CQuebrado
Definicin de la clase
Cquebrado en Object
Pascal
TYPE
CQuebrado = Class
private
--------
public
-------
End;
Definicin de la clase
Cquebrado en C++

class Cquebrado {
private:
--------
public:
--------
};
44
CLASE Ejemplo1
Deseamos construir un tipo de dato que permita
almacenar datos de la siguiente forma: , , 3/5 ,
4/7, etc.
tal tipo de dato podra llamarse Cquebrado
Representacin grfica
CQuebrado
45
CLASE - CQuebrado
Definicin de la clase
Cquebrado en Object
Pascal
TYPE
CQuebrado = Class
private
--------
public
-------
End;
Definicin de la clase
Cquebrado en C++

class Cquebrado {
private:
--------
public:
--------
};
46
CLASE Ejemplo1
Deseamos construir un tipo de dato que permita
almacenar datos de la siguiente forma: , , 3/5 ,
4/7, etc.
tal tipo de dato podra llamarse Cquebrado
Representacin grfica
CQuebrado
47
CLASE - CQuebrado
Definicin de la clase
Cquebrado en Object
Pascal
TYPE
CQuebrado = Class
private
--------
public
-------
End;
Definicin de la clase
Cquebrado en C++

class Cquebrado {
private:
--------
public:
--------
};
48
Ponedor Ejemplo1 en C++
void Cquebrado::PonNumerador(unsigned n)
{
num:=n;
}

void Cquebrado::PonDenominador(unsigned d)
{
den:=d;
}
49
Mtodo Selector
El mtodo selector es una funcin, cuyo
trabajo consiste en devolver el valor
guardado en los atributos.
En cada clase se define por lo menos un
mtodo selector por cada uno de los
atributos de la clase.
Para los nombres de los selectores se
utilizan normalmente los prefijos Set u
Obt.
50
Selector Ejemplo1 en OP
Function Cquebrado.ObtNumerador:word;
Begin
result:=num;
End;

Function Cquebrado.ObtDenominador:word;
Begin
result:=den;
End;
51
Selector Ejemplo2 en OP
Function Cvector.ObtDimension:word;
Begin
result:=dim;
End;

Function Cvector.ObtElemento(i:word):integer;
Begin
result:=elementos[i];
End;
52
Selector Ejemplo1 en C++
unsigned Cquebrado::ObtNumerador()
{
return num;
}

unsigned Cquebrado::ObtDenominador()
{
return den;
}
53
Otros mtodos
Adems de los mtodos bsicos, las
clases pueden proveer de otros mtodos
para un mejor aprovechamiento.
Estos otros mtodos no tienen nombres
especiales (constructor, selector, etc), son
simplemente mtodos.

54
Otros mtodos-Ejemplo1
en OP
Procedure CQuebrado.Simplificar;
var x,i:integer;
Begin
i:=2;
REPEAT
if ((num MOD i)=0) AND ( (den MOD i)=0) then
Begin
num:=num DIV i; den:=den DIV i;
end else begin
i:=i+1;
end;
x:=Menor(num,den);
UNTIL i>(x DIV 2);
End;
55
Otros mtodos-Ejemplo1 en
OP
//funcion que devuelve el valor del quebrado en
string
Function Cquebrado.ToStr:string;
Begin
result:=intToStr(num)+/+intToStr(den);
End;

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