Anda di halaman 1dari 70

Introduccin a la

Introduccin a la
Orientacin a Objetos
Orientacin a Objetos
Objetivo
Describir el Paradigma de Orientacin a Objetos
incluyendo los conceptos relacionados al anlisis,
diseo y programacin
Temas a Tratar

Paradigmas de Programacin

Clases y Objetos

Modificadores de Acceso

u! es "M#$

Principios de la Orientacin a Objetos

Conceptos del Diseo Orientado a Objetos


Paradigmas de Programacin

%ay para todos los gustos

&structurados 'C, Pascal, (asic, etc)*

+uncionales 'CAM#*

Declarati,os 'Prolog*

Orientados a Objetos 'C-, .()/&0, 1malltal2, 3a,a*

Orientados a Aspectos

%4bridos '#isp, .isual (asic*

5ncomprensibles))))

Cada enfo6ue tiene sus ,entajas y des,entajas

Cada uno es ms apropiado para ciertas cosas


El mundo color de Objetos

0odo el mundo est compuesto de entidades 6ue se


relacionan e interact7an entre si

u! es un Objeto$

0odo es un Objeto 89$:

&s lo mismo de siempre con otro nombre$

Pensar en Objetos ;)

/o es el 7ltimo grito de la moda '<=>?s*


El mundo color de Objetos

Por 6u! Orientacin a Objetos 'OO*$

1e parece ms al mundo real

Permite representar modelos complejos

Muy apropiada para aplicaciones de negocios

#as empresas a@ora s4 aceptan la OO

#as nue,as plataformas de desarrollo la @an adoptado


'3a,a A )/&0*
Temas a Tratar

Paradigmas de Programacin

Clases y Objetos

Modificadores de Acceso

u! es "M#$

Principios de la Orientacin a Objetos

Conceptos del Diseo Orientado a Objetos


Qu es un Objeto?

5nformalmente, un objeto representa una entidad del


mundo real

&ntidades +4sicas

'&j)B .e@4culo, Casa, Producto*

&ntidades Conceptuales

'&j)B Proceso u4mico, 0ransaccin (ancaria*

&ntidades de 1oftCare

'&j)B #ista &nlaDada, 5nterfaD Erfica*


Qu es un Objeto?

Definicin +ormal 'Fumbaug@*B

G"n objeto es un concepto, abstraccin o cosa con un


significado y l4mites claros en el problema en cuestinH

"n objeto posee '(ooc@*B

&stado

Comportamiento

5dentidad
Un objeto posee Estado

Lo que el objeto sabe

&l estado de un objeto es una de las posibles


condiciones en 6ue el objeto puede eIistir

&l estado normalmente cambia en el transcurso del


tiempo

&l estado de un objeto es implementado por un


conjunto de propiedades 'atributos*, adems de las
coneIiones 6ue puede tener con otros objetos
Un objeto posee Comportamiento

Lo que el objeto puede hacer

&l comportamiento de un objeto determina cmo !ste


act7a y reacciona frente a las peticiones de otros objetos

&s modelado por un conjunto de mensajes a los 6ue el


objeto puede responder 'operaciones 6ue puede
realiDar*

1e implementa mediante m!todos


Un objeto posee Identidad

Cada objeto tiene una identidad 7nica, incluso si su


estado es id!ntico al de otro objeto
Qu es una Clase?

"na clase es una descripcin de un grupo de objetos conB

Propiedades en com7n 'atributos*

Comportamiento similar 'operaciones*

#a misma forma de relacionarse con otros objetos 'relaciones*

"na semntica en com7n 'significan lo mismo*

"na clase es una abstraccin 6ueB

&nfatiDa las caracter4sticas rele,antes

1uprime otras caracter4sticas 'simplificacin*

"n objeto es una instancia de una clase


Objetos y Clases

"na clase es una definicin abstracta de un objeto

Define la estructura y el comportamiento compartidos por los


objetos

1ir,e como modelo para la creacin de objetos

#os objetos pueden ser agrupados en clases


Ejemplo de una Clase

ClaseB Curso

&stado 'Atributos*

/ombre

"bicacin

D4as Ofrecidos

%orario de 5nicio

%orario de 0!rmino

Comportamiento 'M!todos*

Agregar un Alumno

