54
Los objetos 2 - 1 UNIDAD 2 Los objetos Objetivos Identificar objetos y establecer sus características. Agrupar objetos similares en Clases. Identificar relaciones de composición de objetos. Establecer relaciones de Jerarquía de Clases. Identificar mensajes entre objetos. Definir y caracterizar la Programación Orientada a Objetos. Establecer las diferencias con la programación por procesos. Definir términos básicos del enfoque de Objetos Introducción En esta unidad se introduce al lector en el enfoque de objetos, el cual se constituye en la actualidad en un paradigma para el desarrollo de programas y sistemas en general. A fin de inducir en el lector los conceptos básicos del enfoque de objetos, se establece como escenario su lugar de habitación, su cuarto, y se le invita a identificar los objetos que le son familiares en su mundo cotidiano. Actualización del Capitulo 4, del texto “Programación moderna de computadores: Algoritmos, objetos y Java “ de J.Tafur, H. Angulo, S. Gómez.

programacion orientada a objetos

Embed Size (px)

DESCRIPTION

conceptos basicos programacion orientada a objetos

Citation preview

  • Los objetos 2 - 1

    UNIDAD 2

    Los objetos

    Objetivos Identificar objetos y establecer sus caractersticas. Agrupar objetos similares en Clases. Identificar relaciones de composicin de objetos. Establecer relaciones de Jerarqua de Clases. Identificar mensajes entre objetos. Definir y caracterizar la Programacin Orientada a Objetos. Establecer las diferencias con la programacin por procesos. Definir trminos bsicos del enfoque de Objetos

    IntroduccinEn esta unidad se introduce al lector en el enfoque de objetos, el cual seconstituye en la actualidad en un paradigma para el desarrollo de programas ysistemas en general. A fin de inducir en el lector los conceptos bsicos delenfoque de objetos, se establece como escenario su lugar de habitacin, sucuarto, y se le invita a identificar los objetos que le son familiares en su mundocotidiano.

    Actualizacin del Capitulo 4, del texto Programacin moderna de computadores: Algoritmos, objetos y Java de J.Tafur, H. Angulo,S. Gmez.

  • Los objetos: Introduccin 2 - 2

    Se presentan, con los objetos de ese escenario, los elementos para lacaracterizacin de los objetos que le son familiares, as como su pertenencia agrupos de caractersticas afines, que se denominan clases. Se establece a partirde dicha pertenencia la jerarqua de las diferentes clases presentadas, para acontinuacin ilustrar los conceptos de herencia, adems se estudian lasrelaciones y la comunicacin entre objetos para ilustrar el concepto de mensaje.

    Se ilustra tambin el concepto de composicin, mediante la observacin de losdiferentes componentes (que son tambin objetos) de algunos de los objetostratados, como la lmpara o el equipo de sonido.

    Una vez el lector se ha familiarizado con el mundo de los objetos en suescenario familiar, se presentan formalmente, los conceptos y definiciones msimportantes del enfoque de objetos, los cuales servirn de base para el trabajodel desarrollo de programas en Java de las siguientes unidades.

    Un problema Nuestro alrededor esta formado por objetos de diversa ndole, unos sonnaturales animados como los seres vivos, animales y plantas, y otrosinanimados como los del mundo mineral. Los hay tambin artificiales como losconstruidos por el ser humano o por mquinas concebidas y elaboradas por l.Vivimos dentro de una casa, en un barrio de una comuna de una ciudad, dentrode una regin, que a su vez forma parte de una nacin. Conglomerados denaciones se ubican y agrupan en continentes, y toda esta agregacin de objetos,conforma nuestro planeta Tierra. Por donde miremos vemos objetos. Nuestrosistema planetario, las galaxias y el universo en su conjunto, son tambinobjetos. En el mundo de lo microscpico encontramos otra dimensin de ladiversidad de objetos, por ejemplo, aquellos minsculos seres que viven en ungrano de arena y pelean entre s, a fin de tomar el dominio de una de sus aristas.

    El concepto de sistemas, que no es sino otra manera de ver los objetosinteractuando unos con otros en el mundo de una manera ms general, nos dauna idea de lo diverso y casi difcil que es enumerar los objetos en una simplelista. Estos, interactuando a fin de lograr un objetivo comn, nos dn tambinla idea de la diversidad de sistemas y objetos existentes en el mundo que nosrodea Estamos sumergidos en un mundo de sistemas, en un mundo de objetos.Nosotros mismos, desde el punto de vista del enfoque de objetos, somostambin un objeto. Este texto que se sigue es un objeto. Veamos a continuacin,una primer aproximacin al enfoque de objetos en la solucin de problemas.

    Federico requiere de un bloque de madera de dimensiones dadas, a partir deun rbol, cuyo tronco cubre las dimensiones indicadas.

  • Los objetos: Un problema 2 - 3

    Hablando con Santiago, un experto aserrador, acerca del contrato para disponerdel bloque de madera, va tomando nota de las herramientas y objetos engeneral que utilizaran en el desarrollo del trabajo.

    Por ejemplo, algunos de las herramientas y objetos en general, incluido elaserrador, se ilustran en la siguiente figura.

    Con lo cual se puede afirmar que, la solucin al problema de obtener un bloquede madera a partir de un rbol, se puede obtener mediante el uso de losdiferentes objetos o herramientas. Con las funciones, mtodos u operaciones

  • Los objetos: Un problema 2 - 4

    inherentes a cada uno de los objetos se pueden llevara cabo diferentes laborescomo por ejemplo, cortar las ramas con la motosierra, medir dimesiones con elmetro, cepillar una superficie con el cepillo, etc.

    Un escenarioLa situacin que se presenta a continuacin utilizada para identificar, describir ycaracterizar los objetos en la vida diaria, en el mundo real, corresponde alescenario brindado por su habitacin. Se plantea un cuarto que correspondeeventualmente, al lugar de habitacin de cualquiera de los lectores de este libro.Una situacin hipottica, que el lector debe interpretar de acuerdo a su situacinparticular, a fin de poder iniciar nuestro estudio de los objetos.

    Usted dispone de una confortable cama doble, dos mesitas de noche una a cadalado de la cama, un tapete persa al lado derecho de su cama, un mueble demadera para televisor sobre el cual tiene un televisor de 19 en donde observasus programas favoritos. En la mesita de noche que se encuentra en el ladoderecho de su cama, usted tiene una grabadora con CD, doble casetera, junto aesta un CD de Los Aterciopelados, uno de Los Fabulosos Cadillacs, un casetede Billy Joel, uno de Phil Collins y otros cassetes que ahora no recuerda de quartistas son. En la mesita de noche del lado izquierdo de su cama, usted tieneuna lmpara, el control remoto de su televisor y un reloj despertador. En lapared del lado izquierdo de su cama, est su armario que ocupa toda la pared,donde aparte de guardar su ropa (un blue jean, un pantaln negro, un pantalncaf, una camisa blanca, una camisa negra, correa negra, correa caf, entreotras), tambin guarda sus zapatos (unos mocasines negros, unos mocasinescaf, unos tenis, entre otros), adems sus implementos de aseo personal(desodorante, cepillo, entre otros), tambin guarda la maleta del colegio que novolvi a usar, pero que conserva porque es un bello recuerdo, la camiseta de laseleccin deportiva en la que particip cuando tena 10 aos en el colegio, laspantuflas que le regal su abuelita en su primera comunin, que el perro de sucasa volvi aicos y que ya no se sabe de qu color son y otras cuantas cosasms que no utiliza.

    Puede ser que en la vida real su habitacin difiera un poco de la descripcinanterior, para lo cual se le ruega nuevamente imaginar que sta es su habitacin.La figura No. 1 ilustra lo que pudiera ser su habitacion para nuestro ejemplo.

    Como usted puede observar, su habitacin est llena de cosas, que llamaremosobjetos: la cama, las dos mesitas de noche, el tapete, el mueble del televisor, eltelevisor, la grabadora, el CD de los Aterciopelados, el CD de los FabulososCadillacs, el casete de Billy Joel y el casete de Phil Collins, los dems casetes,

  • Los objetos: Un escenario 2 - 5

    la lmpara, el control remoto, el reloj despertador, el armario, cada una de lasprendas que conforman su ropa, los zapatos, los implementos de su usopersonal, la maleta del colegio, la camiseta de la seleccin del colegio, laspantuflas regalo de su abuela, solo por mencionar los nombrados en ladescripcin de su habitacin, descritos aqu. Obviamente faltarn otros objetosque estn ocultos y que usted guarda celosamente.

    Est claro que aquellas cosas que se han tenido en cuenta del mundo de suhabitacin, son objetos?. Son objetos, en nuestro ejemplo, porque son tangiblese identificables y hacen parte del mundo real.

    A continuacin se presenta la lista numerada, de los objetos identificados en suhabitacin.

    1. Cama 11.Lmpara 21. Tenis

    2. Mesa de noche izquierda 12. Televisor 19 22. Zapatos Mocasn negros

    3. Mesa de noche derecha 13.Control remoto 23. Zapatos Mocasn caf

    4. Tapete persa 14. Reloj despertador 24. Maleta del colegio

    5. Mueble para TV 15. Armario 25. Camiseta seleccin colegio

    Figura 1 Los objetos de su cuarto

  • Los objetos: Un escenario 2 - 6

    6. Grabadora 16. Blue jean 26.Correa negra

    7. CD Aterciopelados 17. Pantaln negro 27. Correa caf

    8. CD Fabulosos Cadillacs 18. Pantaln caf 28. Desodorante

    9. Casete Billi Joel 19. Camisa blanca 29. Cepillo de cabello

    10. Casete Phil Collins 20. Camisa negra 30. Pantuflas regalo de la abuela

    Observe que en el listado de objetos de su habitacin hay objetos repetidos osimilares. Por ejemplo, hay dos objetos mesa de noche, la del lado izquierdoy la del lado derecho. Ahora se identificarn en el siguiente cuadro, los objetossimilares que se han identificado en su habitacin, agrupados segn suscaractersticas generales, indicando si est o no repetido:

    Nombre objeto Repetido o nCama Objeto no repetidomesaDeNocheIzquierdamesaDeNocheDerecha

    Estos objetos son Mesas de noche, por lo tanto podemosagruparlas en el conjunto MesaDeNoche

    Tapete Objeto no repetidoMueble para TV Objeto no repetidoGrabadora Objeto no repetidoCD de los AterciopeladosCD de los Fabulosos Cadillacs

    Estos objetos son CD de msica, por lo tanto podemosagruparlos en el conjunto CdDeMusica

    Casete de Phil CollinsCasete de Billy Joel

    Estos objetos casetes, por lo tanto podemos agruparlos enel conjunto Casete

    Lmpara Objeto no repetidoTelevisor 19 Objeto no repetidoControl remoto Objeto no repetidoReloj despertador Objeto no repetidoArmario Objeto no repetidoBlujeanPantaln negroPantaln caf

    Estos objetos son Pantalones, por lo tanto podemosagruparlos en el conjunto Pantaln

    camisa blancacamisa negraCamiseta seleccin colegio

    Estos objetos son camisas, por lo tanto podemos agruparlasen el conjunto Camisa

    Zapatos Mocasn negrosZapatos Mocasn cafTenis

    Estos objetos son Zapatos, por lo tanto podemos agruparlosen el conjunto Zapatos

    Correa negraCorrea caf

    Estos objetos son Correas, por lo tanto podemos agruparlasen el conjunto Correa

    Desodorante Objeto no repetidoCepillo de cabello Objeto no repetido

  • Los objetos: Un escenario 2 - 7

    Nombre objeto Repetido o nMaleta del colegio Objeto no repetidoPantuflas regalo abuela Objeto no repetido

    Con lo anterior, se han identificado y agrupado los objetos que presentancaractersticas similares en conjuntos que los representan. Los objetos que no sehan agrupado se debe a que no estn repetidos en su habitacin. Las siguientesfiguras ilustran los objetos repetidos, agrupados segn sus caractersticasgenerales:

    casetes

    Phil Collins Billy Joel

    CdMusica

    Aterciopelados Fabulosos Cadillacs

    Pantalones

    blue jean pantalon negropantalon caf

    Camisas

    camiseta camisa blanca camisa negra

    correa Negra correa Caf

    Correas

    Zapatos

    mocasinnegro

    mocasincaf

    tenis

    mesas de noche

    mesa izquierda mesa derecha

  • Los objetos: Un escenario 2 - 8

    En el Enfoque de Objetos, la agrupacin de aquellos objetos que tienencaractersticas similares, se denomina Clase. La Clase es entonces, una formade referirse a agrupaciones de objetos que tienen caractersticas similares.

    A continuacin, se listan las Clases identificadas hasta ahora, correspondientesa los objetos repetidos asignndoles un nombre significativo:

    Clases de ObjetosMesaDeNocheCdDeMusica

    CasetePantaln Camisa ZapatosCorrea

    Pero, qu pasa con los dems objetos dentro de la habitacin? Acaso ellos sonnicos en el mundo y no tienen un similar con quin agruparse y formar partede una clase? El resto de objetos de su habitacin que no estn repetidos, sonnicos, pero en su habitacin. Sin embargo, es posible que, en el resto de sucasa existan otros similares, por ejemplo otro televisor, otras camas, otraslmparas de noche, otros relojes despertadores, etc. As que, aunque estosobjetos son nicos en su cuarto, fuera de l y en su misma casa pueden existirotros similares.

    Tomemos el caso de su cama doble, a fin de identificar si es posible incluirladentro de una clase, en donde junto con otros objetos con caractersticassimilares se la pueda agrupar:

    El da en que sus padres le regalaron la cama doble, fue justamente en el queusted cumpli 16 aos de edad. Das antes, ellos fueron a una mueblera oalmacn de muebles y escogieron su cama a travs de un catlogo, laencargaron, la pagaron y como por arte de magia la cama lleg a su casa el dade su cumpleaos. Pues bien, cuando sus padres la escogieron del catlogo,pidieron al vendedor de la mueblera una cama similar a la que estaban viendoen el catlogo y cuya referencia era DC-201. El vendedor elabor una factura deventa, un original lo di a sus padres y la otra la mand a la fbrica, en dondecarpinteros buscaron la referencia en su libro de diseo de productos, en el cual

  • Los objetos: Un escenario 2 - 9

    existe a manera de gua los pasos, los patrones y las caractersticas para laelaboracin de una Cama Doble DC-201. Tomaron los diseos respectivos,los que les permitiran ir construyendo la cama y empezaron a elaborarla, hastadisponer de una rplica igual a la indicada en el catlogo.

    Si cuando los carpinteros terminaron su cama, les hubiese llegado otra copia defactura con un pedido de elaboracin igual al que hicieron sus padres, Camadoble DC-201, tenga por seguro que, si siguen las instrucciones del diseo alpie de la letra, la cama de ste pedido queda igual a la suya. Luego su cama fueelaborada a partir de un diseo original y como ella deben existir al da de hoymuchas camas similares repartidas en otras casas por toda la ciudad,posiblemente dentro de su misma casa.

    Es decir, su objeto Cama Doble referencia DC-201, tambin tiene objetossimilares que se encuentran en otras residencias en la ciudad, o en otros cuartosde su casa y por tanto, su cama puede agruparse tambin dentro del conjunto oClase Camas Dobles Referencia DC-201. Entonces, aunque en su habitacinsolo hay un solo objeto de la clase Cama Doble, debe tener en cuenta que sucama hace parte de este conjunto o clase, la que se denominar Cama Doble

    El ejercicio que se ha hecho con el objeto Cama Doble, tiene como fin ayudarlea comprender ms el trmino Clase. Si realiza el ejercicio con los dems objetosno repetidos, que an no se han catalogado en un conjunto, se dar cuenta quecada uno de ellos pertenece a un conjunto del cual ellos son un objeto particulary que ese conjunto es una Clase.

    Siguiendo el mismo proceso para los dems objetos presentes en su habitacin,se puede elaborar entonces, el listado de objetos con la identificacin de surespectiva clase.

    Para la denominacin de nombres de objetos o identificadores de nombres deobjetos, se sigue la regla de utilizar sustantivos que sean significativos, con lacondicin que la primera palabra es toda con minsculas y las siguientespalabras sin espacio entre ellas, se inician con mayscula, las dems letras sonminsculas. Los identificadores o nombres para denominar las clases siguen lamisma regla con la condicin que la primera palabra se inicia con mayscula.

    La siguiente tabla ilustra ese listado de objetos, con su nombre y su agrupacinen la clase respectiva:

  • Los objetos: Un escenario 2 - 10

    Nombre objeto Nombre de la clasecamaDoble Este objeto es fiel copia del diseo Camas Dobles DC-201, luego se encuentra

    dentro del conjunto CamaDoble mesaDeNocheIzquierdamesaDeNocheDerecha

    Estos objetos son Mesas de noche, por lo tanto podemos agruparlas en elconjunto MesaDeNoche

    tapetePersa Este objeto es una fiel copia del diseo de Tapetes Persas, luego se encuentradentro del conjunto Tapete

    muebleTv Este objeto es una fiel copia del diseo de Muebles para TV DC-176, luego seencuentra dentro del conjunto MuebleParaTV

    grabadora Este objeto es una fiel copia del diseo de Grabadoras S-21, luego seencuentra dentro del conjunto Grabadora

    cdLosAterciopeladoscdLosFabulososCadillacs

    Estos objetos son CD de msica, por lo tanto podemos agruparlos en elconjunto CdDeMusica

    caseteDeBillyJoelcaseteDePhilCollins

    Estos objetos son Casetes, por lo tanto podemos agruparlos en el conjuntocasete

    lmpara Este objeto es una fiel del diseo de lmparas, luego se encuentra dentro delconjunto Lmpara

    televisorDe19Pulgadas Este objeto es una copia del diseo de Televisores 19, luego se encuentradentro del conjunto Televisor

    controlRemoto Este objeto es una copia del diseo de Controles Remoto para Televisores de19, luego se encuentra dentro del conjunto ControlRemoto

    relojDespertador Este objeto es una copia del diseo de Relojes Despertadores, luego seencuentra dentro del conjunto RelojDespertador

    armario Este objeto es una copia del diseo de Armarios, luego se encuentra dentrodel conjunto Armario

    blueJeanpantalnNegropantalnCaf

    Estos objetos son Pantalones, por lo tanto podemos agruparlos en el conjuntoPantaln

    camisaBlancacamisaNegra

    Estos objetos son Camisas, por lo tanto podemos agruparlas en el conjuntoCamisa

    teniszapatosMocasnNegroszapatosMocasnCaf

    Estos objetos son Zapatos, por lo tanto podemos agruparlos en el conjuntoZapato

    correaNegracorreaCaf

    Estos objetos son Correas, por lo tanto podemos agruparlas en el conjuntoCorrea

    desodorante Este objeto es una copia de la receta de Desodorantes, luego se encuentradentro del conjunto Desodorante

    cepilloDeCabello Este objeto es una copia del diseo de Cepillos para Cabello, luego seencuentra dentro del conjunto CepilloDeCabello

    maletaDelColegio Este objeto es una copia del diseo de Maletas de Colegio, luego se encuentradentro del conjunto MaletaDeColegio

    camisetaSeleccinColegio

    Este objeto es una copia del diseo de Camisetas de Seleccin Colegio, luegose encuentra dentro del conjunto Camiseta

    pantuflasRegaloAbuela Este objeto es una copia del diseo de Pantuflas, luego se encuentra dentrodel conjunto Pantufla

    A esta altura de nuestro estudio sobre objetos, ya se debe tener claro que losobjetos dentro de una misma clase tienen caractersticas similares. Dichas

  • Los objetos: Un escenario 2 - 11

    caractersticas se deben encontrar definidas en la clase que las agrupa, ya que laclase es la definicin en s de los objetos que se agrupan en un mismo conjunto.

    La clase define las caractersticas comunes a todos los objetos que laconforman. Por ejemplo, aunque la clase Zapato agrupa a todos los objetos concaractersticas similares, cada objeto en particular, por ejemplo un par de tenis,tiene valores especficos o propios para cada caracterstica. Todos los zapatostienen la caracterstica color, en los suyos el color de los tenis es blanco porejemplo. La clase posee la caracteristica color, el objetoen particular, tiene unvalor especfico para dicha caracterstica.

    Ahora se tomar una clase cualquiera de las enumeradas antes y seidentificarn las caractersticas comunes a todos los objetos que la conforman.Sea el caso de la clase CdDeMusica, a la cual pertenecen los CD de msica queusted tiene junto a su grabadora. Estos CD de msica tienen, entre otras, lassiguientes caractersticas comunes:

    CaractersticaTtulo del CD

    Nombre del artistaAo de grabacin produccin

    Nombre del productor fonogrficoLista de cancionesNmero de serie

    Aunque un CD puede tener mas caractersticas, como tamao, duracin y otras,se tomarn las indicadas como las caractersticas a tener en cuenta para la claseCdDeMusica. Estas caractersticas como son comunes a cada CD de msica,entonces deben estar contenidas en la definicin del conjunto que las agrupa, osea la Clase CdDeMusica.

    Cuando se define la clase, se definen las caractersticas que van a tener todoslos objetos comunes a esa clase. Por lo tanto, la clase CdDeMusica, tendrcomo caractersticas las mencionadas anteriormente y que sealamos acontinuacin con la notacin que se seguir de ahora en adelante cuando sehaga referencia a las caractersticas como tal. A cada una de estas caractersticasse les denomina atributo.

  • Los objetos: Un escenario 2 - 12

    Clase: CdDeMusica

    Nombre Atributo Notacin de AtributoTitulo CD tituloCDNombre Artista nombreArtistaAo Grabacin aoGrabacionNombre Productor Fonogrfico nombreProductorFonogrficoLista de Canciones listaDeCancionesNumero de Serie numeroSerie

    Esta notacin para los atributos de las clases, similar a la seguida en lenguajesorientados a objetos, como es el caso del Java, recomienda que se utilicensustantivos compuestos que claramente definan el atributo. Por eso la notacinpropone construir el nombre del atributo a partir de las palabras que lo definen,de las cuales la primera comienza con minscula y la primera letra de cada unade las palabras siguientes en mayscula. Esta notacin se usar de ahora enadelante para los atributos.

    Como ya se ha mencionado antes, los atributos que se definen en la clase,toman valores en cada uno de los objetos que hacen parte de ella. En elsiguiente cuadro se han tomado solamente dos objetos de la Clase CdDeMusica,a fin de identificar sus atributos:

    Atributos Clase Atributos cdLosAterciopelados Atributos cdLosFabulosos CadillacstituloCD La Pipa de la Faz En la VidanombreArtista Los Aterciopelados Fabulosos CadillacsaoGrabacin 1994 1992nombreProductor EMI Sora FonoluxlistaDeCanciones Paracutanara, El Cofre, Florecita

    Salsera, Mujer Bala, La Pipa de la Faz,Camino al Dorado, Me sientoColombiano, Solsticio, Bolero Sagaz

    Mal Dicho, En la Vida, Cazador, VasosLlenos, Matasor, Cancin 2, Cancin 3,Cancin 4, Cancin 5, Cancin 6

    numeroSerie 24352-46552 28475-69875

    Cada objeto de la clase CdDeMusica tiene su definicin individual de susatributos, los cuales toman valores particulares que lo hacen diferente ydistinguible de otros. Esto se observa claramente en la tabla anterior. En lacolumna 1 tenemos definidos los atributos de la clase CdDeMusica. En lacolumna 2, estos atributos estn presentes en el objeto cdLosAtercipelados, conlos valores que hacen nico a este objeto. Lo mismo sucede con la columna 3,representada por los atributos del objeto cdLosFabulososCadillacs, el cual tienevalores propios para estos atributos. En este sentido, en los objetos, a diferenciade las clases, los atributos dejan de ser una definicin de caractersticas paraconvertirse en el valor propio que representa la caracterstica dentro del objetocomo tal.

  • Los objetos: Un escenario 2 - 13

    Ahora bien, si se tuviera dos CD exactamente iguales, es decir que fuerancopias iguales, sera necesario adicionar un nuevo atributo que diferenciara lasdos copias, por ejemplo un nmero consecutivo para indicar el nmero de lacopia. En cuyo caso en la clase CdDeMusica se debera tener en cuenta esacaracterstica.

    Pasemos ahora al objeto pantuflasRegaloDeAbuela, el cual pertenece a la clasePantuflas. Los atributos que se podran encontrar para la clase Pantuflas y conlos cuales se trabajar aqu son: Tipo Pantuflas, material de Fabricacin, Talla,nombre Dueo,color.

    De esta manera, su objeto pantuflasRegaloAbuela, toma los siguientes valorespara sus atributos:

    Atributos ClasePantufla

    Nomenclatura para los atributos dela Clase Pantufla

    Valores de los atributos del objetopantuflasRegaloAbuela

    Tipo Pantuflas tipoPantufla De BatallaMaterial Fabricacin materialFabricacion PelucheTalla talla 39 Nombre Dueo nombreDueo UstedColor color blanco

    Entonces, se podra decir que las clases son la representacin general de losobjetos que se encuentran agrupados en ella. En la terminologa orientada aobjetos, a stos se les denomina tambin instancias de la clase a la quepertenecen. As pantuflasRegaloAbuela es una instancia de la clase Pantuflas.Los trminos objeto e instancia son sinnimos y se utilizarn indistintamente.

    Se ha dicho que en las clases se definen las caractersticas comunes de losobjetos que pertenecen a ella. Que estas caractersticas se denominanAtributos y que stos atributos toman valores nicos en un objeto particular. Laforma como se organizan los atributos en la definicin de una clase, determinanlo que se denomina la Estructura de la clase.

    Tomemos ahora por ejemplo, el objeto grabadora. Es posible tener como

    pantuflas

  • Los objetos: Un escenario 2 - 14

    nombre de una instancia el mismo nombre de la clase, como en el caso delobjeto grabadora y el de la clase Grabadora. La notacin del identificador paraobjetos y clases indica claramente cual es el objeto y cual es la clase, por tantolos nombres realmente son diferentes; el de la clase inicia con mayscula y eldel objeto con minscula.

    Algunos de los atributos que se podran encontrar en la clase Grabadora y losvalores que esos atributos toman en el objeto grabadora, se muestra acontinuacin.

    Atributos ClaseGrabadora

    Notacin atributos de la claseGrabadora

    Valores para los atributos del objetoGrabadora

    Marca marca GatoReferencia referencia S-21Dueo dueo Usted

    Puede observarse que, a diferencia de las pantuflas, de la mesa de noche, de lostenis y los bluejeans por ejemplo, el objeto grabadora realiza operacionespropias que es posible identificar, como reproducir Cd, reproducir casete,aumentar volumen, apagarse y otras, segn indicaciones dadas por usted,presionando un botn de la grabadora, o accionando el control remoto. Estasfunciones u operaciones que realizan los objetos se denominancomportamiento. As como todos los objetos tienen nombre y atributos, todoobjeto tiene comportamiento, aunque no parezca evidente como en el caso delos tenis, las pantuflas o una camisa. Obviamente la grabadora realiza funcionesu operaciones, por eso se toma como ejemplo.

    En estos trminos, las clases como agrupaciones de objetos tienen estructura ycomportamiento: la estructura define qu caractersticas van a tener los objetosagrupados en la clase y el comportamiento define las funciones u operaciones

    ..

  • Los objetos: Un escenario 2 - 15

    que van a realizar esos objetos. Dichas funciones se denominan mtodos.

    Ya definida una estructura para la clase Grabadora, basada en algunos de susatributos, centremos la atencin ahora en enumerar cules son algunas de lasfunciones mtodos que realiza su grabadora y que determinan sucomportamiento.

    Su grabadora reproduce el sonido de un CD, reproduce el sonido de un casete,graba de CD a casete, graba de casete a casete, sintoniza emisoras, amplificaondas de radio,se enciende y apaga, aumenta o reduce el volumen del sonido,entre otras funciones.

    Estas funciones del objeto grabadora se ofrecen gracias a las operaciones ydispositivos que se han puesto en la grabadora cuando fue ensamblada. A estasoperaciones que implementan las funciones que realiza un objeto y queconstituyen el comportamiento de un objeto se les denominan mtodos. Estasfunciones las ofrecen todas las grabadoras que como la suya son de la referenciaS-21. Luego estas funciones las realizan todos los objetos que estn dentro de laclase Grabadora que se ha definido y por tanto, se incluirn stas funcionesdentro de la definicin de la clase Grabadora, como aparece en el siguientecuadro:

    Mtodos de la Clase Grabadora Notacin mtodos de la clase GrabadoraReproducir sonido CD reproducirSonidoCDReproducir sonido casete reproducirSonidoCaseteGrabar de CD a casete grabarDeCDaCaseteGrabar de casete a casete grabarDeCaseteACaseteSintonizar emisora sintonizarEmisoraReproducir sonido Emisora reproducirSonidoEmisora

    La notacin que se sigue en la columna 2 de la tabla anterior para referirse a losmtodos de una clase, recomienda que se utilicen nombres compuestos quecomiencen con el verbo que represente la funcin que el mtodo va utilizar enminscula, seguido del los sustantivos que ayuden claramente a definir laaccin del mtodo. Cada uno de estos sustantivos que siguen al verbo, debenempezar por mayscula. Esta notacin la usaremos en lo sucesivo cuando nosrefiramos a mtodos de una clase.

    Para la clase Grabadora en trminos de Estructura (atributos) se tendrn encuenta entre otros, los siguientes: marca, referencia y dueo.

  • Los objetos: Un escenario 2 - 16

    Para su Comportamiento (mtodos) se tendrn en cuenta los siguientesconsiderados como bsicos: reproducir sonido de CD, reproducir sonido decasete, grabar de CD a casete, grabar de casete a casete, sintonizar emisora,reproducir sonido emisora.

    De ahora en adelante cuando se vaya a referir a la estructura y elcomportamiento de una clase, de manera grfica, en lugar de utilizar larepresentacin del cuadro anterior, se utilizar notacin estndar siguiente:

    La notacin para ilustrar la definicin de una clase, comprende entonces tresreas o compartimientos: en la parte superior va el nombre de la clase, en laintermedia van los atributos y en la parte inferior los mtodos.

    Siguiendo un recorrido por los objetos de su habitacin, tomemos ahora elobjeto lmpara que tiene sobre la mesita del lado izquierdo de su cama.Definamos los atributos y los mtodos de la clase LmparaDeMesaDeNoche.

    La lmpara puede tener como atributos, la marca, el nombre, la referencia, el

    Grabadora

    marcareferencia

    dueo

    reproducirSonidoCDreproducirSonidoCassette

    grabarDeCDaCassettegrabarDeCassetteACassette

    sintonizarEmisorareproducirSonidoEmisora

    Nombre de la clase

    Lista de atributos

    Lista de Mtodos

    reproducir sonido CDreproducir sonido casetegrabar de CD a casetegrabar de casete a CDsintonizar emisorareproducir sonido emisora

  • Los objetos: Un escenario 2 - 17

    tipo de bombillo que utiliza, el voltaje, entre otros. Si se piensa en cules sonlas funciones que la lmpara realiza, se podra afirmar que ella permite encendery apagar el bombillo. Luego se puede afirmar que, los mtodos de la lmparason: encenderBombillo y apagarBombillo. Siguiendo la notacin grficaindicada antes, la clase LmparaDeMesaDeNoche quedara representada as:

    Bueno, entonces ya se tiene claro que las clases poseen estructura ycomportamiento, los cuales son extensibles a los objetos representados. Laestructura la determina los atributos y el comportamiento est definido por losmtodos que implementan las funciones que realizan los objetos agrupados enesta clase.

    Organizacin y relacin entre ClasesEn la seccin anterior, se identific y defini la estructura y el comportamientode la clases Grabadora y LamparaDeMesaDeNoche. Observando en detalle elobjeto grabadora, se puede reconocer que la grabadora tiene un lector de CD,dos baffles, radio, amplificador, dos caseteras, una antena, un cable paraconectar al toma-corriente, 11 botones para controlar las caseteras, 5 botonespara controlar el reproductor de CD, un botn controlador del volumen y unbotn controlador de cambio de funcin (el que permite, prender, pasar decasete a CD a radio), entre otros.

    Observe detenidamente los elementos de la siguiente figura, que corresponden auna desagregacin de los principales componentes de su grabadora. No leparece que esos componentes son tambin objetos? De cada uno de ellosexisten otros en otras grabadoras, tienen nombre, atributos y realizan funciones.

    Se puede afirmar entonces que, en el mundo real, existen objetos que secomponen de otros objetos, o en otras palabras, que son agregado de muchas

    LamparaDeMesaNoche

    marcanombreLampara

    referenciatipoDeBombilloRequerido

    encenderBombilloapagarBombillo

    encender bombilloapagar bombillo

  • Los objetos: Organizacin y relacin entre Clases 2 - 18

    partes independientes que son indispensables dentro del objeto compuesto. Puesesas partes independientes que forman el objeto, en este caso su grabadora, sepueden distinguir como objetos tambin, pues dentro del mundo real, tambinlo son.

    Los diferentes objetos, componentes de una grabadora, se pueden conseguir porseparado y ensamblar a su gusto. Por ejemplo, cuando se daa un parlante desta, se retira y se cambia por uno nuevo que se adquiere en un almacn deartculos electrnicos.

    Cada uno de estos elementos que hacen parte del objeto su grabadora y quecaracterizan a las grabadoras agrupadas en la Clase Grabadora referencia S-21,son elementos de alguna manera independientes que, juntos constituyen la

    reproductor CD

    cable de alimentacin

    bafles

    botones de control

    reproductor de casetes

    antenaradio

    amplificador

  • Los objetos: Organizacin y relacin entre Clases 2 - 19

    grabadora. Luego se podra decir que el objeto su grabadora se constituye de losanteriores elementos indicados, los cuales a su vez, son objetos que existen enel mundo real. Es decir, se tiene un objeto: su grabadora, que se compone deotros objetos. Cada uno de esos objetos existe en el mundo real y como tales,deben estar agrupados en una clase, pues no son los nicos objetos con esascaractersticas que existen en el mundo real.

    Por ejemplo, los 5 botones que permiten operar el reproductor de CD, estnagrupados dentro de un conjunto o clase BotonesCD y por lo tanto cada uno deellos debera tener la misma estructura y similar comportamiento.

    Miremos cmo podra ser una estructura para la clase Botn y qu valorespodran tomar los 5 botones del reproductor de CD, del objeto grabadora, en elcuadro siguiente:

    AtributosClaseBotn

    esCD delReproductor de CD

    Valores para elbotn

    Parar/Abrir(stop/eject)

    Valores para elbotn

    Pausa (pause)

    Valores parael botn

    Adelantar(Ffwd)

    Valores para elbotn

    Devolver (rew)

    Valores para elbotn

    Reproducir (play)

    nombre Parar/Abrir Pausa Adelantar Devolver Reproduciretiqueta Stop/Eject Pause Ffwd Rew Playicono

    tamao 10x10 10x10 10x10 10x10 10x10posicin 20,20 40,20 60,20 80,20 100,20

    El comportamiento de cada uno de los objetos botn, corresponde a la funcinque realiza y que se activa cuando se presiona o se libera sobre el icono osmbolo respectivo.

    Con el ejemplo de la grabadora y su conformacin por medio de diferentes

    play

    rewind

    forward

    pausestop/eject

  • Los objetos: Organizacin y relacin entre Clases 2 - 20

    objetos, como los indicados en la figura, y especialmente para el caso de losbotones del reproductor de CD, se ilustra que existen objetos que estncompuestos de otros objetos. En el enfoque de objetos, cuando un objeto seforma a partir de otros objetos, como en el caso de la grabadora, la lmpara, eltelevisor, y otros en su cuarto, se realiza una composicin.

    Cuando existe composicin entre objetos, es decir, cuando un objeto hace partede otro, entonces el objeto compuesto se caracteriza tambin por ser laagrupacin de uno o varios objetos. Esta caracterizacin que lo hace ser nicocomo objeto, hace parte de su definicin como objeto y por tanto hace parte dela definicin de la clase. En este sentido, la composicin es referenciada dentrodel cuerpo de la estructura de la clase que representa al objeto compuesto.

    Cada uno de los objetos que es una parte del objeto compuesto, se convierte enun atributo de la clase correspondiente del objeto compuesto. Tal como en elmundo real, la composicin caracteriza a los objetos en el enfoque de objetos.Por lo tanto, estos atributos que representan objetos, se ponen como atributosdel tipo objetos, pertenecientes a la estructura de una clase particular.

    De esta manera, la estructura de la clase Grabadora incluyendo la composicinbasada en algunos de los objetos que la conforman, queda de acuerdo a loilustrado en el siguiente cuadro:

    Atributos ClaseGrabadora

    Notacin atributos de laclase Grabadora

    Valores para los atributos del objetoGrabadora

    marca marca GatoSilvestrereferencia referencia S-21dueo dueo UstedContiene objeto Lector CD objetoLectorCD LectorCD para grabadora S21, serie 00012Contiene 2 objetoscaseteras

    parObjetosCaseteras Casetera 1- serie 09373 y Casetera 2-serie09374

    Cable al toma-corriente objetoCableTomaCorriente Cable Toma corriente serie 388734antena objetoAntena Antena serie 244sintonizador de radio objetoRadio Radio Zenith 123amplificador objetoAmplificador Amplificador Aiwa 345botones para controlar lascaseteras

    listaBotonesCaseteras Boton Stop serie23, Boton Pause serie 23,boton Ffwd serie 23, boton Rew serie 23,botn Play serie 23, botn segunda caseteraStop serie 24, botn segunda casetera Pauseserie 24, botn segunda casetera Ffwd serie24, botn segunda casetera Rew serie 24,botn segunda casetera Play serie 24,botn segunda casetera Rec serie 34

    botones para controlar elreproductor de CD

    listaDeBotonesCD Botn Stop-Cd serie 45, Botn pause-Cdserie 45, Botn Ffwd-Cd serie 45, botn Rew-Cd serie 45, Botn Play-Cd serie 45

    botn controlador delvolumen

    botonControladorVolumen Botn Controlador Volmen serie 23

  • Los objetos: Organizacin y relacin entre Clases 2 - 21

    Atributos ClaseGrabadora

    Notacin atributos de laclase Grabadora

    Valores para los atributos del objetoGrabadora

    botn controlador decambio de funcin

    botonCambioFuncion Botn Cambio Funcin serie 23

    Ahora seleccionemos otro de los objetos de su habitacin, por ejemplo, lalmpara que tiene sobre la mesita de noche del lado izquierdo.

    Esta lmpara est compuesta de una base de madera formada por dos esferas yuna tabla circular de madera, por el centro de ellas pasa un tubo de aluminio de0,5 centmetros de dimetro, tiene adems arandelas y tuercas de fijacin, unbombillo, un cable toma corriente, el portabombillo, el suiche y la pantalla.Cada una de estas partes son objetos tambin y stos objetos pueden estaragrupados en clases y por lo tanto tienen estructura y comportamiento definidos.Luego estamos hablando tambin de composicin para la claseLamparaDeMesaDeNoche.

    La siguiente tabla ilustra los componentes de la clase LamparaDeMesaDeNoche:

    pantalla

    bombillo

    porta bombillo

    base de madera

    suiche

    cable tomacorriente

  • Los objetos: Organizacin y relacin entre Clases 2 - 22

    Atributos ClaseLamparaDeMesaDeN

    oche

    Notacin atributos claseLamparaDeMesaDeNoche

    Valores para los atributos del objeto lampara

    marca marca Particular Electricreferencia referencia PE-56Adueo dueo Ustedvoltaje voltajeAlimentacin 120 VContiene objetopantalla

    objetoPantalla Pantalla, aluminio-tela, S453

    Contiene objetobombillo

    bombilloLampara SLR-45 70W

    Contiene objetoportalampara

    objetoPortalampara Buho Fg-987

    Contiene objeto basede madera

    baseDeMadera Base DF-45

    Contiene objetosuiche

    suicheLampara Sw-843

    Contiene cable-tomacorriente

    cableTomacorriente cable awt-15

    Centremos ahora nuestra atencin en los objetos que tiene dentro de su armario,pero no se preocupe no le vamos a preguntar nada por aquellos objetos ocultosy privados.

    Vamos a tomar los objetos con los cuales usted calza sus pies. Para este ejemplousted tiene un par de tenis, un par de zapatos mocasines de color caf y otro parde mocasines de color negro. Los objetos zapatos mocasines de color caf yzapatos mocasines de color negro, estn agrupados en la clase ParDeZapatos.Como atributos de la clase ParDeZapatos se pueden distinguir: numero, marca,tipo, color, tipo cuero, entre otros.

    La tabla correspondiente a los atributos de la clase ParDeZapatos y los valoresque toma en los objetos zapatos mocasines de color caf y zapatos mocasines decolor negro, se muestra a continuacin:

    Atributos ClaseParDeZapatos en notacin

    Valores de atributos para elobjeto ParZapatos MocasnCaf

    Valores de atributos para el objetoParZapatosMocasnNegro

    numero 39 39marca CopaShoes TresPatastipo clsico Normalcolor caf negrotipoMaterial normal GamotipoHebilla ninguna Pequea-plata

  • Los objetos: Organizacin y relacin entre Clases 2 - 23

    El objeto Par de Zapatos Tenis, est agrupado dentro de la claseParDeZapatosTenis, la cual se puede definir con los siguientes atributos y conlos siguientes valores de atributos correspondientes al objeto su par de zapatostenis, tal como muestra el cuadro siguiente:

    Atributos ClaseParDeZapatosTenis

    Valores de atributos para el objetozapatos Tenis

    numero 39marca Patitastipo para Trotarcolor blanco y azultipoMaterial cuero y telatipoCordon Esfrico-largo

    Tanto el objeto par de Zapatos Tenis como los objetos Par de Zapatos Mocasn,son zapatos porque le permiten calzar sus pies, sin embargo ellos se diferencianpor ejemplo en que los zapatos tenis le sirven para hacer deporte en cambio susmocasines solo le sirven para vestir. Como obviamente ambos tipos de objetosson Pares de Zapatos, entonces ellos deberan estar agrupados en una clasecomn que los incluye a ambos, la clase Par de Zapatos. Es decir, al ser zapatoslas clases Par de Zapatos Tenis y Par de Zapatos Mocasn, tienen atributossimilares, pero en cambio difieren en que, la clase Zapato Tenis tiene unatributo tipoCordon que la clase Mocasn no tiene y la clase Mocasn tiene unatributo tipoHebilla que la clase Tenis no tiene. Por supuesto los Mocasines notienen cordones, pero en lo dems ambas clases son similares. Entonces se debecrear una clase ms general que se llame Clase ParDeZapatos, que contenga losatributos que tanto la clase Par de Zapato Tenis como la clase Par de ZapatoMocasn poseen. A continuacin se relacionan en la siguiente tabla los atributosque va a tener la clase Par de Zapatos, que es prcticamente comn a cualquierpar de zapatos:

    ParDeZapatos

    numeromarca

    tipocolor

    tipoMaterial

  • Los objetos: Organizacin y relacin entre Clases 2 - 24

    Como se est hablando de atributos y no se est tratando el tema de los mtodosde esta clase, entonces el compartimiento respectivo a los mtodos no apareceen el grfico.

    Como se sabe, un objeto parDeZapatos cualquiera que sea, se compone de unobjeto zapatoDerecho y de un objeto zapatoIzquierdo. Debe observarse que, a ladefinicin de la clase ParDeZapatos ilustrada en la figura anterior, le faltan losatributos correspondientes a los objetos que componen la clase ParDeZapatos.En este caso, su objeto zapatoDerecho y su objeto zapatoIzquierdo.

    Al ser tanto zapatoIzquierdo como zapatoDerecho objetos, entonces debenpertenecer a una clase, justamente a la clase Zapato. De esta manera, la clasePar de Zapatos est compuesta de dos objetos de la clase Zapato y por lo tantohay una relacin de composicin entre ambas clases. Esta relacin decomposicin se traduce dentro de la clase ParDeZapatos como dos atributosdentro de ella que son instancias de la clase Zapato o que en otras palabras sonde tipo Zapato. La clase Zapato entonces tendr un atributo posicionZapato quedefine si un objeto particular de la clase es un zapato izquierdo o derecho} quedefinen el objeto zapatoIzquierdo y zapatoDerecho, que es ms general que laclase ParDeZapatos, y que agrupa las caractersticas que los representan a losdos. Dichas caractersticas en este caso son solo una: posicinZapato, es decir sies el izquierdo o el derecho.

    Usted se podra preguntar, porqu se definieron las clases Zapato yParDeZapatos por separado y no se busc la forma de crear una sola clase quepudiera contener los atributos de ambas y por lo tanto la misma funcionalidad,pero en este caso, esta distribucin se ha escogido de esta manera debido alsiguiente argumento: un objeto zapatoIzquierdo o zapatoDerecho, no hace nadapor si solo, es decir, un objeto zapatoSolo, ya sea izquierdo o derecho, no hacenada si la funcionalidad que hemos definido para ste es la de calzarlo, como sevio en la unidad anterior. Por lo tanto, la clase ParDeZapatos, que es la querealmente agrupa el conjunto del zapato izquierdo y el derecho, es la que debecontrolar tanto la estructura y el comportamiento, pues es la que representa lafuncionalidad de permitirle a usted calzarse. Entonces la clase que representa alobjeto su zapatoIzquierdo y al objeto su zapatoDerecho, se denominar Zapatoy tendr un solo atributo que representar si es el zapato izquierdo o el derechoy que se denominar posicionZapato, como se muestra en la siguiente figura:

    ZapatoposicionZapato

  • Los objetos: Organizacin y relacin entre Clases 2 - 25

    Luego la definicin de los atributos de la clase ParDeZapatos queda de lasiguiente manera:

    En esta definicin de la clase ParDeZapatos se est definiendo una clasecompuesta, que agrupa las generalidades de las clases ParDeZapatosTenis yParDeZapatosMocasn, es decir los atributos que son comunes a ambas clases.Ahora bien, se debe tener claro que, tanto a la clase ParDeZapatosTenis como ala clase ParDeZapatosMocasn les falta un atributo particular que no estcontenido en la definicin de la clase Par de Zapatos.

    En la clase ParDeZapatos reuniremos los atributos que comparten tanto la ClaseParDeZapatosMocasn como la clase ParDeZapatosTenis y en stas clasesvamos a dejar los atributos que solo las caracterizan a ellas, o sea, los atributostipoHebilla y tipoCordon respectivamente.

    La representacin grfica de estas clases seria como ilustra la siguiente figura.

    La razn por la cual se hace esto es porque, agrupando en la Clase Par de

    ParDeZapatosnumeromarca

    tipocolor

    tipoMaterialobjetoZapatoIzquierdoobjetoZapatoDerecho

    ParDeZapatosnumeromarca

    tipocolor

    tipoMaterialobjetoZapatoIzquierdoobjetoZapatoDerecho

    ParDeZapatosMocasn

    tipoHebilla

    ParDeZapatosTenis

    tipoCordon

  • ParDeZapatosnumeromarca

    tipocolor

    tipoMaterialobjetoZapatoIzquierdoobjetoZapatoDerecho

    Los objetos: Organizacin y relacin entre Clases 2 - 26

    Zapatos las caractersticas comunes, se est evitando tener dos clases que siendosimilares tengan definiciones duplicadas de caractersticas. De alguna manera sedebe definir que tanto la Clase ParDeZapatosMocasn y la ClaseParDeZapatosTenis estn contenidas, agrupadas, pertenecen o son de la ClaseParDeZapatos. Este tipo de agrupacin, en donde una clase general agrupacaractersticas que otras clases poseen, independiente de las caractersticasparticulares que las clases a ser agrupadas posean adems, se denominajerarqua de clases.

    El trmino ilustra claramente la idea, puesto que en el proceso de encontrar unaclase con estructura y comportamiento similar que represente elementos quepueden ser agrupados en una clase ms general que las contenga, justamente loque se est haciendo es ir de lo particular a lo general, estableciendo as comoun tipo de clasificacin, en la cual se van jerarquizando las clases y estaorganizacin puede ir de las ms generales a las ms particulares o viceversa.

    La jerarqua se representa grficamente de acuerdo a ala siguiente figura. Laflecha significa que las clases ParDeZapatosMocasin y ParDeZapatosTenis,toman o heredan de la clase ParDeZapato, todas las caractersticas de sta,adems tienen sus propias caracteristicas tipoHebilla y tipoCordonrespectivamente, las cuales los hacen diferentes de otro par de zapatos.

    De esta manera, se est diciendo que la clase ParDeZapatosMocasn es unParDeZapatos y que la clase ParDeZapatosTenis es un ParDeZapatos tambin,

    ParDeZapatosTenis

    tipoCordon

    ParDeZapatosMocasn

    tipoHebilla

  • Los objetos: Organizacin y relacin entre Clases 2 - 27

    que adems de las caractersticas que heredan de la clase Zapato, tienen lassuyas propias.

    A la jerarqua que representa este ejemplo de la Clase ParDeZapatos, tambin sele denomina estructura de clases o jerarqua de generalizacin/especializacin.Esta relacin se da mediante la identificacin entre clases.

    A la clase ParDeZapatos, que es la clase general en la cual estn agrupadas laclase ParDeZapatosMocasn y la clase ParDeZapatosTenis, se le denominaSuperclase, o clase Padre. A las clases particulares que estn agrupadas dentrode una clase particular, en este caso la Clase ParDeZapatosTenis y la claseParDeZapatosMocasn se les denomina Subclases, clase hijas o clasesderivadas.

    Pero, si se ha definido una clase ParDeZapatos que agrupa las caractersticas delos objetos que permiten calzarlo a usted.... no cree que hemos olvidado a unobjeto? Dnde queda el objeto pantuflas regalo de su abuela? El que ya no sesepa de que color son y que el perro de su casa las haya mordido, no nos daderecho a omitirlas en tal grado!. Independiente del estado actual en que elobjeto sus pantuflasRegaloAbuela estn, ellas le han servido a usted paracalzarse, luego son un ParDeZapatos, lo que pasa es que pertenecen a la clasePantuflas, es decir a la clase que agrupa aquellos objetos que sirven paracalzarlo a usted, pero solo en su casa.

    Son un ParDeZapatos cmodos, que le sirven para andar en la casa, incluso parair a la panadera de la esquina a comprar el pan para el desayuno, pero paranada ms!. Se definir entonces la clase Pantuflas que agrupe a los objetos parde pantuflas en general. Los valores para los atributos del objetopantuflasRegaloAbuela, quedarn como se ilustra a continuacin:

    Atributos Clase Pantuflas ennotacin

    Valores de atributos para el objetopantuflasRegaloAbuela

    numero 39marca Petitetipo Para la casa y no ms!color Blanco y amarillo mostazatipoMaterial peluchetipoAdorno Cabeza de Winnie de Pooh al frenteregaloDe abuelaobjetoZapatoIzquierdo pantuflaIzquierdaobjetoZapatoDerecho pantuflaDerecha

    En notacin grfica, la clase Pantuflas quedara:

  • ParDeZapatosnumeromarca

    tipocolor

    tipoMaterialobjetoZapatoIzquierdoobjetoZapatoDerecho

    Los objetos: Organizacin y relacin entre Clases 2 - 28

    Como la clase Pantuflas tiene caractersticas similares que las clasesParDeZapatosMocasn y ParDeZapatosTenis, entonces la clase Pantuflas estagrupada tambin dentro de la clase ParDeZapatos, pues el objeto par depantuflasRegaloAbuela es un tipo de ParDeZapatos.

    Luego, el grfico con las jerarquas de clases alrededor de la claseParDeZapatos, queda como se ilustra en la siguiente figura.

    Ya usted sabe que existen objetos que estn compuestos de otros objetos, o sea,objetos que hacen parte de otro ms complejo u objetos que estn agregadosdentro de otros que lo componen y que a esto se le llama Composicin. Ustedya sabe tambin que existen clases que pueden recopilar caractersticas declases similares, en otras palabras, una clase general puede agrupar la estructuray el comportamiento de clases similares, que esa clase general se llamasuperclase y que las clases agrupadas en ella se llaman subclases y que sto se

    Pantuflas

    Numeromarca

    tipocolor

    tipoMaterialtipoAdornoregaloDe

    objetoZapatoIzquierdoobjetoZapatoDerecho

    ParDeZapatosTenis

    tipoCordon

    ParDeZapatosMocasn

    tipoHebilla

    ParDePantuflasttipoAdornoregaloDe

  • Los objetos: Organizacin y relacin entre Clases 2 - 29

    llama jerarqua de clases.

    Retomando el problema planteado al principio de la unidad, acerca del bloquede madera a obtener a partir de un tronco de rbol, se puede representar cadauno de los objetos que se ha indicado se utilizan en la solucin, por una clase,por ejemplo como se ilustra en la siguiente figura:

    Lo cual organizado en conjunto se ilustra en la siguiente figura, donde solo sehan tenido en cuenta las clases a las cuales pertenecen los objetos.

    Como se puede observar, en esta figura estn indicadas algunas de las clasesque se utilizan en la solucin del problema, sin embargo ni sus atributos ni susmtodos se han indicado. El lector debe llenar estos campos con datoscorrespondientes a objetos de la vida real.

    En la siguiente figura se ilustran las relaciones entre las diferentes clases,respecto del aserrador, puesto que este, o sea la clase Aserrador, es la claseencargada de usar los diferentes objetos. Las realciones entre las clases y laclase Aserrador es de uso.

  • Los objetos: Organizacin y relacin entre Clases 2 - 30

    Mensajes entre clasesAhora por primera vez usted va a aparecer en escena, como objeto, claro est.Imagnese a usted dentro de su habitacin, recostado en su cama viendo en latelevisin su programa favorito. Es de noche y maana usted tiene quemadrugar antes de lo acostumbrado, luego tiene que reprogramar el relojdespertador. Usted no interrumpe su programa favorito solo espera que, estnen propaganda para tomar el despertador.

    Por favor, para efectos prcticos de este ejemplo se le sugiere que las siguientessecuencias de imgenes asociadas con los pasos a seguir las pase en cmaralenta. Usted toma el reloj despertador, activa el botn Alarma, luego ajusta elcontrol para programar la alarma en la hora deseada, en este caso las 5 a.m., asel despertador le queda cuadrado en las 5:00 a.m. Luego se asegura nuevamenteque el despertador quede con alarma programada. Para asegurarse que sureloj no se pare antes de la hora indicada para despertarlo, ya que es undespertador de cuerda, usted le da cuerda girando la manecilla que se encuentraen la parte posterior.

    Como se ha trado a la escena al objeto usted y al objeto relojDespertadorentonces se definir las clases para ambos objetos como se ha hecho en lassecciones anteriores.

    Atributos para la clase RelojDespertador y los valores de dichos atributos para

  • Los objetos: Mensajes entre clases 2 - 31

    su objeto relojDespertador se pueden establecer de acuerdo a la siguiente figura:

    Atributos de la ClaseRelojDespertador

    Valores de atributos parael objeto

    relojDespertadormarca Pony

    color Azul Cielo

    tipoMaterial Metal-Plstico

    tipoFunciones Alarma

    nombreDueo Usted

    horaActual La hora actual

    horaAlarmaActual 5:00 a.m.

    operacion De cuerda

    Con el atributo tipoFunciones lo que se quiere indicar es que hay algunosrelojes despertadores que no solo tienen alarma para despertar sino que tambinson a la vez, radios, por ejemplo. En este caso particular su despertador decuerda, es solo eso: un reloj despertador, por eso en el valor del atributotipoFunciones se indic nicamente la alarma. Si hubiese sido tambin radio,hubisemos puesto alarma y radio, por ejemplo.

    Con lo anterior se ha definido la estructura de la clase RelojDespertador,definamos entonces el comportamiento de dicha clase. Primero se identificarnlas funciones que realiza un objeto relojDespertador. Un objeto RelojDespertador da la hora, modifica su hora actual, programa la alarma, activa laalarma, hace sonar la alarma, detiene el sonido alarma, recibir cuerda, entreotras. Centrmonos en estas funciones, que son las ms relevantes, las cuales semuestran en las siguientes figuras:

    muestra hora actual

    modificar hora actual

    programar alarma

    activar alarma

    dar cuerda al reloj

  • Los objetos: Mensajes entre clases 2 - 32

    Ahora le toca su turno. Qu crey, que lo habamos olvidado? Pues ni msfaltaba. Usted, el dueo de los objetos que hay dentro de la habitacin (o por lomenos eso es lo que aparenta), el propietario de la habitacin y es tambin unobjeto!. Tranquilo, no lo estamos ofendiendo, est bien que de vez en cuando sesienta el objeto de su novia, de sus amigos o amigas, pero no nos estamosrefiriendo a lo que usted en determinado momento pueda sentir, sino a lo queusted es desde el punto de vista del enfoque de objetos: tambin es un objeto.

    Observemos, usted tiene estructura? Usted tiene comportamiento? Claro ques! Usted tiene similares y por tanto puede estar agrupado en una clase? Claroque tambin!

    Entonces se definir una Clase Persona dentro de la cual est agrupado usted ytodas las dems personas. Identifiquemos cules podran ser algunos de losatributos que podemos mencionar de la clase Persona, a ttulo de ilustracin

    RelojDespertador

    marcacolor

    tipoMaterialtipoFuncionesnombre dueo

    horaAlarmaActualhoraActual

    mostrarHoraActualmodificarHoraActual

    programarAlarmaactivarAlarmadarleCuerdasonarAlarma

  • Los objetos: Mensajes entre clases 2 - 33

    para nuestro ejemplo: nombres, apellidos, numero de identificacin, ocupacin,programas de televisin favoritos, hobbies, edad, fecha de nacimiento, estadocivil, hora promedio de levantarse, tipo de sangre, estatura, sexo, hora promediode acostarse, color de cabello, color de ojos, ..... y podramos seguir con unalista mayor, pero por ahora solo nos ocuparemos de algunos de los atributosanteriores. Debe anotarse que, todos los anteriores atributos, tomando valoresen usted, lo caracterizan como un objeto nico, estamos de acuerdo?.

    Ahora examinemos o tratemos de identificar, a ttulo de ilustracin para nuestroejemplo, algunas funciones que realiza usted como objeto de la clase Persona.

    Usted se levanta temprano, se baa, desayuna, se viste, se sube a un bus o a uncarro, asiste a clase, presenta exmenes, almuerza, va al bao a hacer susnecesidades diarias, conversa con sus compaeros, se deleita viendo chicas enla universidad, de nuevo se sube a un bus o a un carro, grita al conductor delbus por frenar despiadadamente o grita a la persona que conduce el carro de allado por no saber manejar, entra a su casa, saluda a su familia, estudia o repasalo que vio en el da de hoy en sus clases, cena con su familia, se acuesta en sucama, prende el televisor, cambia mil veces de canal hasta que encuentra quver mientras empieza su programa favorito, sintoniza su programa favorito, sere lo ms duro que puede, patalea encima de la cama, se pone la almohadaencima, habla solo y en voz alta, vuelve a cambiar mil veces de canal una vezsu programa favorito se ha acabado, re-programa el reloj despertador porquemaana tiene un parcial a las 7:00 a.m., apaga el televisor, apaga la luz, secepilla los dientes, le da las buenas noches a su familia, se acuesta, se duerme,ronca y hasta habla dormido.

    PersonaNumeroDeIdentificacin

    fechaDeNacimientonombre

    programasDeTVFavoritos hobbies

    horaDeLeventarse horaDeAcostarse

    colorCabello colorOjoslevantarsebaarse

    asistirAClasealmorzarconversar

    gritarcenar

    encenderTV cambiarCanalTelevisor

    sintonizarCanalTVapagarTV

    encenderGrabadoraapagarGrabadora

    programarRelojDdespertador apagarTV

    apagarLuzcepillarDientes

    darBuenasNochesacostarsedormirse

    Persona programandoRelojDespertador

  • Los objetos: Mensajes entre clases 2 - 34

    Este es un corto resumen de cules pueden ser las funciones que usted realiza enun da cualquiera y en general, as que para el ejercicio que hemos venidohaciendo se tomarn las ms significativas dentro del ejemplo y por favor, noreniegue si omitimos alguna.

    La Clase Persona, en la cual est agrupado el objeto Usted, se define de lamanera indicada en la siguiente figura. Para efectos prcticos, los atributos ymtodos de la clase Persona, presentes en esta figura, son los que se tendrn encuenta en esta unidad.

    Hasta ahora no se ha mencionado que los mtodos que conforman elcomportamiento de una Clase, pueden clasificarse en dos grandes grupos:

    1. Mtodos que implementan las funciones propias de la clase2. Mtodos que implementan funciones que dependen de sucesos o eventos

    generados por otros objetos.

    Por ejemplo, en el caso de la clase Persona, mtodos que implementenfunciones propias de la clase son levantarse, baarse, almorzar, cenar, acostarse,dormir, encenderGrabadora, sintonizarCanalTV, entro otros, puesto que sonactividades propias de la Persona y que se dan como una rutina en su vida, esdecir, las realiza independiente del da y del lugar.

    Los mtodos que implementan funciones que dependen de sucesos o eventosgenerados por otros objetos, como conversar, gritar, rer, etc. Por ejemploconversar, depende de sucesos o eventos generados por otros objetos, ya que siusted va a la cafetera despus de salir de clase y no se encuentra con ningunode sus amigos en ella, entonces no puede conversar. Para ello necesitaencontrarse con alguien de sus conocidos o simplemente contestar gustoso elcoqueteo de alguna chica que est esperando que le pregunte algo para iniciarconversacin con usted.

    En el caso de gritar, si el conductor del bus al que se mont no es tan salvaje yes ms recatado para manejar, o el conductor que va en el carro de enseguidafuera ms consciente al manejar, entonces usted no tendra que gritar. Grit porun estmulo externo, porque algo le molest y quiso que quin produjo suincomodidad se diera cuenta de su disgusto, lo cual fue una reaccin a unsuceso o evento generado por el conductor del bus o por el conductor del carrode enseguida.

    En el caso de rer, si la escena que estn pasando en su programa favorito no esde su total agrado o no le causa chiste en el momento, usted no se reira, pero si

  • Los objetos: Mensajes entre clases 2 - 35

    la escena le recuerda un hecho gracioso en su vida (porque hay un dicho queafirma: el que se re solo de sus picardas se acuerda) entonces as sea solo,usted se carcajea hasta que no pueda ms. Luego tuvo que observar una escenaque le pareci graciosa en su programa favorito y que de inmediato hizo que sucuerpo reaccionara para producir risa.

    Entonces hay mtodos que son propios de la clase y se realizan porque hacenparte de su rutina y otros mtodos que solo se realizan dependiendo de lo quepase con otros objetos y cmo afecten stos a la clase.

    Usted como objeto que pertenece a la clase Persona y como dueo de lahabitacin y de los objetos que hay dentro de ella, es quien de alguna maneralos utiliza y los organiza, es decir, es quien en primer lugar, se relaciona conellos, entendiendo por relaciona, en este caso, utilizar .

    Usted como objeto se relaciona con los objetos parDeZapatosMocasnNegros,ya que con ellos usted se calza, usted se relaciona con su objetolmparaDemesaDeNoche del lado izquierdo, porque usted es quin la enciendey la apaga. Lo mismo pasa con su grabadora y con su televisor. Usted serelaciona con el objeto relojDespertador porque usted es quien lo programa paraactivar la alarma. Con su cama usted se relaciona porque en ella es donde ustedduerme y as podemos seguir mencionando las relaciones que usted tiene concada uno de los objetos de la habitacin. Por eso, teniendo en cuenta su relacinen el caso de la grabadora y el televisor, incluimos los mtodos encenderTV yencenderGrabadora y apagarTV y apagarGrabadora, por ejemplo, en ladefinicin del comportamiento de la clase Persona. Ya que Usted es elencargado de hacerlo.

    Cuando usted enciende el objeto televisor, usted debe cojer su objetocontrolRemotoDeTv y presionar el botn de encendido (Power). Como se va atrabajar ahora con el objeto controlRemotoDeTv entonces se definir enseguida tanto los atributos, como los mtodos de la clase ControlRemoto.

    Atributos ClaseControlRemoto

    Valores de atributos para el objetoControl RemotoDeTv

    marca Pony

    conjuntoPilas Pila 1, Pila 2

    conjuntoBotones Power, Muting, Sep, Display,TV/Video, 1, 2, 3, 4, 5, 6, 7, 8, 9,SubirCanal, BajarCanal, subirVolumen,BajarVolumen

  • Los objetos: Mensajes entre clases 2 - 36

    Atributos ClaseControlRemoto

    Valores de atributos para el objetoControl RemotoDeTv

    ...entre otros...

    Por ahora solo nos van a interesar los mtodos que hemos identificado en elgrfico anterior.

    Para nuestro ejemplo, suponemos que usted iba a presionar el botn Power desu controlRemoto. En ese instante usted se est relacionando con el objetocontrolRemoto, el que a su vez se est relacionando con el objeto televisor. Enotras palabras, usted est dando una orden al objeto controlRemoto para queencienda el objeto televisor. El objeto controlRemoto a su vez, est enviandouna orden al televisor para que se encienda y aparezca la imagen en la pantalla.

    Hay una relacin entre ms de dos objetos que en este caso podramos decir quees una orden. Esta orden o esta relacin, lo que hace desde el momento en queusted presiona el botn Power es, activar el mtodo encenderTV del objetocontrolRemoto, mtodo que entonces activa el mtodo desplegarImagen oencenderTV del objeto Televisor.

    Cuando usted va a cambiar el canal actual que se est visualizando en eltelevisor, entones oprime el botn correspondiente al canal, por lo tanto ustedest activando su televisor mediante el objeto controlRemoto. Vemos que estemtodo requiere de un suceso o evento de otro objeto para activarse, luegopodemos clasificarlo tambin como del tipo 2 o de los que requieren de unsuceso o evento generado por otro objeto, tal como se explic antes.

    ControlRemotomarca

    conjuntoPilasconjuntoBotones

    EnviarSealEncenderTelevisorenviarSealApagarTV

    enviarSealCambiarCanalTVsubirVolumenbajarVolumenactivarMutingactivarVideo

    activarModoSleep

  • Los objetos: Mensajes entre clases 2 - 37

    Con esto se puede entender que, existen objetos que se relacionan con otros pormedio de rdenes y que esas rdenes se dan a travs de mensajes. Esosmensajes entonces activan mtodos que requieren de ellos para comenzar arealizar la operacin que representan y que esos mensajes activan mtodos quese pueden clasificar dentro del tipo de aquellos mtodos que requieren de unsuceso o evento producido por otro objeto para poder activarse.

    Ahora imagine que usted estaba viendo su programa favorito y que se haterminado. Usted mira su objeto reloj despertador y son las 11:00 p.m., yrecuerda angustiosamente que maana tiene un parcial a las 7:00 a.m. Entoncesse pone su pijama, apaga el objeto televisor a travs del botn Power de suobjeto controlRemoto, apaga su objeto lmparaDeMesaDeNoche, se acuesta ensu objeto cama, se arropa con su objeto cobija porque est haciendo mucho froy activa su mtodo dormirse y muy posiblemente active su mtodo soar. Quetenga un feliz descanso, que amanezca como nuevo y que le vaya muy bien ensu parcial. Maana ser un nuevo da, mucha suerte!

    La Programacin Orientada a ObjetosLa Programacin Orientada a Objetos (POO) es un paradigma de laprogramacin de computadores. Cuando se habla de paradigma de

    control remoto

    televisor

    persona

  • Los objetos: La Programacin Orientada a Objetos 2 - 38

    programacin se hace referencia al conjunto de teoras, estndares, modelos ymtodos que permiten organizar el conocimiento, proporcionando un mediobien definido para visualizar el dominio e implementar en un lenguaje deprogramacin la solucin de un tipo de problema.

    El paradigma orientado a objetos se basa en el modelo objeto, que tiene comoobjeto de conocimiento o elemento principal el objeto, como se vi de manerainformal en la identificacin, descripcin y caracterizacin de algunos de losobjetos de su habitacin.

    Como ya se ha establecido a partir de los ejemplos dados, un objeto es unaentidad que contiene en s misma los datos (valores de sus atributos) que laidentifican y los algoritmos (mtodos) que permiten manipular dichos datos.

    Los diferentes tipos de paradigmas de programacin, requieren de una manerapropia de pensar y enfocar el problema a resolver, pues cada uno de ellos tieneun marco de referencia conceptual que permite modelar el dominio delproblema.

    Anterior al paradigma de objetos, es el paradigma algoritmico o de procesos, elcual se fundamenta en los procesos o funciones que se llevan a cabo en elmundo real dentro del dominio de un problema dado. Concretamente se refierea lo que le entra, qu y cmo maneja dichas entradas y qu sale o produce unproceso determinado.

    Para la programacin tradicional se puede decir que el marco de referenciaconceptual lo sustentan los procesos, algoritmos o bloques de construccinmodular, cuya abstraccin va de lo general a lo particular, mientras que la POOtiene como marco de referencia conceptual el objeto, el cual pertenece a unaclase que agrupa a todos aquellos compaeros suyos que presentan las mismascaractersticas y comportamiento similar.

    La manera tradicional de pensar un programa es verlo como una lista deinstrucciones que le indican a un computador qu hacer. Bajo el enfoque deobjetos un programa es un objeto, que a su vez es un conjunto de objetos queoperan juntos en formas predefinidas para realizar las tareas que les han sidoasignadas. Mediante el enfoque de objetos, su programa est compuesto departes diferentes llamados objetos, y en el enfoque algoritmico el programa estacompuesto de funciones, procedimientos, subprogramas.

    En contraste con la programacin tradicional, la programacin orientada aobjetos utiliza objetos como sus bloques lgicos de construccinfundamentales, y no procesos. Cada objeto es una instancia de una clase y lasclases estn relacionadas con otras clases por medio de relaciones de herencia.

  • Los objetos: La Programacin Orientada a Objetos 2 - 39

    En la programacin orientada a objetos, la solucin a un problema se construyesobre la base de clases del domino de este, sus atributos, mtodos y lasrelaciones entre estas.

    Para un lenguaje el soportar herencia significa que es posible expresarrelaciones entre clases. Si un lenguaje no ofrece soporte directo parala herencia entonces no es un lenguaje completamente orientado a objetos.

    Una de las ventajas que presenta el paradigma de objetos con respecto alalgoritmico, es la facilidad que brinda, a travs de sus herramientas, deconcebir, analizar, modelar, disear e implementar el mundo real de manera fiela como se presenta en la realidad. En otras palabras, el paso que hay desde laconcepcin y asimilacin del problema hasta la implementacin del mismo, esun proceso que se hace de manera casi natural.

    Al facilitar la representacin del dominio del problema de una manera fiel a larealidad, uno de los mayores logros de este paradigma lo constituye la facilidadcon que se puede traducir el modelo de objetos, plasmado en papel, al cdigo enun lenguaje de programacin orientado a objetos. Es decir se simplifica la etapafinal del desarrollo de programas, o sea la programacin en s.

    En ese sentido, las tcnicas orientadas a objetos, por su naturaleza mismaproporcionan mejoras y metodologas adecuadas para construir sistemas desoftware complejos, a partir de partes de cdigo llamadas componentes lo cualhace que el software sea modularizado y reutilizable.

    El concepto de reutilizacin, desarrollado bajo el enfoque de objetos, lepermite al programacin utilizar cdigo que ya se ha implementado y probado,agregandole en caso de requerirse algunas carctersticas, o modificandole osobreescribiendo mtodos sin necesidad de desde cero. Se facilita y se mejoraconsiderablemente la labor de programacin, haciendola ms eficiente yproductiva.

    Propiedades de la Programacin Orientada a ObjetosEl paradigma orientado a objetos, posee unas caractersticas que lo definen y lodiferencian de los dems paradigmas. Esas caractersticas estn definidas por laspropiedades ms importantes que posee, las cuales son:

    AbstraccinEs la propiedad que permite distinguir a un objeto de los dems, observando enel objeto sus caractersticas y su comportamiento, pensando ms bien en qu esel objeto y no, cmo es traducido ese objeto en cdigo a la hora de programarlo.

  • Los objetos: La Programacin Orientada a Objetos 2 - 40

    El ejercicio hecho en la seccin anterior, en cuanto a encontrar objetos en suhabitacin y distinguir de los objetos que hay en la habitacin, cuales eranrelevantes para ese ejemplo y cmo estaran esos objetos agrupados en clasessegn sus caractersticas similares, es lo que se denomina Abstraccin.

    La abstraccin consiste en la identificacin de objetos dentro del dominio delproblema que se est estudiando, identificar cmo esos objetos estn agrupadosen clases segn las similitudes que ellos tengan, en cuanto a la estructura y elcomportamiento que posean, as como de las relaciones entre ellos.

    EncapsulamientoEs la propiedad que permite incluir en un mismo espacio los elementosidentificables en un objeto, los que constituyen su informacin (los datos oatributos) y las operaciones (los mtodos o funciones) que operan sobre esainformacin.

    El encapsulamiento es la propiedad que permite agrupar en una clase laestructura y el comportamiento de los objetos que estn representados por ella.En una clase se hallan inmersos los datos y los algoritmos que manipulan losdatos de los objetos agrupados en ella, es decir, dentro de la clase est todo loque requieren los objetos para existir como tales.

    En el caso de su habitacin, fue justamente definirles a las clases que se habanidentificado, los atributos que las caracterizan, as como los mtodos quecontienen y que van a manipular esos atributos. En el caso de la programacin,el encapsulamiento es lo que permite que tanto la estructura como elcomportamiento se encuentren dentro del mismo cuerpo de cdigo de una clasedeterminada.

    ModularidadEs la propiedad que caracteriza a las aplicaciones de software, que se puedendefinir como la agregacin de partes ms pequeas (componentes o mdulos),donde cada una de esas partes es lo ms independiente posible de las otras y dela aplicacin en su conjunto.

    La modularidad en el cdigo de una aplicacin, consiste en que sta tengamdulos de cdigo independientes entre s, que todos en conjunto hacen que laaplicacin funcione correctamente. En el caso en que se requiera actualizar unmdulo o un componente, es decir una parte del programa, entonces solo serequerir modificar el mdulo respectivo y no hay necesidad de hacer cambiosen otras partes del cdigo de la aplicacin. Esto facilita en alto grado, el procesode mantenimiento de una aplicacin o programa.

  • Los objetos: La Programacin Orientada a Objetos 2 - 41

    Con respecto a los objetos identificados en su habitacin, cada clase en s, consu estructura y comportamiento correspondiente representa un mdulo, dentrodel problema y un mdulo tambien para el caso del software, una vez estimplementado.

    Jerarquizacin Es la propiedad que permite organizar en un problema determinado, las clasesque se estn identificando dentro de una jerarqua existente, dentro de unanueva. Cada clase una vez implementada llega a ser parte de una jerarquadeterminada.

    Se presenta la jerarquizacin cuando se define una superclase y a partir de stase definen clases que vienen siendo sus subclases y a stas se le definensubclases tambin y as sucesivamente, hasta llegar a clases particulares oespecficas, que contienen tanto atributos como metodos propios para unageneralidad de objetos.

    En el caso de los objetos de su habitacin, se presenta la jerarquizacin cuandose cre una superclase ParDeZapatos, de donde ParDeZapatosMocasn,ParDeZapatosTenis y ParDePantuflasRegaloDeAbuela son subclases, lo que seest haciendo es ir organizando las clases dentro de una jerarqua que encabezala clase ParDeZapatos. En estos casos, las subclases ParDeZapatosMocasn,ParDeZapatosTenis y ParDePantuflasRegaloDeAbuela se derivan de la claseParDeZapatos y al ser derivadas, ellas heredan la estructura y elcomportamiento de su superclase ParDeZapatos.

    Para el objeto su Grabadora, se observa que se compone de objetos como losdiferentes botones, la antena, el cable, las caseteras, etc., y se dijo que seestableca una relacin de composicin, all tambin se est aplicando lapropiedad de jerarquizacin, puesto que la composicin permite organizar ydeterminar una jerarqua de objetos que la encabeza el objeto compuesto.

    Teniendo en cuenta el caso de la jerarqua definida por la clase ParDeZapatospor un lado, y por el otro la Grabadora, se pueden distinguir dos clases dejerarquas:

    Jerarqua de clases o de generalizacin/especializacin.

    Determinada por una relacin es-un (is-a), entre clases. Se le denominatambin generalizacin/especializacin, porque cuando se crea una subclasede una clase, se est especializando la superclase por medio de su clasederivada, es decir, se est agregando ms estructura o ms comportamientoque el que posee la superclase. En otras palabras, se est realizando unproceso de especializacin de caractersticas. De la misma manera, si se

  • Los objetos: La Programacin Orientada a Objetos 2 - 42

    observa el sentido contrario, es decir, partir de las subclases para encontrarla superclase, lo que se est haciendo es encontrar una clase ms general quelas cubra a todas. Se est llevando a cabo un proceso de generalizacin decaractersticas. Tal es el caso de la clase ParDeZapatos que fue generalizadaa partir de las clase ParDeZapatosTenis y ParDeZapatosMocasn.

    Por ejemplo, la clase Avioneta es un tipo de la clase Aeronaves, una claseManzana es un tipo de la clase Frutas, la clase Par de Zapatos Tenis es untipo de la clase Par de Zapatos, un BlueJean es un Pantaln, un Gato es unMamfero, una Rosa es una Flor, etc. Donde Aeronaves, Frutas, Par deZapatos, Pantaln, Mamfero, Flor son las superclases a partir de las cualesse pueden derivar las subclases indicadas.El perrito de nombre Lucas, que tiene su vecina, es de la raza PincherMiniatura, que a su vez pertenece a la clase de Canes, que son Carnvoros,que son Mamiferos, que son Vertebrados, que son SeresVivos. Es decir queel perrito Lucas, hereda todas las caractersticas de los SeresVivos,Vertebrados, Mamiferos, Carnvoros, Canes y PincherMiniaturas.

    La definicin del objeto perritoLucas, permitira que se hereden todas lascaracteristicas y metodos de todos sus ancestros o superclases en la jerarquade clases anotada. Sin embargo se le aadirn aquellos atributos o mtodospropios del objeto perritoLucas. Por ejemplo el perritoLucas tiene un collarde dientes de tiburn, lo cual es un atributo propio de ese perritoLucas y deninguno otro. As mismo tiene un mtodo propio, que solo le pertenece a ely es el de esconderse dentro del microondas. Tambien es un mtodo propiodel peritoLucas y posiblemente de ningn otro perrito.

    A este tipo de jararqua tambin se le denomina Herencia, ya que alpertenecer las clases a una jerarqua determinada, en la cual una clase poseeuna superclase o clase padre, de la cual toma estructura y comportamiento,es como si de alguna manera estuviera heredando dichas caractersticas.

    La jerarqua de objetos o de agregacin:

    Determinada por una relacin parte de (part of) entre objetos y tambinllamada relacin de agregacin o relacin de composicin. Se denominatambin jerarqua de agregacin porque cuando se define que un objeto estcompuesto de otros, es como si se le agregaran objetos al objeto compuesto.Cada una de las partes que se agregan se denominan agregados. Este tipo de jerarqua se define en la declaracin de atributos de la clase a lacual pertenece el objeto compuesto. Cada uno de los objetos agregados delobjeto compuesto deben aparecer como atributos en la definicin de la clasede ste. Por eso se denomina tambin jerarqua de objetos, porque estarelacin solo se hace clara cuando se tiene un objeto y se pueden ver sus

  • Los objetos: La Programacin Orientada a Objetos 2 - 43

    componentes, mientras que en la relacin de generalizacin/especializacinno hay necesidad de tener un objeto para ver claramente la relacin.

    Por ejemplo, el objeto antena es parte de su objeto grabadora, el objetobotnPlayCasete es parte de su objeto Grabadora, el lectorCD es parte desu objeto grabadora, el objeto boton CambioFuncion es parte de su objetograbadora y as sucesivamente con todos los objetos agregados del objeto sugrabadora. El objeto collarDeDientesDeTiburon, es parte de su objetoperritoLucas.

    Para el caso del objeto computador personal, el objeto teclado es parte de suobjeto computador, el objeto monitor es parte de su objeto computador, elobjeto CPU es parte de su objeto computador y as sucesivamente con todoslos objetos agregados a su objeto computador.

    PolimorfismoEs la propiedad que indica que un elemento puede tomar diferentes formas.Para el caso de la programacin orientada a objetos, el elemento puede ser unatributo, un mtodo o un operador. Esta propiedad permite hacer referencia bajola misma forma a elementos de diferentes clases y a operaciones que, teniendoel mismo nombre pueden realizarse de diferentes formas dependiendo de laclase que est realizando la operacin.

    Desde el punto de vista de los mtodos, permite que objetos diferentes puedanresponder de modo diferente al mismo mensaje que activa un mtodo,produciendo acciones o resultados totalmente diferentes. Desde el punto devista de los operadores, se puede observar cmo un operador representa osignifica ms de una accin.

    Cuando se habla del polimorfismo de mtodos y operadores, se est hablandode una clase de polimorfismo que se llama sobrecarga, especficamente sehabla de sobrecarga de mtodos, que se define como el uso de varios mtodoscon el mismo nombre y cuyo contenido es diferente, as como al uso de unoperador que dependiendo del tipo de datos sobre el que acta realiza unaoperacin diferente.

    Cuando se habla de un operador o un mtodo que con el mismo nombre puedeutilizarse para que acte de manera diferente dependiendo del tipo de datos queest utilizando, se habla de un tipo de polimorfismo que se denominaSobrecarga. Por ejemplo, en Java un caso muy comn es el del operador `+ .Usted puede utilizar indistintamente este operador para sumar nmeros y paraconcatenar cadenas, ya que el operador est sobrecargado de tal manera quecuando usted lo utiliza Java sabe qu operacin (suma o concatenacinrespectivamente) debe realizar dependiendo del tipo de los argumentos a partir

  • Los objetos: La Programacin Orientada a Objetos 2 - 44

    de los cuales se est haciendo la invocacin. Se pueden declarar mtodos con elmismo nombre pero con invocaciones distintas que difieren por sus firmas, lasque consisten en numero y tipos de sus argumentos.

    Las siguientes son las diferencias que pueden presentar mtodos con el mismonombre:

    La cantidad de argumentos que toman

    El tipo de datos u objetos de cada argumento

    Estas dos aspectos conforman lo que se llama firma o signatura del mtodo. Eluso de varios mtodos diferentes con el mismo nombre se le denominasobrecarga de mtodos.

    La sobrecarga de mtodos elimina la necesidad de mtodos totalmente distintosque en esencia hacen lo mismo. Tambin hace posible que los mtodos secomporten de manera distinta basados en los argumentos que reciben.

    Para crear un mtodo sobrecargado se crean distintas definiciones del mtodoen una clase, cada una con el mismo nombre pero con diferentes listas deargumentos. La diferencia puede ser el numero, el tipo de argumentos o ambos.

    PersistenciaEs la propiedad que permite a un objeto sobrevivir a la ejecucin del programaque lo crea y lo manipula. Tiene que ver con el almacenamiento y captura de losobjetos que manipula un programa determinado, es decir, el objeto sigueexistiendo as el programa haya terminado su ejecucin.

    Todas las anteriores propiedades de la Programacin Orientada a Objetos, setratarn en detalle en las siguientes unidades, dentro del contexto del lenguajede Programacin Java.

    Algunas definiciones del enfoque de objetos

    ClaseEs la descripcin de un conjunto de objetos, que poseen las mismascaractersticas. Cuando se habla de caractersticas se habla de estructura (datos)y comportamiento (mtodos u operaciones).

    Como ya se indic antes para el caso de las clases que agrupan objetos de suhabitacion, particularmente aquellas que tienen mtodos, como en el caso de lagrabadora, o el control remoto de su televisor, una clase posee nombre,estructura y comportamiento.

  • Los objetos: La Programacin Orientada a Objetos 2 - 45

    En una clase estn agrupados los objetos que poseen los mismos datos y secomportan de manera igual. Dicho de otro modo, una clase es una declaracinde un tipo de datos, en este caso, un tipo de objeto. Al ser tratada una clasecomo un tipo de datos, una clase viene a ser como una plantilla a travs de lacual se pueden construir objetos de cierto tipo o de ciertas caractersticas. Escomo si una clase se utilizara como un modelo por medio del cual se creanobjetos cada vez que se requieran dentro del programa, no se necesitaraentonces estar repitiendo las mismas partes de cdigo cada vez que se van acrear objetos similares, simplemente se define una clase con las caractersticasgenerales de los objetos que se van a crear y se crean objetos a partir de ella. Esms, si un objeto posee las mismas caractersticas pero adems unasadicionales, se puede extender la clase, es decir, se puede crear una clase nuevaque sea subclase de dicha clase y aadir la estructura y/o el comportamientodeseado, ahorrando tambin as, el tener que repetir cdigo que ya estpredefinido en una clase existente. Esta caracteristica de heredar de unasuperclase es lo que se ha definido anteriormente como herencia.

    Cada vez que se utiliza la clase como plantilla o modelo para crear un objeto, seest creando una instancia. En ese sentido los trminos instancia y objeto serefieren a lo mismo.

    Si se dice que una clase es como la declaracin de un tipo de datos, un objetovendra a ser una variable de ese tipo. En este punto radica la diferencia entrela definicin de clase y objeto, la clase se el tipo de datos, mientras que elobjeto es la variable real, la instancia de la clase. Esta diferencia es similar a laque existe en otros paradigmas de programacin con respecto a tipo de dato yvariable.

    De esta manera se puede entender que, una clase, es una especie de plantilla opatrn que se utiliza para crear mltiples objetos con caractersticas similares.

    AtributoEs una caracterstica de un objeto, que ayuda a definir la estructura de la claseque representa al objeto y que lo hace diferenciar de otros objetos. Un atributose representa en la notacin de la programacin orientada a objetos de lasiguiente manera:

    tipo de dato nombreAtributo;

    tipo de dato hace referencia los tipos posibles que puede tomar un atributo, porejemplo entero, carcter, logico, de punto flotante, etc. Estos tipos se definen ydescriben en la siguiente unidad.

  • Los objetos: La Programacin Orientada a Objetos 2 - 46

    nombreAtributo es el identificador del atributo, el cual se expresa con la palabrao las palabras que lo identifican. La primera letra de la primera palabra enminscula y las primeras letras de las palabras siguientes en mayscula, lasdemas en minuscula.

    Un atributo toma en un objeto, un valor del rango que le ofrece el tipo de datode su definicin. En la clase se definen el conjunto de atributos que constituyenla estructura de la clase y esos mismos atributos toman valores cuando se creaun objeto a partir de esa clase, por ejemplo para los objetos CD FabulososCadillacs y CD Aterciopelados, estos objetos toman los valores de los atributosque los diferencian el uno del otro.

    Las instancias botnImprimir y botnGuardar de la clase boton y que puedenestar siendo usadas en un paquete de sofware cualquiera, toman valores para losatributos de dichas clases que los identifican de manera nica: la etiqueta delprimero es Imprimir, mientras la etiqueta del segundo es Guardar. Laetiqueta hace referencia al letrero que acompaa el respectivo boton y que es unatributo de esta clase.

    El conjunto de valores que toman los atributos para un objeto en un momentodado es lo que se denomina estado del objeto.

    MtodoEs la implementacin de un algoritmo o proceso que representa una operacin ofuncin que una clase realiza. El conjunto de mtodos que representan lasfunciones que una clase realiza determinan el comportamiento de dicha clase.Al definir cules son los mtodos que una clase realiza, es necesario tener encuenta cules son las responsabilidades que los objetos de dicha clase debentener, o sea qu funciones deben realizar.

    Un mtodo ofrece entonces, el comportamiento que un objeto presenta cuandole es enviada una seal o un mensaje, al cual debe reaccionar.Los mtodos sepueden clasificar en dos categoras:

    Mtodos que la clase realiza por s misma y que son inmanentes a sudefinicin. Dentro de este grupo se pueden tener a su vez dos tipos deoperaciones:

    Operaciones que manipulan los datos del objeto de alguna forma especfica, porejemplo asignan un valor, cambian un valor, etc.

    Operaciones que realizan un clculo o proceso especfico.

    Mtodos para que los objetos puedan reaccionar ante eventos del medio

  • Los objetos: La Programacin Orientada a Objetos 2 - 47

    externo. Especficamente activados por medio de mensajes originados porotros objetos.

    Un mtodo se representa en la notacin de la programacin orientada a objetosde la siguiente manera:

    tipo nombreMetodo (lista argumentos) ;

    tipo hace referencia al tipo de datos del valor que retorna, en caso de queretorne algn valor. Si no retorna valor alguno se escribe void.

    nombreMetodo es el identificador que representa el nombre dado al mtodo. Laprimera letra de la primera palabra en minscula, y las primera letras de laspalabras siguientes en mayscula, las dems en minscula.

    lista argumentos, representa los identificadores de los elementos que entran almtodo en la definicin de este. Los argumentos se separan con comas, y paracada argumento se debe especificar su tipo y su identificador.