Vous êtes sur la page 1sur 11

Programacin IV

Tema 2 Concepto de Objetos y Clases - La POO

Concepto de Objeto
Si miramos a nuestro alrededor casi todo puede ser considerado un objeto. El dinero, un helicptero, una bicicleta, un coche. Los objetos representan cosas, simples o complejas, reales o imaginarias. Una antena parablica es un objeto complejo y real. Un objeto Profesor, representa los detalles y actividades de una persona, no es esa persona en s misma, es pues, imaginario. Una frase, un nmero complejo, una receta y una cuenta bancaria tambin son representaciones de cosas intangibles. Todas son objetos.

Algunas cosas no son objetos, sino atributos (valores o caractersticas de objetos), como el color, el tamao y la velocidad. Los atributos reflejan el estado de un objeto, la velocidad del objeto avin, o el tamao de un objeto edificio. Normalmente no tiene sentido considerar la velocidad como un objeto.

En trminos mas generales, un objeto es una abstraccin conceptual del mundo real que se puede traducir a la representacin de un modelo de anlisis y diseo OO o a un lenguaje computacional o de programacin OO. Los objetos tienen una funcionalidad o comportamiento definido, y se espera que siempre se comportarn de acuerdo a las especificaciones que estn definidas para ellos. Por ejemplo, el cambiador de CD nunca provocar que el coche acelere, y pisar el pedal del freno no colgar el telfono. Esta es la forma de gestionar la complejidad en la vida real, que trasladada al campo del software, funciona igual de bien. Es as que traducimos el concepto de objeto en el mundo real al de la informtica como una entidad provista de propiedades (datos, atributos) y comportamiento (funcionalidad, mtodos).

Propiedades de los Objetos


Desde un punto de vista ms formal, puede decirse que un objeto queda definido por las siguientes propiedades: Estado (atributos) Comportamiento (operaciones) Identidad (propiedad que lo distingue de los dems objetos)

Atributos color: rojo velocidad: 200 km/h

Licenciatura en Sistemas de Informacin

Prof. Cristina Greiner

Programacin IV

Tema 2

El estado de un objeto define la situacin del mismo en un momento establecido en el tiempo. Los valores que toma un objeto se almacenan en variables internas llamadas atributos.

El comportamiento describe las acciones y reacciones de un objeto. Es la manera en que responde a mensajes o estmulos recibidos, bsicamente enviando mensajes a otros objetos, respondiendo al que le enva el mensaje o cambiando de estado. Las distintas formas de respuesta se denominan mtodos, y corresponden a procedimientos o funciones. Se dice que el comportamiento indica lo que el objeto sabe hacer.
La identidad es lo que diferencia a un objeto de todos los otros del mismo tipo. Hablando en trminos computacionales, la identidad del objeto se puede interpretar como la referencia, es decir los valores concretos que toma un objeto. Dos objetos son distintos incluso an en el caso de que los valores de todos sus atributos (p. ej. nombre y tamao) coincidan. Dos manzanas pueden ser totalmente idnticas pero no por eso pierden su identidad: nos podemos comer una u otra. Los atributos y los mtodos son las propiedades que dan estructura al objeto. Atributos: todo objeto puede tener cierto nmero de atributos. En POO los atributos corresponden a las clsicas "variables" de la programacin estructurada. Los atributos de un objeto pueden tener un valor nico o pueden contener un conjunto de valores ms o menos estructurados (matrices, vectores, listas, etc.). Adems, los valores pueden ser de cualquier tipo (numrico, alfabtico, etc.), o pueden a su vez ser objetos. Sin embargo, existe una diferencia con las "variables", y es que los atributos se pueden heredar de unos objetos a otros. En consecuencia, un objeto puede tener un atributo de maneras diferentes: o Atributos propios: estn creados dentro de la cpsula del objeto. o Atributos heredados: estn definidos en un objeto diferente, antepasado de ste (padre, abuelo, etc.). A veces estos atributos se llaman atributos o variables miembro, porque el objeto las posee por el mero hecho de ser miembro de una clase.