(orrar un Alumno

&ntregar un #istado del Curso

Determinar si est Completo


Temas a Tratar

Paradigmas de Programacin

Clases y Objetos

Modificadores de Acceso

u! es "M#$

Pilares de la Orientacin a Objetos

Conceptos del Diseo Orientado a Objetos


odi!icadores de "cceso

Permiten definir el ni,el de acceso ',isibilidad* de los


miembros 'atributos o m!todos* de una clase

PublicoB Cual6uier clase puede G,erH los miembros


p7blicos de otra clase

Pri,adoB 1lo la clase puede ,er sus propios miembros


pri,ados

&Iisten otros dos modificadores para propsitos


espec4ficos 'Pa6uete, Protegido*
Temas a Tratar

Paradigmas de Programacin

Clases y Objetos

Modificadores de Acceso

u! es "M#$

Pilares de la Orientacin a Objetos

Conceptos del Diseo Orientado a Objetos


Qu es U#?

G"M# es un lenguaje ,isual para especificar, construir y


documentar sistemasH 'OME J Object Management
Eroup*

"nified '"/5+5CADO*B

&l aporte de muc@os m!todos y notaciones

5ndependiente de implementaciones, plataformas y lenguajes

Modeling 'MOD&#ADO*B

#os modelos son utiliDados en todas las ingenier4as

#anguage '#&/E"A3&*B

1i @ay gente, re6uieren comunicarse) 1i se tienen 6ue


comunicar, se tienen 6ue entender) Para entenderse necesitan
un lenguaje com7n

UML no es Metodologa!
Una Clase en U#

"na clase est compuesta de tres


secciones

#a primera seccin contiene el nombre de la


clase

#a segunda seccin muestra la estructura


'atributos*

#a tercera seccin muestra el


comportamiento 'operaciones*

#a segunda y la tercera seccin pueden


ser suprimidas

Modificadores de Acceso

#os miembros p7blicos se denotan con el


signo GKH

#os miembros pri,ados se denotan con el


signo GLH
+AgregarAlumno()
+BorrarAlumno()
+GenerarListadoCurso()
+EstaCompleto()
-nombre
-ubicacion
-dias
-inicio
-fin
Curso
Temas a Tratar

Paradigmas de Programacin

Clases y Objetos

Modificadores de Acceso

u! es "M#$

Pilares de la Orientacin a Objetos

Conceptos del Diseo Orientado a Objetos


Relaciones
Relaciones
Herencia
Herencia
Abstraccin
Abstraccin
Encapsulamiento
Encapsulamiento
"bstraccin

5gnorancia 1electi,a

#a abstraccin nos ayuda a trabajar con cosas complejas

1e enfoca en lo importante

5gnora lo 6ue no es importante 'simplifica*

"na clase es una abstraccin en la 6ueB

1e enfatiDan las caracter4sticas rele,antes

1e suprimen otras caracter4sticas

"na clase debe capturar una y solo una abstraccin


cla,e
Encapsulamiento

Principio 6ue establece 6ue los atributos propios de un


objeto no deben ser ,isibles desde otros objetos

Deben ser declarados como pri,ados

Permite abstraer al resto del mundo de la complejidad


de la implementacin interna

Permite eIponer el estado del objeto slo a tra,!s del


comportamiento 6ue le @ayamos definido mediante
miembros p7blicos

Por 6u! es 7til$

Punto de ControlA.alidacin

Mejor respuesta ante los Cambios


$elaciones

0odo sistema abarca muc@as clases y objetos

#os objetos contribuyen en el comportamiento de un


sistema colaborando entre si

#a colaboracin se logra a tra,!s de las relaciones

&Iisten dos tipos principales de relaciones

Asociacin

Agregacin
$elaciones de "sociacin

"na asociacin es una coneIin entre dos clases 6ue


representa una comunicacin

"na asociacin puede tener nombre

#a comunicacin puede ser tanto uni como biJdireccional 'por


defecto*

#a multiplicidad es el n7mero de instancias 6ue participan en


una asociacin

&jemploB

"na Persona es Duea de un .e@4culo

"n .e@4culo Pertenece a una Persona


Persona Vehiculo
-dueo
$elaciones de "gregacin

#a agregacin es una forma especial de asociacin


donde un todo se relaciona con sus partes

0ambi!n se conoce como Guna parte deH o una relacin de


contencin

&jemploB

"na Puerta es una parte de un .e@4culo

&l .e@4culo es aDul, la Puerta es ADul

Mo,er el .e@4culo implica mo,er la Puerta


+!o"er()
-color
Vehiculo Puerta
%erencia

&s una relacin entre clases en la


