Vous êtes sur la page 1sur 17

Programacin Orientada a Objetos Lenguaje ni!

icado de "odelado # "L$

%lase &
Espacio de Actualizacin Tcnica Programacin Java

Programacin Orientada a Objetos


Temas' Mensajes entre objetos Clases e instancias Encapsulamiento Ocultamiento de informacin Herencia

Espacio de Actualizacin Tcnica Programacin Java

Programacin Orientada a Objetos


Los objetos tienen estado y comportamiento, pero Cmo se comunican entre ellos?
(cu)les son los mensajes *ue "ar+a utiliza para comunicarse con el ascensor,
1 - Llamar ! "brir la puerta # ! Cerrar la puerta $ ! %ubir &pisos' ( ! "brir puerta

emisor

) ! Cerrar puerta

receptor

Espacio de Actualizacin Tcnica Programacin Java

Programacin Orientada a Objetos


E*isten distinciones importantes+ . En un mensaje, siempre ,ay desi-nado un receptor para a.uel mensaje/ es al-0n objeto, al cual se le en12a un mensaje3 Cuando se llama procedimiento, 4O ,ay receptor3 La interpretacin del mensaje &el m5todo usado para responder al mensaje' es & determinado por el receptor y podr2a 1ariar para diferentes receptores3

-eceptor -eceptor
Espacio de Actualizacin Tcnica Programacin Java

emisor

Programacin Orientada a Objetos


Mar2a al i-ual .ue otras personas .ue deciden tomar un ascensor, tienen caracter2sticas comunes+ saben pedir un ascensor, presionar a .ue piso desean ir, descender, etc33, esto es por.ue pertenecen a una %ategor+a o %lase .ue podriamos llamar /pasajero/3

Una clase es un molde a partir de la cual se crean instancias con las mismas caractersticas y comportamiento.

Mar2a y otras personas .ue ,acen uso del ascensor son instancias de la clase pasajero

Espacio de Actualizacin Tcnica Programacin Java

Programacin Orientada a Objetos


Encapsulamiento

Es un mecanismo .ue consiste en construir una 6c7psula8 .ue funciona como una barrera, alrededor de la informacin y de las operaciones de los objetos3 Establece la si-uiente re-la+ 6todas estas cosas deben permanecer juntas83 9na clase :";" permite unir las propiedades &1ariables' y el comportamiento &m5todos' de un objeto, en una entidad de soft<are3 Las clases JA1A permiten encapsular2 Los len-uajes estructurados no pro1een mecanismos para encapsular3

ENCAPSULAMIENTO: DATOS + MTODOS


estado sueldo %i cambia la forma de li.uidar sueldos, se deber2a modificar el m5todo get0ueldo#$, pero los usuarios no son afectados por el cambio3

get0ueldo#$

set0ueldo#double s$

comportamiento

Espacio de Actualizacin Tcnica Programacin Java

Programacin Orientada a Objetos


Ocultamiento de informacin

Es la capacidad de ocultar los detalles internos del comportamiento de un objeto y e*poner slo los .ue son necesarios para el resto del sistema3 =el objeto, se conoce solo la interface p0blica, compuesta por los m5todos y datos .ue podr7n ser re.ueridos por otros objetos del sistema, el resto forma parte de la representacin pri1ada de los objetos3 En :a1a, el ocultamiento se lo-ra usando los modificadores de acceso en las declaraciones de las 1ariables y m5todos definidos en las clases3 La palabra cla1e private, .ue se utili>a delante de las propiedades y m5todos, permite implementar ocultamiento3

Espacio de Actualizacin Tcnica Programacin Java

Programacin Orientada a Objetos


"dem7s de contar con cierta informacin sobre Mar2a por ser un pasajero, sabemos .ue Mar2a tambi5n es una persona, .ue es un mam2fero y tambi5n, es un animal3 Or-ani>amos el conocimiento como una jerar.u2a de clases .ue puede continuar y or-ani>arse de diferentes maneras3 ?odo este conocimiento .ue tenemos sobre Mar2a, tambi5n puede aplicarse a otros pasajeros3 En @OO, al principio .ue permite aplicar el conocimiento de una cate-or2a m7s -eneral a una m7s espec2fica se denomina 3erencia3 La 3erencia es el mecanismo de los len-uajes OO .ue implementa la relacin 6es un8 entre clases3
Las clases pueden ser or-ani>adas en jerar.u2as de ,erencia donde, las clases ,ijas o subclases, ,eredar7n estado y comportamiento de las clases .ue se encuentran m7s arriba en la jerar.u2a, llamadas superclases3 Las subclases pueden a-re-ar nue1as 1ariables y m5todos y pueden cambiar el comportamiento de los m5todos ,eredados3
Espacio de Actualizacin Tcnica Programacin Java

Programacin Orientada a Objetos


A A A A Todo es un objeto' un pro-rama orientado a objetos, esta or-ani>ado como una comunidad de objetos interactuando3 La computacin se lle1a a cabo por objetos *ue interact4an entre si envi)ndose mensajes 3 Todos los objetos son instancias de una clase 3 El m5todo in1ocado por un objeto en respuesta a un mensaje es determinado por la clase del objeto receptor3 na clase es un molde con una estructura 5 comportamiento asociado , .ue tendr7n todos los objetos .ue con ella se creen3 ?odos los objetos .ue con ella se creen, tendr7n los mismos datos &con diferentes 1alores o no' y podr7n ejecutar los mismos m5todos3 A El encapsulamiento 5 el ocultamiento de in!ormacin se complementan, para aislar las diferentes partes de un sistema, permitiendo .ue el cdi-o sea modificado y e*tendido sin producir efectos colaterales3 A Las clases son or-ani>adas en una estructura de 7rbol, llamada jerar*u+a de 3erencia3 Los datos y el comportamiento asociados con una clase est7n autom7ticamente disponibles para las subclases 3
Espacio de Actualizacin Tcnica Programacin Java