Mtodos: Los mtodos especifican la forma en que se manipulan y controlan los datos de un objeto. Los mtodos en un tipo de objeto slo hacen referencia a la estructura de datos de ese tipo de objeto. No deben tener acceso directo a las estructuras de datos de otros objetos. Para utilizar la estructura de datos de otro objeto, deben enviar un mensaje a ste.
Ejemplo: un mtodo asociado con el tipo de objeto factura podra ser aquel que calcule el total de la factura. Otro podra transmitir la factura a un cliente. Otro podra verificar de manera peridica si la factura ha sido pagada y, en caso contrario, aadir cierta tasa de inters. El mtodo es una operacin que realiza el acceso a los datos. Podemos definir mtodo como un programa procedimental o procedural escrito en cualquier lenguaje, que est asociado a un objeto determinado y cuya ejecucin slo puede desencadenarse a travs de un mensaje recibido por ste o por sus descendientes. Son sinnimos de 'mtodo' todos aquellos trminos que se han aplicado tradicionalmente a los programas, como procedimiento, funcin, rutina, etc. Sin embargo, es conveniente utilizar el trmino 'mtodo' para que se distingan claramente las propiedades especiales que adquiere un programa en el entorno POO, que afectan fundamentalmente a la forma de invocarlo (nicamente a travs de un mensaje) y a su campo de accin, limitado a un objeto y a sus descendientes.

Objeto y encapsulacin
Un objeto es una unidad que combina datos (atributos) y las operaciones (mtodos) que operan sobre esos datos. Los objetos encapsulan sus operaciones y atributos. Encapsulacin es el trmino de orientacin a objetos que describe la vinculacin de unas operaciones y estado a un objeto particular. Est ntimamente relacionada con la ocultacin de la informacin, definiendo qu partes de un objeto son visibles y qu partes estn ocultas. Esta propiedad permite asegurar que el contenido de la informacin y los detalles de implementacin de un UDT (User Data Type o Tipo de Dato definido por el Usuario1) estn ocultos al exterior. Si se desea
1

Un UDT es un tipo de dato que no est predefinido en el lenguaje utilizado. La ventaja es que el programador puede definir un tipo que se adapte a sus necesidades.

Licenciatura en Sistemas de Informacin

Prof. Cristina Greiner

Programacin IV

Tema 2

modificar los datos de un objeto, slo pueden utilizarse las funciones definidas que interactan con el mismo. Ninguna otra funcin puede acceder a los datos. Un objeto es un TAD al que se aaden caractersticas propias de la POO como la herencia, el paso de mensajes, el polimorfismo y la ligadura dinmica. Recordemos que un TAD es un tipo de dato definido por las operaciones que se pueden llevar a cabo sobre los elementos del mismo. Es decir, los TAD engloban dos conceptos: la representacin de los datos y las operaciones permitidas sobre ellos. Por ejemplo, los tipos de datos int tienen una forma particular de representacin, y las operaciones que soporta son por ejemplo la suma, resta, divisin, etc. Mientras que el tipo de datos char tiene otro modo de representacin (por ej el ASCII de 7 bits 128 caracteres), y una operacin por ejemplo puede ser concatenar. Los objetos tienen una interfaz pblica, que es la que indica su funcionalidad (qu estn dispuestos a hacer), y una representacin privada, que es la implementacin (cmo lo hacen). Esto permite ocultar la informacin que se desee al exterior. Haciendo una analoga con la industria automotriz, quien provee a una fbrica de automviles los equipos de audio, no suelen especificar cmo estn construidos los mismos. Slo deben asegurar una serie de conectores o interfaces que permiten su instalacin y una serie de caractersticas y funcionalidades a prestar. De este modo, el fabricante del equipo de audio puede realizar cambios en los circuitos internos sin necesidad de que el fabricante de autos deba modificar nada si se respetan las interfaces y las funcionalidades a prestar. Esto se logra porque el equipo de audio, desde el punto de vista de la fbrica de automviles, es una caja negra, que se testea cerrada, teniendo en cuenta solamente que cumpla con las prestaciones establecidas por un contrato, y que tenga las interfaces necesarias para conectarlo. Trasladando este concepto a la industria del software, se evita que el cliente pueda manipular los datos y las implementaciones de los mtodos en los objetos. Esto implica que se pueden usar las interfaces de los tipos de datos definidos por el programador, pero no la implementacin. De este modo, la interfaz se convierte en una especie de contrato entre las partes, que debe ser respetado. El ocultamiento implica separar el qu del cmo. Es decir, el cliente debe conocer qu hace el mdulo, pero no cmo lo hace. Las ventajas del ocultamiento son: permite cambios de implementacin impide violaciones de restricciones entre datos internos