cual una clase comparte la
estructura y comportamiento
definido en otra clase 'Erady
(ooc@*

Cada clase 6ue @ereda de otra


poseeB

#os atributos de la clase base adems


de los propios

1oporta todos o algunos de los


m!todos de la clase base

"na subclase @ereda de una clase


base
+A"an#ar()
+$etenerse()
-pasa%eros
Transporte
Automvil Avin
Clase Base Clase Base
Clases $eri"adas o Clases $eri"adas o
subclases subclases
%erencia

%erencia G&sJ"nHB @erencia real, donde la subclase es


un tipo espec4fico de la superclase

"n Cuadrado es un Fectngulo

"n perro es un mam4fero

"n autom,il es un ,e@4culo a motor


Temas a Tratar

Paradigmas de Programacin

Clases y Objetos

Modificadores de Acceso

u! es "M#$

Principios de la Orientacin a Objetos

Conceptos del Diseo Orientado a Objetos


Inter!aces &'()*

Fecurso de diseo soportado por los lenguajes


orientados a objetos 6ue permite definir
comportamiento

Permite 6ue clases 6ue no estn estrec@amente


relacionadas entre s4 deban tener el mismo
comportamiento

#a implementacin de una interfaD es un contrato 6ue


obliga a la clase a implementar todos los m!todos
definidos en la interfaD
Inter!aces &+()*
De 6ue clase @eredar4a la clase %idroa,in $
Vehiculo
Avin Barco
Aereo Terrestre Acuatico
Automvil
Inter!aces &)()*
Hidroavion
+Navegar()
&interface'
Acuatico
+Volar()
&interface'
Aereo

1e crean las interfaces 6ue definen comportamiento

%idroa,in deber definir los comportamientos de


cada una de las interfaces 6ue implemente
Polimor!ismo

&s la propiedad 6ue tienen los objetos de permitir


in,ocar gen!ricamente un comportamiento 'm!todo*
cuya implementacin ser delegada al objeto
correspondiente reci!n en tiempo de ejecucin

&l polimorfismo tiende a eIistir en las relaciones de


@erencia, pero no siempre es as4
Polimor!ismo , Ejemplo

#a definicin del m!todo reside en la clase base

#a implementacin del m!todo reside en la clase


deri,ada

#a in,ocacin es resuelta al momento de ejecucin


(ransporte
A"an#ar
)renar
(ransporte
A"an#ar
)renar
(ransporte
A"an#ar
)renar
(ransporte
A"an#ar
)renar
* *
1 1
Introduccin a la
Introduccin a la
Orientacin a Objetos
Orientacin a Objetos
+ +
2 2
Objetivo
Describir el Paradigma de Orientacin a Objetos
incluyendo los conceptos relacionados al anlisis,
diseo y programacin
, ,
3 3
Temas a Tratar

Paradigmas de Programacin

Clases y Objetos

Modificadores de Acceso

u! es "M#$

Principios de la Orientacin a Objetos

Conceptos del Diseo Orientado a Objetos


- -
4 4
Paradigmas de Programacin

%ay para todos los gustos

&structurados 'C, Pascal, (asic, etc)*

+uncionales 'CAM#*

Declarati,os 'Prolog*

Orientados a Objetos 'C-, .()/&0, 1malltal2, 3a,a*

Orientados a Aspectos

%4bridos '#isp, .isual (asic*

5ncomprensibles))))

Cada enfo6ue tiene sus ,entajas y des,entajas

Cada uno es ms apropiado para ciertas cosas


A lo largo de la historia se han ido desarrollando distintos lenguajes de
programacin basados en distintos paradigmas o formas de estructurar y pensar el
desarrollo de software. A principios de la dcada de 19! comen" a surgir el
llamado paradigma de #$rientacin a $bjetos%& 'ue propon(a una forma
no)edosa de comprender y modelar el mundo 'ue nos rodea. *oy& luego de )arias
dcadas& este paradigma es sin duda uno de los principales y m+s importantes en
la escena del desarrollo de software.
. .
, ,
El mundo color de Objetos

0odo el mundo est compuesto de entidades 6ue se


relacionan e interact7an entre si

u! es un Objeto$

0odo es un Objeto 89$:

&s lo mismo de siempre con otro nombre$

Pensar en Objetos ;)

/o es el 7ltimo grito de la moda '<=>?s*