Programacin Orientada a Objetos Bu5 es el diseCo orientado a objetos?


A 9n diseCo Orientado a Objetos e*presa, sin necesidad de escribir cdi-o, como colaboran los objetos para reali>ar sus acti1idades3 A Han e*istido di1ersos m5todos y t5cnicas orientadas a objetos, con muc,os aspectos en com0n pero utili>ando distintas notaciones3 A Como resultado de 1arias de ellas, sur-i el Len-uaje 9nificado de Modelado &del 9nified Modelin- Lan-ua-e ! 9ML' como est7ndar para el modelado de sistemas de soft<are3 En 1DD$, Eooc,, Fumbau-, &OM?' y :acobson &Objectory' deciden unificar sus m5todos y nace el 9ML3

Es un lenguaje de propsito general para el modelado orientado a objetos


Espacio de Actualizacin Tcnica Programacin Java

Lenguaje ni!icado de "odelado # "L$

9ML ! Len-uaje de Modelado 9nificado


A @osee distintos tipos de dia-ramas, pero en este curso 1eremos slo el 6iagrama de %lases3 A En el dia-rama de clases, un clase se describe en funcin de sus atributos y mensajes3 La notacin para una clase es la siguiente'
NombreDeLaClase -atributos +mensajes()

Estado %omportamiento

Espacio de Actualizacin Tcnica Programacin Java

Lenguaje ni!icado de "odelado # "L$

9ML ! =ia-rama de Clases


Atributos A =eterminan la estructura .ue permite al objeto conser1ar un estado3 La notacin para los atributos es la siguiente'
9ML define prefijos para definir niveles de visibilidad' G para atributos p0blicos H para atributos prote-idos - para atributos pri1ados I para atributos pacJa-e
0e recomienda no usar atributos p4blicos7 por*ue violan el encapsulamiento

NombreDeLaClase -visibilidadAtributo: tipo +mensajes()

nombre del atributo

Espacio de Actualizacin Tcnica Programacin Java

Lenguaje ni!icado de "odelado # "L$

9ML ! =ia-rama de Clases


"ensajes A Es el comportamiento .ue le permite a un objeto de esta clase comunicarse con otros objetos3 La notacin para los mensajes es la siguiente'
Clase -atributos +visibilidadOperacion() +visibilidadOperacion(argumentos): resultado
Espacio de Actualizacin Tcnica Programacin Java

Los niveles de visibilidad son los mismos .ue para los atributos3

Lenguaje ni!icado de "odelado # "L$

9ML ! =ia-rama de Clases


-elaciones A ;eremos en este curso las t5cnicas m7s com0nmente usadas .ue son composicin y ,erencia3
crear objetos de una clase e*istente dentro de una nue1a clase3
Vehiculo -atributos +mensajes() Motor -atributos +mensajes()
Automovil -atributos +mensajes() Moto -atributos +mensajes()

crear una clase nue1a como de un tipo de una clase e*istente3

Vehiculo -atributos +mensajes()

Espacio de Actualizacin Tcnica Programacin Java

Lenguaje ni!icado de "odelado # "L$


"L 6iagrama de %lases
Continuando con el ejemplo del autom1il, cmo ser2a un dia-rama 9ML para ;e,2culo y sus subclases?
composicin
Vehiculo -nroPatente: String -propietario: String +setMotor(Motor m): void +getMotor(): Motor +setNroPatente(String nroPatente): void ! -marca: String -numero: String Motor

+Motor() motor +setMarca(String marca): void +getMarca(): String +setNumero(String numero): void +getNumero(): String

3erencia
Automovil -cantPuertas: int +Automovil() +setCantPuertas(int cantPuertas): void +getCantPuertas(): int Moto -tipo: String +Moto() +set ipo(String tipo): void +get ipo(): String

Espacio de Actualizacin Tcnica Programacin Java

Es*uema de un objeto
Otra !orma de representar objetos de so!t8are es usando el siguiente diagrama
unaPersona
getEdad setEdad get:ombre :ombre Apellido Edad 6omicilio 6ocumento inter!ace p4blica

unAscensor
getPisoActual

inter!ace p4blica

unAscensor.subir()

0ubir

setPisoActual Piso actual Estado puerta %apacidad Piso ")<imo Piso "+nimo

getApellido

;ajar

33

comer

abrirPuerta

6etalles Privados de 9mplementacin

Espacio de Actualizacin Tcnica Programacin Java

33 3

6etalles Privados de 9mplementacin

-e!erencias
Pensando en Java =a edicin Espa>ol7 ;ruce Ec?el

Tutorial de "L' ,ttp+KK<<<3dcc3uc,ile3clKIpsalinasKumlKintroduccion3,tml 0itio o!icial del est)ndar "L' ,ttp+KK<<<3uml3or-K

Espacio de Actualizacin Tcnica Programacin Java

Vous aimerez peut-être aussi