Interfaces
La encapsulacin abarca la ocultacin de la informacin: Algunas partes son visibles (el interfaz pblico) Otras partes son ocultas (o privadas) Estas partes pblicas y privadas a menudo son llamadas miembros.

Miembros Pblicos: Los miembros pblicos (interfaz o mtodos) de una clase describen qu es lo que pueden hacer los objetos de esa clase. Miembros Privados: Los miembros privados de una clase describen la implementacin, el cmo lo hace.
En sistemas orientados a objeto puros, todo el estado es privado y slo se puede acceder a travs de operaciones del interfaz pblico. Por ejemplo, un mtodo frenar puede cambiar el estado del atributo velocidad. La ventaja de la ocultacin de los detalles de implementacin es que el objeto puede cambiar, y el interfaz pblico proporcionado ser compatible con el original. Entonces los programas que utilizaban el objeto pueden seguir funcionando sin alteracin alguna. Esto es extremadamente til al modificar cdigo, ya que se restringe la propagacin de cambios. Tambin se fomenta la reusabilidad, ya que el cdigo puede ser utilizado como una tecnologa de caja negra

Licenciatura en Sistemas de Informacin

Prof. Cristina Greiner

Programacin IV

Tema 2

(como los circuitos integrados en la industria electrnica). Desde el punto de vista econmico, esto representa una ventaja de indudable valor.

Interacciones entre Objetos: Mensajes


Los objetos contribuyen al comportamiento del sistema colaborando con otros objetos. Por ejemplo: El volante interacciona con el objeto intermitente El objeto acelerador interacciona con el objeto motor El modelado de objetos no slo modela los objetos en un sistema, sino tambin sus interrelaciones. Para realizar su tarea, un objeto puede delegar trabajos en otro. Este otro puede ser parte integrante de l o ser cualquier objeto del sistema. Los objetos interaccionan envindose mensajes unos a otros. El modo de envo de mensajes depende de la naturaleza de los objetos modelados. Los objetos interaccionan por paso de mensajes Un objeto enva un mensaje a otro El otro puede contestar, cambiar su estado, o reaccionar de la manera apropiada Los objetos slo pueden interaccionar a travs de su interfaz pblico Los mensajes son tratados por los mtodos del interfaz pblico del objeto que los recibe. Debido a las normas de encapsulacin y de ocultacin de la informacin, no hay otro modo de influir (es decir, comunicar) con un objeto. Tras la recepcin de un mensaje el objeto actuar. La accin puede ser el envo de otros mensajes, cambiar el estado, o hacer cualquier otra cosa apropiada para el objeto en su estado. Para que un objeto haga algo, se le enva una solicitud. Esta hace que se produzca una operacin. La operacin ejecuta el mtodo apropiado y, de manera opcional, produce una respuesta. El mensaje que constituye la solicitud contiene el nombre del objeto, el nombre de una operacin y, a veces, un grupo de parmetros o argumentos.
pila . introducir (34) objeto receptor mtodo invocado argumentos

Los objetos pueden ser muy complejos, puesto que pueden contener muchos sub-objetos, stos a su vez pueden contener otros, etc. Sin embargo, gracias a la propiedad de encapsulacin, la persona que utilice un objeto no necesita conocer su complejidad interna, sino la forma de comunicarse con l y la forma en que responde.

Concepto de Clase
Una clase es una descripcin de un conjunto de objetos (o tipo de objeto) con caractersticas comunes. Es una abstraccin que describe un grupo de instancias con propiedades (atributos) comunes, comportamiento (operaciones) comn, relaciones comunes con otros objetos y (lo que es ms importante) una semntica comn. As un caballo y un establo tienen los dos un costo y una edad, pero no es probable que pertenezcan a la misma clase. La agrupacin o clasificacin tiene que tener sentido para el problema en cuestin. Por ejemplo, una clase Transporte puede incluir objetos tren, objetos coche o incluso, objetos caballo. El hecho de que esos objetos funcionen de forma diferente es irrelevante para el problema que se intenta resolver. Si Transporte slo se preocupa del traslado de un sitio a otro, la implementacin subyacente no importa.