A diferencia del paradigma estructurado& 'ue propone modelar a la realidad como
una serie de procedimientos secuenciales& la orientacin a objetos propone
representar todo lo 'ue conocemos en trminos de entidades -objetos. 'ue
interact/an y se relacionan entre s(. 0stas entidades pueden representar
absolutamente cual'uier cosa& desde algo f(sico y tangible como una persona& una
factura o un auto& hasta cosas intangibles como la imaginacin& un proceso
'u(mico o un algoritmo matem+tico.
1a mayor(a de los programadores 'ue tienen conocimientos de paradigmas
estructurados tienden a encarar la orientacin a objetos como un agregado m+s a
a'uellos& o slo como una forma ligeramente distinta de hacer lo mismo. 2eg/n
iremos )iendo a lo largo del curso& la realidad nos dicta 'ue para ser buenos
programadores orientados a objetos deberemos entender y modelar la realidad de
una manera distinta.
/ /
3 3
El mundo color de Objetos

Por 6u! Orientacin a Objetos 'OO*$

1e parece ms al mundo real

Permite representar modelos complejos

Muy apropiada para aplicaciones de negocios

#as empresas a@ora s4 aceptan la OO

#as nue,as plataformas de desarrollo la @an adoptado


'3a,a A )/&0*
0n la actualidad& el paradigma de orientacin a objetos es sin lugar a dudas el m+s
utili"ado por las empresas de todo el mundo a la hora de encarar desarrollos de
aplicaciones de software& ya 'ue permite representar de manera relati)amente simple
modelos y realidades muy complejas y esto hace 'ue el software sea m+s f+cil de
programar& comprender y mantener. 4or otra parte& luego de m+s de 2! a5os de
in)estigacin y desarrollo sobre $rientacin a $bjetos pareciera ser 'ue la industria se ha
dado cuenta 'ue el paradigma est+ lo suficientemente maduro como para dar soporte a las
aplicaciones m+s importantes del mundo actual.
0 0
6 6
Temas a Tratar

Paradigmas de Programacin

Clases y Objetos

Modificadores de Acceso

u! es "M#$

Principios de la Orientacin a Objetos

Conceptos del Diseo Orientado a Objetos


1 1

Qu es un Objeto?

5nformalmente, un objeto representa una entidad del


mundo real

&ntidades +4sicas

'&j)B .e@4culo, Casa, Producto*

&ntidades Conceptuales

'&j)B Proceso u4mico, 0ransaccin (ancaria*

&ntidades de 1oftCare

'&j)B #ista &nlaDada, 5nterfaD Erfica*


2 2
9 9
Qu es un Objeto?

Definicin +ormal 'Fumbaug@*B

G"n objeto es un concepto, abstraccin o cosa con un


significado y l4mites claros en el problema en cuestinH

"n objeto posee '(ooc@*B

&stado

Comportamiento

