Está en la página 1de 8

Objetos

Un objeto es una cosa tangible, algo a que se puede aprehender intelectualmente o algo hacia lo que se puede dirigir una accin o pensamiento. Un objeto representa un item individual e identificable, o una entidad real o abstracta, con un papel definido en el dominio del problema Un objeto tiene: 1. Estado 2. Comportamiento 3. Identidad La estructura y el comportamiento de objetos similares se definen en sus clases comunes. El trmino objeto y ejemplo (instance) de una clase son intercambiables.

Estado de un objeto El estado de un objeto abarca todas las propiedades del objeto, y los valores actuales de cada una de esas propiedades. Las propiedades de los objetos suelen ser estticas, mientras los valores que toman estas propiedades cambian con el tiempo.

El hecho de que los objetos tengan estado implica que ocupan un espacio, ya en el mundo fsico , ya en la memoria del ordenador. El estado de un objeto est influido por la historia del objeto. No deben confundirse los objetos, que existen en el tiempo, son mutables, tienen estado, pueden ser creados, destruidos y compartidos..., con los valores (los asignados a una variable, por ejemplo) que son cantidades con las propiedades de ser atemporales, inmutables. El estado de un objeto representa el efecto acumulado de su comportamiento.

Identidad de un objeto Identidad es la propiedad de un objeto que lo lleva a distinguirse de otros.

Comportamiento de un objeto Comportamiento es como un objeto actua y reacciona, en trminos de sus cambios de estado y de los mensajes que intercambia. El comportamiento de un objeto representa su actividad externamente visible y testable. Son las operaciones que una clase realiza (llamadas tambin mensajes) las que dan cuenta de como se comporta la clase. Por operacin se denota el servicio que una clase ofrece a sus clientes. Un objeto puede realizar cinco tipos de operaciones sobre otro, con el proposito de provocar una reaccin:

1. 2. 3. 4. 5.

Modificador: altera el estado de un objeto. Selector: accede al estado de un objeto, sin alterarlo. Iterador: permite a todas las partes de un objeto ser accedidas en un orden. Constructor: crea un objeto y/o inicializa su estado. Destructor: libera el estado de un objeto y/o destruye el objeto.

C++ soporta, ademas de las operaciones, subprogramas libres. En la terminologa de C++ las operaciones que un cliente puede realizar sobre un objeto se declaran como funciones miembro. Relaciones entre objetos Las relaciones entre objetos abarcan las operaciones, resultados y suposiciones que unos hacen sobre los otros. 1. Links Son conexiones fsicas o conceptuales entre objetos. Denota la asociacin especfica por la que un objeto (cliente) usa o solicita el servicio de otro objeto (servidor). El paso de mensajes entre objetos los sincroniza. 2. Agregaciones Denota relaciones todo/parte, con capacidad para governar desde el todo las partes. Es equivalente a la relacin "tener un". El todo puede contener a la parte. Agregacin es conveniente en las ocasiones en que el encapsulamiento de las partes es prioritario. Si se requiere que las relaciones entre objetos esten vagamente acopladas, se utilizan links. Clases Una clase es un conjunto de objetos que comparten una estructura y comportamiento comunes.

Clase representa una abstraccin, la esencia que comparten los objetos. Un objeto es un ejemplo de una clase. Un objeto no es una clase, y una clase no es un objeto (aunque puede serlo, p.e. en Smalltalk). Las clases actuan como intermediarias entre una abstraccin y los clientes que pretenden utilizar la abstraccin. De esta forma, la clase muestra: 1. visin externa de comportamiento (interface), que enfatiza la abstraccin escondiendo su estructura y secretos de comportamiento. 2. visin interna (implementacin), que abarca el cdigo que se ofrece en la interface de la clase.

Relaciones entre clases Representan tipos de comparticin entre clases, o relaciones semnticas.

1. Asociacin. Indica relaciones de mandato bidireccionales (Punteros ocultos en C++). Conlleva dependencia semntica y no establece una direccin de dependencia. Tienen cardinalidad. 2. Herencia. Por esta relacin una clase (subclase) comparte la estructura y/o comportamiento definidos en una (herencia simple) o ms (herencia mltiple) clases, llamadas superclases. o Representa una relacin del tipo "es un" entre clases. o Una subclase aumenta o restringe el comportamiento o estructura de la superclase (o ambas cosas). o Una clase de la que no existen ejemplos se denomina {\it abstracta}. o C++ declara como virtuales todas aquellas funciones que quiere modificar en sus subclases. 3. Agregacin. Representa una relacin del tipo "tener un" entre clases. Cuando la clase contenida no existe independientemente de la clase que la contiene se denomina agregacin por valor y adems implica contenido fsico, mientras que si existe independientemente y se accede a ella indirectamente, es agregacin por referencia. 4. Uso. Es un refinamiento de la asociacin donde se especifica cual es el cliente y cual el servidor de ciertos servicios, permitiendo a los clientes acceder slo a las interfaces pblicas de los servidores, ofreciendo mayor encapsulacin de la informacin. 5. Ejemplificacin Se usa en lenguajes que soportan genericidad (declaracin de clases parametrizadas y argumentos tipo template). Representa las relaciones entre las clases parametrizadas, que admiten parmetros formales, y las clases obtenidas cuando se concretan estos parmetros formales, ejemplificados o inicializados con un ejemplo. 6. Metaclases Son clases cuyos ejemplos son a su vez clases. No se admiten en C++.

Relaciones entre clases y objetos