Licenciatura en Sistemas de Informacin

Prof. Cristina Greiner

Programacin IV

Tema 2

Una clase es similar a los tipos de datos de la programacin estructurada. La definicin de una clase no crea ningn objeto, de igual modo que una declaracin de variables, tampoco crea variables. Son modelos o plantillas que describen cmo se construyen ciertos tipos de objetos. Tambin se puede ver una clase como un molde, esquema, o un patrn que define la forma de sus objetos. O bien, como la estructura esttica que define qu esquema de estado y comportamiento van a tener los objetos y, a partir de ese esquema, dinmicamente durante la ejecucin de un programa, se van a ir creando objetos que pertenezcan a esa clase. Las Clases son entidades conceptuales que sirven para abstraer y modelar un Sistema. Los problemas se pueden modelar en los trminos especficos del dominio. Precisamente, una de las ventajas de la aproximacin orientada a objetos es que permite que el problema sea representado en trminos especficos del dominio. Esto permite a los diseadores construir modelos que se proyectan directamente en el problema de la aplicacin. Ejemplos: Sistema escuela Clase Libro Clase Pizarra Clase Tiza Clase Diploma Clase Borrador Sistema Administracin de hotel Clase Conserje Clase Habitacin Clase Cliente Clase Botones Clase Mucama La ventaja de crear modelos cercanos al dominio es que son fciles de comprender, hay menor probabilidad de cometer errores y descuidos, y los modelos pueden ser verificados por los usuarios que definen los requisitos.

Propiedades de una clase: Atributos y Funciones miembro


Una clase define atributos y comportamiento de un grupo de objetos de caractersticas similares.
Atributos: datos internos de los objetos, sobre los cuales se realizan las operaciones. Generalmente se ocultan al exterior. Un atributo es un dato contenido en todas las instancias de una clase. Cada atributo tiene un valor para cada una de las instancias. Varias clases pueden tener atributos comunes (p. ej. nombre, en las clases Persona y Calle) pero cada atributo debe ser nico dentro de una clase. Sin embargo, tambin existen atributos de clase, que son aquellos que tienen un nico valor para toda la clase. A veces se los llama atributos estticos. En Java se implementa anteponindoles la palabra static. Mtodo, operacin o funcin miembro: procedimientos y funciones que residen en el objeto y que determinan su comportamiento. Con el mismo criterio, existen los mtodos de clase, a los que se llama mtodos estticos. En Java se implementa anteponindoles la palabra static.

Licenciatura en Sistemas de Informacin

Prof. Cristina Greiner

Programacin IV

Tema 2

Instancias de una clase


Se pueden definir muchos objetos de la misma clase. Cada vez que se construye un objeto a partir de una clase, se crea lo que se llama una instancia de esa clase: Objeto = instancia de una clase. La diferencia entre instancia y clase est en el grado de abstraccin. Un objeto es una abstraccin de un objeto del mundo real, pero una clase es una abstraccin de un grupo de objetos del mundo real. La abstraccin permite la generalizacin y evita la redefinicin de las caractersticas (atributos, comportamiento o relaciones) comunes, de forma que se produce una reutilizacin de estas definiciones comunes por parte de cada uno de los objetos. Por ejemplo todas las elipses (instancias) comparten las mismas operaciones para dibujarlas o calcular su rea. Un objeto es una instancia o variable de una clase. Se dice que pertenece a la clase. Un objeto se distingue de otros miembros de la clase por sus atributos. Ejemplo:
clase Punto Coordenadas x, y Mtodos Trasladar Leer x Leer y

Objetos de la clase Punto 5, 9 Mtodos 1 3, -2 Mtodos 2 -3, 0 Mtodos 3

objeto 1

objeto 2

objeto 3