5dentidad
2eg/n las definiciones formales de 7ames 8umbaugh y 9rady :ooch -dos de las
principales autoridades de la orientacin a objetos en la actualidad& y coautores de ;<1&
el lenguaje de modelado uni)ersal para objetos.& un objeto es una abstraccin de la
realidad 'ue tiene un significado concreto y claro para el problema 'ue se est+
modelando. ;n ejemplo de una entidad f(sica representada como un objeto conceptual
puede ser #;n Auto%.
Ahora bien& todos los objetos tienen 3 caracter(sticas principales=
>0stado= representa la definicin de atributos internos del objeto& sus caracter(sticas. 4or
ejemplo& un auto tiene un cierto n/mero de puertas& un cierto n/mero de ruedas& un
)olante& un motor& pedales& etc.
>?omportamiento= representa la definicin del comportamiento del objeto& las acciones
'ue ste puede reali"ar. 4or ejemplo& un auto puede #arrancar%& #frenar%& #doblar%&
#acelerar%& etc.
>@dentidad= ?ada objeto tiene una identidad /nica& incluso si su estado es idntico al de
otro objeto
*3 *3
1! 1!
Un objeto posee Estado

Lo que el objeto sabe

&l estado de un objeto es una de las posibles


condiciones en 6ue el objeto puede eIistir

&l estado normalmente cambia en el transcurso del


tiempo

&l estado de un objeto es implementado por un


conjunto de propiedades 'atributos*, adems de las
coneIiones 6ue puede tener con otros objetos
** **
11 11
Un objeto posee Comportamiento

Lo que el objeto puede hacer

&l comportamiento de un objeto determina cmo !ste


act7a y reacciona frente a las peticiones de otros objetos

&s modelado por un conjunto de mensajes a los 6ue el


objeto puede responder 'operaciones 6ue puede
realiDar*

1e implementa mediante m!todos


*+ *+
12 12
Un objeto posee Identidad

Cada objeto tiene una identidad 7nica, incluso si su


estado es id!ntico al de otro objeto
0l concepto de identidad se refiere al hecho de 'ue cada objeto es /nico en el
mundo& por m+s 'ue su conjunto de atributos y sus )alores sean eAactamente
iguales a los de otros objetos. 4or ejemplo& dos autos del mismo modelo& color&
motor& salidos de la misma l(nea de produccin el mismo d(a no dejan de ser dos
autos diferentes& por m+s 'ue su conjunto de atributos y sus )alores sean iguales.
1a /nica posibilidad de 'ue dos objetos sean iguales es 'ue sean el mismo objeto.
*, *,
13 13
Qu es una Clase?

"na clase es una descripcin de un grupo de objetos conB

Propiedades en com7n 'atributos*

Comportamiento similar 'operaciones*

#a misma forma de relacionarse con otros objetos 'relaciones*

"na semntica en com7n 'significan lo mismo*

"na clase es una abstraccin 6ueB

&nfatiDa las caracter4sticas rele,antes

1uprime otras caracter4sticas 'simplificacin*

"n objeto es una instancia de una clase


1a forma m+s sencilla de entender el concepto de clase es si la )emos como una
agrupacin de objetos con caracter(sticas similares. 4or ejemplo& un auto 02 ;B
tipo particular de )eh(culo motori"ado& con lo cual dentro de su comportamiento
podemos encontrar #arrancar% y #frenar%& entre otros. Ahora bien& una motocicleta
tambin 02 ;B )eh(culo motori"ado& y tiene dentro de su comportamiento
#arrancar% y #frenar%. 0l conjunto de atributos tambin es compartido entre una
motocicleta y un autom)il& aun'ue sus )alores no coincidan necesariamente. 4or
ejemplo& ambos tienen el atributo #cantidad de ruedas%& slo 'ue el auto tiene 4 y
la motocicleta 2.
*- *-
14 14
Objetos y Clases

"na clase es una definicin abstracta de un objeto

Define la estructura y el comportamiento compartidos por los


objetos

1ir,e como modelo para la creacin de objetos

#os objetos pueden ser agrupados en clases


$tra forma /til de )er una clase es como una plantilla& plano o molde de un
conjunto de entidades a partir del cual se crear+n luego instancias particulares
-los objetos.. 1a interaccin de las entidades en el mundo real se produce entre
objetos& no entre clases. 1as clases no tienen #)ida% en el mundo real& los objetos
s(. 4ara poder interactuar con alguna clase deberemos crear una instancia
particular de ella& con un conjunto de )alores definidos para los atributos. A este
proceso se lo conoce como #instanciacin de un objeto%.
*. *.
1, 1,
Ejemplo de una Clase

ClaseB Curso

&stado 'Atributos*

/ombre

"bicacin

D4as Ofrecidos

%orario de 5nicio

%orario de 0!rmino

Comportamiento 'M!todos*

Agregar un Alumno

(orrar un Alumno

&ntregar un #istado del Curso

Determinar si est Completo


*/ */
13 13
Temas a Tratar

Paradigmas de Programacin

Clases y Objetos

Modificadores de Acceso

u! es "M#$

Pilares de la Orientacin a Objetos

Conceptos del Diseo Orientado a Objetos


*0 *0
16 16
odi!icadores de "cceso

Permiten definir el ni,el de acceso ',isibilidad* de los


miembros 'atributos o m!todos* de una clase

PublicoB Cual6uier clase puede G,erH los miembros


p7blicos de otra clase

Pri,adoB 1lo la clase puede ,er sus propios miembros


pri,ados

&Iisten otros dos modificadores para propsitos


espec4ficos 'Pa6uete, Protegido*
Canto para los atributos -estado. como para los mtodos -comportamiento. de una
clase puede configurarse el ni)el de )isibilidad o acceso 'ue estos tendr+n hacia
el mundo eAterior -otras clases 'ue interact/en con ella.. 1os cuatro ni)eles de
acceso m+s comunes 'ue se pueden establecer a ni)el de miembro de una clase
son=
>4/blico= un miembro p/blico puede ser accedido desde cual'uier otra clase
>4ri)ado= un miembro pri)ado solamente puede ser accedido desde la clase en la
'ue est+ declarado
>4rotegido= un miembro protegido solamente puede ser accedido desde la clase
en la 'ue est+ declarado y desde las clases 'ue hereden de ella -se )er+ el
concepto de herencia m+s adelante en este curso.
>4a'uete= un miembro de tipo pa'uete slo podr+ ser accedido desde las clases
'ue estn en el mismo pa'uete lgico 'ue la clase en la 'ue est+ definido. 0n un
entorno <icrosoft .B0C un ejemplo de pa'uete es una biblioteca .dll o un archi)o
ejecutable .eAe.
*1 *1
1 1
Temas a Tratar

