Você está na página 1de 57

Unidad 2: Programacin Orientada a Objetos

David Rodrguez drodriguez@tecsup edu pe Copyright 2011 por TECSUP

Introduccin
En la presente unidad, se detalla los fundamentos de la programacin orientada a objetos usando el lenguaje de programacin Java, revisando todas las t cnicas asociadas a este paradigma de programacin!

Objetivos
"omprender los conceptos b#sicos de la Programacin Orientada a Objetos $POO%! Utili&ar las caracter'sticas avan&adas de la programacin orientacin a objetos de Java!

(ndice
Programacin Orientada a Objetos $POO% ) cnicas involucradas en la POO Otros conceptos relacionados a la POO *n#lisis Orientado a Objetos $*OO%

Programacin Estructurada
Estilo disciplinado de programacin! ) cnica +ue lleve a programas altamente modificables! ,encille&, claridad - elegancia!

Programacin Estructurada
.a Programacin Estructurada se emplea desde el principio de los /01 es uno de los m todos m#s utili&ados en el campo de la programacin! Un programa estructurado se constru-e partiendo el programa en pie&as mas pe+ue2as - manejables conocidas como subrutinas, subprogramas, funciones o procedimientos!

Programacin Estructurada

POO
"ambiar la forma de pensar! )odo gira entorno a objetos! .os objetos son entidades +ue tienen:
3 "*4*")E4(,)I"*,, 3 "O5PO4)*5IE6)O,!

"onsiste en modelar los Objetos del mundo real como Objetos de soft7are! En POO, un programa se compone slo de objetos!

POO
Terminologa bsica Clase: Plantilla para crear objetos. Objeto: Instancia creada a partir de la Clase. Analoga: Plano Casa Clase Objeto Mensaje: Cuando los objetos se comunican entre s.

POO
Terminologa bsica Caractersticas: *lmacena las caracter'sticas o el estado del objeto! En la POO, las caracter'sticas son almacenadas en Variables! Comportamientos: Es lo +ue 8ace el objeto! 9ebe modificar alguna caracter'stica! En la POO, los comportamientos se almacenan en Mtodos!

POO
:;u es un objeto< "onstitu-e el concepto principal en la tecnolog'a orientada a objetos! *lrededor tenemos objetos del mundo real! Por ejemplo: computadora, pro-ector, aire acondicionado, alumnos, entre otros! .os objetos del mundo real tienen dos elementos: "*4*")E4(,)I"*, "O5PO4)*5IE6)O,!

POO
:;u es un objeto<
Por ejemplo, un perro:
3 "aracter'sticas: nombre, color, ra&a, 8ambre 3 "omportamientos: ladrar, dormir, morder cosas

Otro ejemplo, una bicicleta:


3 "aracter'sticas: marca, modelo, nro! aro, velocidad actual 3 "omportamientos: frenar, acelerar, pedalear, cambiar llantas

POO
:;u es un objeto<
.os objetos de soft7are son modelados a partir de objetos del mundo real, por lo tanto tambi n tienen caracter'sticas - comportamientos! Un objeto de soft7are mantiene sus caracter'sticas en variables - sus comportamientos en m todos! Resumen: Un objeto de soft7are es un conjunto de atributos - m todos!

POO
:;u es un objeto< .os objetos del mundo real pueden ser modelados en objetos de soft7are! Por ejemplo, si estamos desarrollando un soft7are para una veterinaria, podemos crear un objeto de soft7are Perro! Podemos usar objetos de soft7are para modelar conceptos abstractos! Por ejemplo, un objeto =elino o 5am'fero!

POO
Objeto de ,oft7are

POO
Una >icicleta como Objeto de ,oft7are

POO
4esumen sobre los Objetos de ,oft7are
Objeto e instancia se refieren a lo mismo! * partir de a8ora, a los objetos de soft7are se les llamar# simplemente objetos! * las variables de los objetos se les conoce como variables de instancia o variables miembro! * los m todos de los objetos se les conoce como m todos de la instancia o m todos miembro!

POO
5ensajes entre Objetos Un objeto solo no tiene muc8a utilidad! Un programa escrito en base a la POO se puede entender como: ?"onjunto de objetos enviando mensajes - respondiendo a otros mensajes@!

POO
5ensajes entre Objetos Para mandar un mensaje, se necesita lo siguiente:
3 El objeto a +uien vamos a enviar el mensaje! 3 El nombre del m todo +ue vamos a ejecutar! 3 .os par#metros +ue re+uiera ese m todo!

POO
5ensajes entre Objetos

POO
Objetivos de la POO
=omentar la reutili&acin - eAtensin del cdigo! Implementar sencilla! sistemas complejos de manera

4educcin de la brec8a entre el mundo de los problemas - el mundo de los modelos! Programacin por eventos! Programacin en ambientes de interfa& gr#fica!