El smbolo grfico para representar clases es un rectngulo, en el que figura el nombre de la clase, comenzando siempre en mayscula. Las clases se representan en los diagramas de clases, que son plantillas que describen un sistema. El Lenguaje de Modelado Unificado (UML) es en la actualidad el esquema de representacin grfica ms utilizado para modelar sistemas orientados a objetos. Fue desarrollado en forma conjunta por Booch, Jacobson y Rumbaugh, tres de los metodologistas ms reconocidos en el desarrollo del A/DOO. El UML es el estndar propuesto por el OMG (Object Management Group), organizacin internacional sin fines de lucro que promueve el uso de la TOO. La notacin UML para clases es la siguiente:
Nombre-clase Nombre-atributo-1: tipo-dato-1 Nombre-atributo-2: tipo-dato-2 ... Nombre-operacin1 (argumento): Nombre-operacin2 (argumento):

Los atributos se representan en el segundo rea de los smbolos de clase. Figurar el nombre del atributo, el tipo y el valor por defecto, si lo tuviera. En la tercer rea se detallan las operaciones o mtodos de la clase.

Licenciatura en Sistemas de Informacin

Prof. Cristina Greiner

Programacin IV

Tema 2

Encapsulacin Visibilidad
La encapsulacin u ocultacin de la informacin se implementa en los lenguajes OO a travs de la visibilidad o acceso a las variables miembro o atributos. La visibilidad es precisamente la propiedad que define si un atributo u operacin de un objeto es visible desde fuera del propio objeto. Los lenguajes generalmente proporcionan tres niveles de visibilidad: public, protected y private. Las caractersticas pblicas (public) son accesibles a cualquier usuario de la clase. Constituyen la interfaz de la clase. Pueden ser funciones y atributos. Los miembros dato (atributos) nunca deberan serlo. Las caractersticas protegidas (protected) estn ocultas al mundo exterior pero son accesibles a la clase que los contiene y a cualquier clase derivada de la misma. Es un status mixto entre public y private. Las caractersticas privadas (private) slo son accesibles desde las funciones de la propia clase. class nombre_clase { //miembros privados private tipo atributo-1; private tipo atributo-2; //miembros pblicos public tipo-retorno metodo-1(){} public tipo-retorno metodo-2(){}

Implementacin de una clase en Java


class nombre_clase { //atributos tipo1 lista-atributos; tipo2 lista-atributos; //operaciones tipo-devuelto nombre-operacin1 (argumentos) { operaciones } tipo-devuelto nombre-operacin2 (argumentos) { operaciones } } // fin de la clase Ejemplo: class Punto { //atributos int x; int y; //operaciones void Trasladar(int a, int b){ } void leerX () { } } void leerY () { }

Licenciatura en Sistemas de Informacin

Prof. Cristina Greiner

Programacin IV

Tema 2

Constructores
Los objetos son entidades que existen en el tiempo; por ello, deben ser creados o instanciados. Un objeto (entidad real) se crea a partir de la definicin de la clase (molde) a la que pertenece. Esta operacin se hace a travs de operaciones especiales llamadas constructores en Java o inicializadores. Pueden existir varios constructores (varias formas diferentes de crear objetos a partir de una clase). En java los constructores son mtodos especiales que deben tener siempre el mismo nombre de la clase, y no tienen ningn tipo de retorno. La instanciacin la ejecutar implcitamente el compilador o explcitamente el programador, mediante la invocacin a los constructores. Cuando se crea una instancia de una clase, se llama automticamente al constructor de la misma. El propsito de un constructor es inicializar los miembros dato del objeto de la clase cuando se crea el objeto. En Java se realiza mediante el operador new.

La Programacin Orientada a Objetos


Booch la define como Mtodo de implementacin en el que los programas se organizan como colecciones cooperativas de objetos, cada uno de los cuales representa una instancia de alguna clase, y cuyas clases son miembros de una jerarqua de clases unidas mediante relaciones de herencia. El elemento fundamental de la POO es, como su nombre lo indica, el objeto. Se puede definir un objeto como un conjunto complejo de datos y programas (algoritmos) que poseen estructura y forman parte de una organizacin. Esta definicin especifica varias propiedades importantes de los objetos. En primer lugar, un objeto no es un dato simple, sino que contiene en su interior cierto nmero de componentes bien estructurados. En segundo lugar, cada objeto no es un ente aislado, sino que forma parte de una organizacin jerrquica o de otro tipo. El hecho de que cada objeto sea una cpsula facilita enormemente que un objeto determinado pueda ser transportado a otro punto de la organizacin, o incluso a otra organizacin totalmente diferente que precise de l. Si el objeto ha sido bien construido, sus mtodos seguirn funcionando en el nuevo entorno sin problemas. Esta cualidad hace que la POO sea muy apta para la reutilizacin de programas. Las personas tienen una idea clara de lo que es un objeto: conceptos adquiridos que nos permiten sentir y razonar acerca de las cosas del mundo. En cualquier parte del mundo real se pueden ver objetos: gente, animales, edificios, computadoras, etc. Los humanos piensan en trminos de objetos. Poseen la capacidad de ver imgenes digitales de personas, aviones, rboles, etc, como objetos, en vez de verlos como puntos de colores individuales. Pueden pensar en trminos de playas en vez de granos de arena, en bosques en vez de rboles y en casas en vez de ladrillos. Un objeto podra ser real o abstracto, por ejemplo una factura, una figura en un graficador, una pantalla de usuario, un avin, un vuelo de avin, una organizacin, etc. Sin embargo, todos esos objetos tienen ciertas cosas en comn: todos ellos tienen atributos como tamao, forma, color y peso; y todos exhiben comportamientos (por ejemplo, una pelota rueda, rebota, se infla y se desinfla; un beb llora, duerme, gatea, camina, parpadea; un auto acelera, frena y da vuelta; una toalla absorbe agua). Los humanos aprenden acerca de los objetos estudiando sus atributos y observando su comportamiento. Distintos objetos pueden tener atributos similares y pueden exhibir comportamientos similares. Por ejemplo, pueden hacerse comparaciones entre los bebs y los adultos, y entre los humanos y los chimpancs. Los autos, camiones, vagones y patines tienen cosas en comn. El diseo orientado a objetos (DOO) modela el software en trminos similares a los que utilizan las personas para describir objetos del mundo real. Este diseo aprovecha las relaciones entre las clases, en donde los objetos de cierta clase (como una clase o conjunto de vehculos) tienen las mismas caractersticas. Tambin aprovecha las relaciones de herencia, en donde las nuevas clases de objetos se derivan absorbiendo las caractersticas de las clases existentes y agregando sus propias caractersticas nicas. Un objeto de la clase convertible tiene las caractersticas de la clase ms general automvil, adems de que el techo del convertible puede ponerse y quitarse. Estos principios bsicos y corrientes son aprovechados por la orientacin a objetos.

Licenciatura en Sistemas de Informacin

Prof. Cristina Greiner

Programacin IV

Tema 2

Propiedades del modelo de objetos


Segn Booch las cuatro propiedades fundamentales de este modelo son: abstraccin, modularidad, encapsulamiento y jerarqua. Generalmente se incluye tambin el polimorfismo. 1) ABSTRACCION La Abstraccin denota las caractersticas esenciales de un objeto que lo distingue de otras clases de objetos, proveyndolo de fronteras conceptuales de definicin muy claras y dentro de una perspectiva funcional. Es el paso de un objeto del mundo real a un objeto abstracto o a la informacin constructiva de una clase u objeto que sirva como componente de la solucin. Es una descripcin especial simplificada de un sistema que hace nfasis en ciertos rasgos y suprime otros. La buena abstraccin es aquella que logra hacer nfasis en los detalles significativos o relevantes de la solucin y discrimina cualquier otra caracterstica. Con esto se consigue un mapeo de los objetos del mundo real a los objetos del sistema. Los humanos gestionamos la complejidad a travs de la abstraccin. Por ejemplo, nosotros no vemos a un automvil como una lista de partes insondables; lo vemos como un objeto bien definido con un comportamiento nico. Esta abstraccin nos permite trasladarnos a cualquier lugar sin que nos desborde la complejidad de lo que representa un coche. Ignoramos lo que representa el motor y cmo funciona, y los detalles de funcionamiento de la transmisin o del sistema de frenos. En cambio, s tratamos con una nocin abstracta, fiable e idealizada de cmo funciona el coche en su conjunto. Tenemos una capacidad poderosa para gestionar esa abstraccin de una forma jerrquica que nos permite, a nuestra voluntad, dividir en partes los sistemas complejos. Desde el exterior, el coche es slo el coche; luego, una vez dentro, podemos utilizar el volante, los frenos, la radio, los cinturones de seguridad, la calefaccin y el telfono mvil, todos a la vez. La programacin que utiliza abstraccin de datos se basa en el hecho de que en un programa se deben integrar y combinar los tipos bsicos de datos, como nmeros y caracteres, para formar estructuras de datos ms complejas y as representar informacin dentro del computador. En general existe una fuerte relacin entre todos los datos manipulados por un programa, por lo que es conveniente que esa relacin est claramente especificada y controlada, de forma que cada parte del programa "vea" slo lo que necesita. Esto ltimo es muy importante para separar el programa en partes independientes, o mdulos, evitando as que cambios en una parte produzcan errores en otras partes del programa. Por ejemplo, en un programa que usa varios arreglos y matrices para almacenar informacin, es frecuente que al aumentar el tamao de una dimensin se olvide aumentar la de los dems arreglos, por lo que el mantenimiento del programa es ms difcil. El objetivo perseguido al usar abstraccin de datos es lograr aislar todas estas dependencias, de forma que los cambios puedan ser hechos con un mnimo de esfuerzo y en una forma localizada. En nada ayuda tener que buscar por todo el programa en qu lugar debe hacerse cada cambio. Gracias a la abstraccin, cada objeto en el sistema sirve como modelo de un "agente" abstracto que puede realizar trabajo, informar y cambiar su estado, y "comunicarse" con otros objetos en el sistema sin revelar cmo se implementan estas caractersticas. Por ejemplo, para definir el objeto coche, hay que ser capaces de abstraer las funciones y atributos de un coche; es decir, hay que ser capaz de definir coche en trminos de qu puede hacer y qu caractersticas lo distinguen de otros objetos. Abstraccin funcional: Funcionalmente, un coche puede realizar las siguientes acciones: Ir Parar Girar a la derecha Girar a la izquierda Hay cosas que se sabe que los coches hacen, pero el cmo lo hacen, la implementacin de ir, parar, girar (a la derecha, a la izquierda) es irrelevante desde el punto de vista del diseo. Esto es lo que se conoce como abstraccin funcional.

Licenciatura en Sistemas de Informacin

Prof. Cristina Greiner

Programacin IV
Abstraccin de datos: un coche tiene las siguientes caractersticas o atributos: Color Velocidad Tamao Carburante

Tema 2

La manera en que se almacenan o definen esos atributos, tambin es irrelevante para el diseo del objeto. Por ejemplo, el color puede definirse como la palabra rojo, o como un vector RGB (255,0,0). La forma en que el objeto almacena el atributo color es irrelevante para el programador. Este proceso de despreocupacin de cmo se almacena el color es lo que se llama abstraccin de datos. 2) ENCAPSULAMIENTO Principio por el cual se modelan al mismo tiempo y de forma inseparable mtodos y datos. El objeto esconde sus datos de los dems objetos y permite el acceso a los datos mediante sus propios mtodos. Esto recibe el nombre de ocultamiento de informacin. La Interface representa la frontera y el lugar de paso en la comunicacin del objeto con el mundo exterior. Ante la activacin de ciertos Eventos tan solo se podrn consultar y modificar los Datos almacenados en los Atributos exclusivamente a travs de las Funciones que determinen los Mtodos correspondientes al Objeto en cuestin.