Paradigmas de Programacin

Clases y Objetos

Modificadores de Acceso

u! es "M#$

Pilares de la Orientacin a Objetos

Conceptos del Diseo Orientado a Objetos


*2 *2
19 19
Qu es U#?

G"M# es un lenguaje ,isual para especificar, construir y


documentar sistemasH 'OME J Object Management
Eroup*

"nified '"/5+5CADO*B

&l aporte de muc@os m!todos y notaciones

5ndependiente de implementaciones, plataformas y lenguajes

Modeling 'MOD&#ADO*B

#os modelos son utiliDados en todas las ingenier4as

#anguage '#&/E"A3&*B

1i @ay gente, re6uieren comunicarse) 1i se tienen 6ue


comunicar, se tienen 6ue entender) Para entenderse necesitan
un lenguaje com7n

UML no es Metodologa!
;<1 es un lenguaje )isual de modelado y documentacin de sistemas& tan
utili"ado en el mundo de desarrollo orientado a objetos 'ue se ha con)ertido casi
en un est+ndar #de facto%. A partir de est+ filmina& todos los diagramas 'ue
hagamos ser+n diagramas ;<1.
+3 +3
Una Clase en U#

"na clase est compuesta de tres


secciones

#a primera seccin contiene el nombre de la


clase

#a segunda seccin muestra la estructura


'atributos*

#a tercera seccin muestra el


comportamiento 'operaciones*

#a segunda y la tercera seccin pueden


ser suprimidas

Modificadores de Acceso

#os miembros p7blicos se denotan con el


signo GKH

#os miembros pri,ados se denotan con el


signo GLH
+AgregarAlumno()
+BorrarAlumno()
+GenerarListadoCurso()
+EstaCompleto()
-nombre
-ubicacion
-dias
-inicio
-fin
Curso
+* +*
21 21
Temas a Tratar

Paradigmas de Programacin

Clases y Objetos

Modificadores de Acceso

u! es "M#$

Pilares de la Orientacin a Objetos

Conceptos del Diseo Orientado a Objetos


++ ++
22 22
Relaciones Relaciones
Herencia Herencia
Abstraccin Abstraccin
Encapsulamiento Encapsulamiento
+, +,
23 23
"bstraccin

5gnorancia 1electi,a

#a abstraccin nos ayuda a trabajar con cosas complejas

1e enfoca en lo importante

5gnora lo 6ue no es importante 'simplifica*

"na clase es una abstraccin en la 6ueB

1e enfatiDan las caracter4sticas rele,antes

1e suprimen otras caracter4sticas

"na clase debe capturar una y solo una abstraccin


cla,e
0l proceso de abstraccin permite seleccionar las caracter(sticas rele)antes dentro de un
conjunto e identificar comportamientos comunes para definir nue)os tipos de entidades
en el mundo real. 1a abstraccin es cla)e en el proceso de an+lisis y dise5o orientado a
objetos& ya 'ue mediante ella podemos llegar a armar un conjunto de clases 'ue permitan
modelar la realidad o el problema 'ue se 'uiere atacar.
+- +-
24 24
Encapsulamiento

Principio 6ue establece 6ue los atributos propios de un


objeto no deben ser ,isibles desde otros objetos

Deben ser declarados como pri,ados

Permite abstraer al resto del mundo de la complejidad


de la implementacin interna

Permite eIponer el estado del objeto slo a tra,!s del


comportamiento 6ue le @ayamos definido mediante
miembros p7blicos

Por 6u! es 7til$

Punto de ControlA.alidacin

Mejor respuesta ante los Cambios