POO
Bentajas de la POO
=acilidad de mantenimiento! 4apide& de desarrollo! 5#s f#cil de entender por+ue se utili&an abstracciones m#s cercanas a la realidad! 4eusabilidad! EAtensibilidad! Portabilidad!

POO
4esumen de Objetos
.a programacin orientada a objetos fue concebida por +uienes conceb'an el mundo como poblado de objetos +ue interactCan entre si! El atractivo de la orientacin a objetos es +ue proporciona conceptos - 8erramientas con las cuales se modela - representa el mundo real tan fielmente como sea posible!

POO
"lases
.as "lases son las plantillas de los objetos! * partir de las "lases se crean los objetos $conocidos tambi n como instancias%! 9esde otra perspectiva: .as "lases agrupan a un conjunto de objetos del mismo tipo! 9efinicin: Una "lase es una plantilla +ue define variables - m todos comunes para todos los objetos de cierto tipo!

POO
"lases 4etomando el ejemplo del objeto >icicleta, podemos decir +ue eAiste una "lase >icicleta -, a partir de ella, se pueden crear varios objetos >icicleta con diferentes caracter'sticas!

POO
"lases
I*4 " 6 )* , 6 I

I6,)

*6" I*

POO
"lases B, Objetos .as "lases permiten crear los Objetos! .os Objetos son los eAisten en un programa, ocupan una posicin en memoria - son lo +ue 8abitan en un soft7are orientado a objetos! .as "lases no pueden ser usadas si es +ue no son instanciadas $instanciar significa crear los Objetos%!

POO
4esumen
?.a Programacion Orientada a Objetos es un metodo de implementacion en el +ue los programas se organi&an como colecciones cooperativas de objetos, cada uno de los cuales representa una instancia de alguna clase, cu-as clases son todas miembros de una jerar+uia de clases unidas mediante relaciones@ Drad- >ooc8

Tcnicas involucradas en la POO


E! 2! F! G! I! *bstraccin Encapsulamiento Principio de informacin oculta Herencia Polimorfismo

1.

bstracci!n

Es la representacin de las caractersticas esenciales de un objeto, as' como de su comportamiento! 9efinir una abstraccin significa describir una entidad del mundo real, no importando lo compleja +ue pueda ser, representando sus caracter'sticas - comportamiento!

". #ncapsulamiento
5ecanismo +ue permite unir, en una Cnica abstraccin, todas las propiedades $caracter'sticas% - funcionalidades $comportamiento% de una entidad! >ooc8: ?J es el proceso de almacenar en un mismo compartimiento los elementos de una abstraccin +ue constitu-en su estructura - su comportamiento@!

". #ncapsulamiento
Bentaja:
3 =acilita el aumento de la complejidad, por el uso de cajas negras de las cuales se conoce el comportamiento pero no los detalles internos!

9esventaja:
3 ,obrecarga por las llamadas a los m todos, aCn para acceder a atributos!

$. Principio de %n&ormaci!n Oculta


"onsiste en la capacidad de proveer la posibilidad de ocultar los detalles de la representacin interna de un objeto - eAponer solo a+uellos detalles necesarios para el resto del sistema! .os otros objetos depender#n de un comportamiento espec'fico - no de la implementacin interna de un objeto!

$. Principio de %n&ormaci!n Oculta

'. (erencia
Es una relacin entre Clases en donde una Clase (conocida como Hija comparte las caractersticas ! comportamiento de otra Clase (conocida como Padre .

'. (erencia

'. (erencia
>eneficios de la 8erencia 4eusabilidad del ,oft7are!
3 5a-or productividad en el desarrollo! 3 5a-or confiabilidad del cdigo!

"omparticin de "digo! "onsistencia de implementacin! Polimorfismo! Ocultamiento de informacin!

'. (erencia
"ostos de la 8erencia 5a-or tama2o del programa! )iempo de procesamiento adicional al paso de mensajes! "omplejidad de los programas!

). Polimor&ismo
Es la propiedad de los Objetos de comportarse de forma espec'fica ante un mensaje! .os Objetos polimrficos permiten el procesamiento de objetos cu-o tipo no se conoce en tiempo de compilacin!

). Polimor&ismo
Un sistema t'pico construido con ?Objetos@ puede llegar a estar constituido por una gran cantidad de ellos! ,i cada uno posee un lenguaje distinto para comunicarse, deber'amos administrar un diccionario demasiado eAtenso! Ha- +ue reducir el lenguaje! Objetos parecidos tienen +ue responder a los mismos mensajes! Es la cualidad +ue poseen los objetos de ?distintas especies@ de ?implementar@ un mismo ?mensaje@, cada uno a su conveniencia!

Otros conceptos relacionados a la POO