El encapsulamiento evita la corrupcin de los datos de un objeto. Si todos los programas pudieran tener acceso a los datos de cualquier forma que quisieran los usuarios, los datos se podran corromper o utilizar de mala manera. El encapsulado protege los datos del uso arbitrario y no pretendido. El encapsulado oculta los detalles de su implantacin interna a los usuarios de un objeto. Los usuarios se dan cuenta de las operaciones que puede solicitar del objeto, pero desconocen los detalles de cmo se lleva a cabo la operacin. Todos los detalles especficos de los datos del objeto y la codificacin de sus operaciones estn fuera del alcance del usuario. Esto no quiere decir, sin embargo, que sea imposible conocer lo necesario respecto a un objeto y a lo que contiene. Si as fuera no se podra hacer gran cosa con l. Lo que sucede es que las peticiones de informacin a un objeto deben realizarse a travs de mensajes dirigidos a l, con la orden de realizar la operacin pertinente. La respuesta a estas rdenes ser la informacin requerida, siempre que el objeto considere que quien enva el mensaje est autorizado para obtenerla. Algunos lenguajes relajan esto, permitiendo un acceso directo a los datos internos del objeto de una manera controlada y limitando el grado de abstraccin. El encapsulado, al separar el comportamiento del objeto de su implantacin, permite la modificacin de sta sin que se tengan que modificar las aplicaciones que lo utilizan. 3) MODULARIDAD Es una propiedad que permite subdividir una aplicacin en partes ms pequeas (llamadas mdulos), cada una las cuales debe ser tan independiente como sea posible de la aplicacin en s y de las restantes partes. Consiste en dividir un programa en mdulos que se pueden compilar por separado, pero que tienen conexiones con otros mdulos.