$tro de los pilares de la orientacin a objetos es el encapsulamiento. 4ara entender este
principio )eamos un ejemplo pr+ctico=
?omo todos ustedes se imaginar+n& no es necesario ser mec+nico de autom)iles para
poder manejar uno. 2i el comprender cmo es el funcionamiento interno del motor& la
direccin& los frenos& los cilindros& etc. fuera re'uisito para poder manejar un autom)il&
ser(an muchos menos los conductores certificados y ser(a mucho m+s dif(cil aprender a
manejar. 0s m+s& si a cual'uier automotri" se le ocurriera cambiar el funcionamiento
interno de alguna de estas cosas& probablemente todos los conductores tendr(an 'ue
)ol)er a aprender como funciona el nue)o componente interno para poder seguir
manejando sin problemas. 4or suerte esto no es as(& ya 'ue la complejidad interna del
funcionamiento de un autom)il est+ escondida de los conductores -usuarios.. 4ara poder
interactuar con el autom)il& ste nos eApone una interfa" sencilla y definida& 'ue no
cambia nunca por m+s 'ue cambien internamente el funcionamiento de sus componentes.
0sta interfa" est+ compuesta por el )olante& los pedales& la palanca de cambios& el
asiento& etc. De esta forma decimos 'ue el autom)il ha encapsulado su complejidad
interna.
+. +.
2, 2,
$elaciones

0odo sistema abarca muc@as clases y objetos

#os objetos contribuyen en el comportamiento de un


sistema colaborando entre si

#a colaboracin se logra a tra,!s de las relaciones

&Iisten dos tipos principales de relaciones

Asociacin

Agregacin
+/ +/
$elaciones de "sociacin

"na asociacin es una coneIin entre dos clases 6ue


representa una comunicacin

"na asociacin puede tener nombre

#a comunicacin puede ser tanto uni como biJdireccional 'por


defecto*

#a multiplicidad es el n7mero de instancias 6ue participan en


una asociacin

&jemploB

"na Persona es Duea de un .e@4culo

"n .e@4culo Pertenece a una Persona


Persona Vehiculo
-dueo
+0 +0
$elaciones de "gregacin

#a agregacin es una forma especial de asociacin


donde un todo se relaciona con sus partes

0ambi!n se conoce como Guna parte deH o una relacin de


contencin

&jemploB

"na Puerta es una parte de un .e@4culo

&l .e@4culo es aDul, la Puerta es ADul

Mo,er el .e@4culo implica mo,er la Puerta


+!o"er()
-color
Vehiculo Puerta
+1 +1
%erencia

&s una relacin entre clases en la


cual una clase comparte la
estructura y comportamiento
definido en otra clase 'Erady
(ooc@*

Cada clase 6ue @ereda de otra


poseeB

#os atributos de la clase base adems


de los propios

1oporta todos o algunos de los


m!todos de la clase base

"na subclase @ereda de una clase


base
+A"an#ar()
+$etenerse()
-pasa%eros
Transporte
Automvil Avin
Clase Base Clase Base
Clases $eri"adas o Clases $eri"adas o
subclases subclases
0l propsito principal de la herencia es el de organi"ar mejor las clases 'ue
componen una determinada realidad& y poder agruparlas en funcin de atributos y
comportamientos comunes a la )e" 'ue cada una se especiali"a seg/n sus
particularidades.
?abe aclarar adem+s 'ue hay dos tipos de herencias=
>*erencia 2imple= una clase deri)ada puede heredar slo de una clase base -los
lenguajes .B0C soportan este tipo de herencia.
>*erencia </ltiple= una clase deri)ada puede heredar de una o m+s clases base
-?EE es un ejemplo de lenguaje 'ue soporta este tipo de herencia..
+2 +2
29 29
%erencia

%erencia G&sJ"nHB @erencia real, donde la subclase es


un tipo espec4fico de la superclase

"n Cuadrado es un Fectngulo

"n perro es un mam4fero

"n autom,il es un ,e@4culo a motor


,3 ,3
3! 3!
Temas a Tratar

Paradigmas de Programacin

Clases y Objetos

Modificadores de Acceso

u! es "M#$

Principios de la Orientacin a Objetos

Conceptos del Diseo Orientado a Objetos


,* ,*
31 31
Inter!aces &'()*

Fecurso de diseo soportado por los lenguajes


orientados a objetos 6ue permite definir
comportamiento

Permite 6ue clases 6ue no estn estrec@amente


relacionadas entre s4 deban tener el mismo
comportamiento

#a implementacin de una interfaD es un contrato 6ue