E! 2! F! G! "onstructor de la "lase "lases *bstractas Interfases Pa+uetes

1. Constructor de la Clase
Es un m todo de la "lase +ue efectCa tareas de iniciali&acin! *l instanciar un objeto, se invoca impl'citamente su constructor! En el constructor se debe iniciar el estado de la "lase $es decir, sus variables%! )odas las "lases tienen constructor!

". Clases bstractas


Una "lase *bstracta no puede crear Objetos! ,e encuentra en un alto nivel de abstraccin en la jerar+u'a de las clases! Daranti&an jerar+u'as de 8erencia adecuadas!

$. %nter&ases
Una interfase define m todos sin implementar! ,irve para definir ciertos comportamientos +ue se desea +ue implementen las clases! Permite modelar la 8erencia mCltiple!

'. Pa*uetes
.os pa+uetes son agrupaciones de "lases, Interfases - pa+uetes! ,e puede agrupar las "lases e Interfases por:
3 =uncionalidad similar: ventas, reportes, administracin, etc! 3 )ipo de "lase: servlets, beans, applets, etc!

ABSTRACT

!"#A$

"lases *bstractas
Usualmente utili&adas para crear m todos sin tener +ue implementarlos por completo!
,imilar a interfases!

Usando el modificador abstract se puede crear un m todo sin implementacin! .as clases abstractas ?obligan@ a sus subclases a implementar los m todos no implementados en la clase abstracta!

"lases *bstractas
public abstract class =igura K private int A,-L public =igura$int nA,int n-%K AMnAL -Mn-L N public int getO$%K return AL N public int getP$%K return -L N public abstract double get rea+,QR cada figura deber'a tener un m todo get*rea$% para obtener el area de la figura RQ N

"lases *bstractas
"ual+uier clase con un m todo abstracto es, esencialmente, una abstraccin!
6o se pueden crear objetos de una clase abstract! ,i se pueden crear objetos de clases derivadas, siempre +ue la clase derivada 8a-a implementado los m todos +ue falten!

"lases *bstractas
public class 4ectangulo eAtends =igura K private int 7,8L public 4ectangulo$int A, int -, int 7, int 8% K super$A,-%L t8is!7M7L t8is!8M8L N QQimplementando el m todo abstracto public double get rea+, . return /012 N

"lases *bstractas
Una ?referencia abstracta@ puede ser usada para referenciar cual+uier clase derivada de una clase abstracta! Ejemplo:
=iguraST figuras M K ne7 4ectangulo$1,1,F,G%, ne7 )riangulo$1,1,I,0% N double aUrect M figurasS1T!get*rea$%L double aUtri M figurasSET!get*rea$%L

"lases =inales
Evita +ue se sobreescriba un m todo en alguna subclase o clase eAtendida o derivada! Ejemplo:
class Persona K public final ,tring obtener9atos$% K !!! N N class Bisor eAtends Persona K public ,tring obtener9atos$% K !!! N 33 ilegal N

"lases =inales
Evita +ue eAistan clases eAtiendas o subclases! Proteje el acceso a todos los miembros de la clase
public final class ,inUacceso K !!! N class 4ebelde eAtends ,inUacceso K N 33 ilegal

4ecolector de basura
.a ma-or'a de los lenguaje permiten almacenar datos durante la ejecucin del programa! En Java, los objetos +ue se instancian son almacenados la memoria! .a memoria del sistema est# organi&ada en F segmentos:
)eAt segment $code segment% ,tacV segment Heap segment

4ecolector de basura
.as variables +ue se crean dentro de los m todos son alojadas en el ,tacV ,egment, por ello, ni bien el m todo termina de ejecutarse $return%, todas las variables se desasignan! En cambio, los objetos son alojados en el Heap ,egment! *lgunos lenguajes de programacin re+uieren +ue el programador elimine los objetos del Heap ,egment cuando -a no lo usen! En Java, el recolector de basura se encarga de limpiar los objetos +ue -a no son usadosL t cnicamente, a+uellos +ue no tienen referencia de otros objetos!

4ecolector de basura
6o 8a- forma de for&ar al 4ecolector de basura para +ue se ejecute! .os m todos ,-stem!gc$% - 4untime!gc$% no fuer&an al 4ecolector de basura a +ue se ejecutan! Estos m todos slo sugieren al JB5 a +ue recoja los objetos no usados! Una buena pr#ctica es establecer los Objetos +ue -a no vamos a usar como null: public Object pop$% K Object returnBalue M storageSindeATL storageSindeAWWT M nullL return returnBalueL N

"onclusiones
En la presente unidad, se detall la creacin de matrices - la forma como acceder a sus elementos! *dem#s, se revis la programacin orientada a objetos - las t cnicas asociadas a ella! =inalmente, se revis el funcionamiento del recolector de basura de Java!

Você também pode gostar