Licenciatura en Sistemas de Informacin

10

Prof. Cristina Greiner

Programacin IV

Tema 2

La Modularidad es una particin funcional de todo el sistema. Cada mdulo o parte del sistema debe contar tanto con una funcionalidad clara y relativamente sencilla como con una facilidad de combinarse con otros mdulos. Condicionantes tales como limitacin de memoria o dadas por compiladores o lenguajes particulares inducen a la modularidad, pero el principio en la Tecnologa Orientada a Objetos es dividir funcionalmente buscando la interrelacin ms rica entre mdulos. A los mdulos se le ha llamado tambin paquetes unidades. Una divisin temtica de los mdulos es una manera muy conveniente de equilibrar la modularizacin, de esta manera, un mdulo puede ser el de los clculos numricos mientras que otro, el de las operaciones con cadenas, o bien: un mdulo puede ser el de las variables generales y de arranque y configuracin de un sistema, un segundo mdulo alojar las clases primitivas, de las cuales se derivarn siempre para su uso otras clases y un tercer mdulo tendr las clases que usan a las primitivas. La modularidad es una de las medidas de calidad en programacin. Puede llevar a que el programador tarde ms en terminar un programa, sin embargo, el beneficio es que permite que el mantenimiento del programa sea mucho ms simple. 4) JERARQUIA Es la propiedad que permite una ordenacin de las abstracciones. Las dos jerarquas destacadas de un sistema complejo son: generalizacin/especializacin (herencia) y agregacin. Herencia: Permite a los objetos ser definidos y creados como tipos especializados de objetos preexistentes. Estos pueden compartir (y extender) su comportamiento sin tener que reimplementar su comportamiento. Esto suele hacerse habitualmente agrupando los objetos en clases y las clases en rboles o enrejados que reflejan un comportamiento comn. Esta propiedad organiza y facilita el polimorfismo y la encapsulacin. Se da cuando un objeto de una clase es un objeto de otra clase tambin. Agregacin: A veces se desea modelar una relacin de tipo "todo/parte", en la cual una clase representa algo grande (el todo), que consta de elementos ms pequeos (las partes). Este tipo de relacin se denomina agregacin, y es una relacin "tiene-un". 5) POLIMORFISMO Una de las caractersticas fundamentales de la POO es el polimorfismo, que no es otra cosa que la posibilidad de construir varios mtodos con el mismo nombre, pero con relacin a la clase a la que pertenece cada uno, con comportamientos diferentes. Esto conlleva la habilidad de enviar un mismo mensaje a objetos de clases diferentes. Estos objetos recibiran el mismo mensaje global pero responderan a l de formas diferentes; por ejemplo, un mensaje "+" a un objeto ENTERO significara suma, mientras que para un objeto STRING significara concatenacin ("pegar" strings uno seguido al otro) Por ejemplo, un arreglo de objetos pueden contener objetos de diferentes tipos, y la invocacin de un comportamiento en una referencia producir el comportamiento correcto para el tipo real del referente.

Licenciatura en Sistemas de Informacin

11

Prof. Cristina Greiner

Vous aimerez peut-être aussi