obliga a la clase a implementar todos los m!todos
definidos en la interfaD
,+ ,+
Inter!aces &+()*
De 6ue clase @eredar4a la clase %idroa,in $
Vehiculo
Avin Barco
Aereo Terrestre Acuatico
Automvil
2uponiendo 'ue estamos en un entorno donde slo se soporta la herencia simple& ante la
jerar'u(a de clases planteadas= F De 'ue clase heredar(a la clase *idroa)in G
0n teor(a deber(a heredar tanto de Heh(culo>Areo -ya 'ue tiene atributos y
comportamientos propios de un a)in& como #cantidad de alas% y #despegar%. como de
Heh(culo>Acu+tico -ya 'ue tambin tiene atributos y comportamientos propios de un
barco& como por ejemplo #capacidad de flotacin% y #na)egar%.. Ahora bien& como la
herencia m/ltiple no se encuentra soportada seg/n los par+metros del problema debemos
buscar otra solucin. A'u( es donde el concepto de interfaces se )uel)e de gran utilidad.
,, ,,
33 33
Inter!aces &)()*
Hidroavion
+Navegar()
&interface'
Acuatico
+Volar()
&interface'
Aereo

1e crean las interfaces 6ue definen comportamiento

%idroa,in deber definir los comportamientos de


cada una de las interfaces 6ue implemente
;na interfa" define un contrato de comportamientos 'ue una clase debe cumplir
al implementarla. 1os comportamientos declarados en la interfa" no tienen
cuerpo ni funcionalidad& son slo #firmas% 'ue las clases 'ue implementen la
interfa" deber+n completar. De esta forma& si bien no podemos lograr 'ue la clase
deri)ada herede todos los atributos y comportamientos de su clase base& podemos
al menos #obligar% a 'ue implemente el conjunto de funcionalidades definidas en
la interfa".
;na clase puede implementar tantas interfaces como desee& y una interfa" puede
ser implementada por tantas clases como se desee.
,- ,-
34 34
Polimor!ismo

&s la propiedad 6ue tienen los objetos de permitir


in,ocar gen!ricamente un comportamiento 'm!todo*
cuya implementacin ser delegada al objeto
correspondiente reci!n en tiempo de ejecucin

&l polimorfismo tiende a eIistir en las relaciones de


@erencia, pero no siempre es as4
,. ,.
3, 3,
Polimor!ismo , Ejemplo

#a definicin del m!todo reside en la clase base

#a implementacin del m!todo reside en la clase


deri,ada

#a in,ocacin es resuelta al momento de ejecucin


(ransporte
A"an#ar
)renar
(ransporte
A"an#ar
)renar
(ransporte
A"an#ar
)renar
(ransporte
A"an#ar
)renar
A'u( tenemos un ejemplo pr+ctico de la implementacin de polimorfismo en un dise5o orientado a objetos.
4or un lado tenemos la clase base #Cransporte%& 'ue posee los mtodos #A)an"ar% y #Irenar%. 4or otro
lado tenemos tres clases distintas deri)adas de la clase #Cransporte%& cada una de las cuales podr+
sobrescribir la implementacin de los mtodos A)an"ar y Irenar para 'ue su comportamiento sea m+s
espec(fico.
Ahora bien& como todas heredan de la misma clase base& las clases deri)adas pueden ser tratadas
genricamente. 0sto 'uiere decir 'ue podr(amos tener un array 'ue almacene objetos de tipo
Cransporte& y recorrerlo luego para llamar al mtodo #A)an"ar% de cada uno. De esta forma& en tiempo
de codificacin es imposible saber a 'u mtodo #A)an"ar% se est+ llamando en realidad -al del AutoG
Al del caballoG Al del transbordadorG.& sino 'ue esta decisin es tomada en tiempo de ejecucin en
base al tipo particular de objeto 'ue est instanciado.
0n pseudocdigo& esto se escribir(a de la siguiente manera=
Definir arrayCransportes -3. de tipo Cransporte
arrayCransportes-1. J nue)o Autom)il-. KK;n autom)il 02 ;B C@4$ D0 transporte
arrayCransportes-2. J nue)o Cransbordador-. KK;n Cransbordador 02 ;B C@4$ D0 transporte
arrayCransportes-3. J nue)o ?aballo-. KK;n ?aballo 02 ;B C@4$ D0 transporte
4or ?ada -Cransporte t en arrayCransportes.
t.A)an"ar-.
t.Irenar-.
Iin

Anda mungkin juga menyukai