Todo objeto es el ejemplo de una clase, y toda clase tiene 0 ms objetos. Mientras las clases son estticas, con semntica, relaciones y existencia fijas previamente a la ejecucin de un programa, los objetos se crean y destruyen rpidamente durante la actividad de una aplicacin.

El diseo de clases y objetos es un proceso incremental e iterativo. Debe asegurar la optimizacin en los parmetros: 1. Acoplamiento: Grado de acoplamiento entre mdulos. 2. Cohesin: Mide el grado de conectividad entre elementos de un mdulo, y entre objetos de una clase. 3. Suficiencia: Indica que las clases capturan suficientes caractersticas de la abstraccin para conseguir un comportamiento e interaccin eficiente y con sentido. 4. Completitud: Indica que la interface de la clase captura todo el significado caracterstico de una abstraccin, escrito en el mnimo espacio.

5. Primitividad: Las operaciones deben implementarse si dan acceso a una representacin fundamental de la abstraccin. Cuales son operaciones primitivas y cuales no (se pueden realizar a partir de otras) es un asunto subjetivo y afecta a la eficiencia en la implementacin.
http://fpsalmon.usc.es/genp/doc/cursos/poo/clases.html

Objeto
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. Un objeto podra ser real o abstracto, por ejemplo una organizacin, una factura, una figura en un dibujador, una pantalla de usuario, un avin, un vuelo de avin, etc. En el anlisis y diseo orientados a objetos (OO), interesa el comportamiento del objeto. Si se construye software, los mdulos de software OO se basan en los tipos de objetos. El software que implanta el objeto contiene estructuras de datos y operaciones que expresan dicho comportamiento. Las operaciones se codifican como mtodos. Las representacin en software OO del objeto es entonces una coleccin de tipos de datos y objetos. Entonces, dentro del software orientado a objeto, un objeto es cualquier cosa, real o abstracta, acerca de la cual almacenamos datos y los mtodos que controlan dichos datos. Un objeto puede estar compuesto por otros objetos. Estos ltimos a su vez tambin pueden estar compuestos por otros objetos. Esta intrincada estructura es la que permite construir objetos muy complejos.

Tipo de Objeto
Los conceptos que poseemos se aplican a tipos determinados de objetos. Por ejemplo, empleado se aplica a los objetos que son personas empleadas por alguna organizacin. Algunas instancias de empleado podran ser Juan Prez, Jos Martnez, etc. En el anlisis orientado a objetos, estos conceptos se llaman tipos de objetos; las instancias se llaman objetos. As, un tipo de objeto es una categora de objeto, mientras que un objeto es una instancia de un tipo de objeto. En el mundo de las bases de datos existen los tipos de entidad, como cliente o empleado. Existen muchas instancias de cada tipo de entidad (como Juan Prez o Jos Martnez para

el tipo de entidad empleado). Del mismo modo, en OO se define tipos de objetos e instancias de tipo de objeto. Sin embargo, el trmino objeto tiene diferencias fundamentales con el trmino entidad, ya que la entidad slo se refiere a los datos, mientras que objeto se refiere a los datos y a los mtodos mediante los cuales se controlan a los propios datos. En OO, la estructura de datos y los mtodos de cada tipo de objeto se manejan juntos. No se puede tener acceso o control de la estructura de datos excepto mediante los mtodos que forman parte del tipo de objeto.

Mtodos
Los mtodos especifican la forma en que se 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. El tipo de objeto empaca juntos los tipos de datos y su comportamiento. Un objeto entonces es una cosa cuyas propiedades estn representadas por tipos de datos y su comportamiento por mtodos. 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.

Encapsulado
El empaque conjunto de datos y mtodos se llama encapsulado. 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. 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. As, encapsulado es el resultado (o acto) de ocultar los detalles de implantacin de un objeto respecto de su usuario. 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.

Mensajes
Para que un objeto haga algo, le enviamos 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. La programacin orientada a objetos es una forma de diseo modular en la que con frecuencia el mundo se piensa en trminos de objetos, operaciones, mtodos y mensajes que se transfieren entre tales objetos. Un mensaje es una solicitud para que se lleve a cabo la operacin indicada y se produzca el resultado. Los objetos pueden ser muy complejos, puesto que pueden contener muchos subobjetos, stos a su vez pueden contener otros, etc. La persona que utilice el objeto no tiene que conocer su complejidad interna, sino la forma de comunicarse con l y la forma en que responde.

Clase
El trmino clase se refiere a la implantacin en software de un tipo de objeto. El tipo de objeto es una nocin de concepto. Especifica una familia de objetos sin estipular la forma en que se implanten. Los tipos de objetos se especifican durante el anlisis OO. As, una clase es una implantacin de un tipo de objeto. Especifica una estructura de datos y los mtodos operativos permisibles que se aplican a cada uno de sus objetos.

Herencia
Un tipo de objeto de alto nivel puede especializarse en tipos de objeto de bajo nivel. Un tipo de objeto puede tener subtipos. Por ejemplo, el tipo de objeto persona puede tener subtipos estudiante y empleado. A su vez, el tipo de objeto estudiante puede tener como subtipo estudiante de pregrado y estudiante de postgrado, mientras que empleado puede tener como subtipo a acadmico y administrativo. Existe de este modo una jerarqua de tipos, subtipos, subsubtipos, etc. Una clase implanta el tipo de objeto. Una subclase hereda propiedades de su clase padre; una sub-subclase hereda propiedades de las subclases; etc. Una subclase puede heredar la

estructura de datos y los mtodos, o algunos de los mtodos, de su superclase. Tambin tiene sus mtodos e incluso tipos de datos propios.
http://www.inf.udec.cl/~mvaras/estprog/cap41.html

También podría gustarte