Objetos 3.0

Nota Vista 2.388 Veces

El esqueleto de los objetos.

En la última entrada vimos en detalle la diferencia entre una clase de objeto y una instancia de objeto.

En esta oportunidad comenzaremos a ver el interior de un objeto. Su esqueleto, su estructura.

Un objeto por dentro.

Una de las ventajas que ofrecen los objetos durante el análisis y diseño de una aplicación, en este caso sería Análisis Orientado a Objetos (AOO) y Diseño Orientado a Objetos (DOO), es que existe una correspondencia conceptual entre objetos software y objetos de la vida real.

Así por ejemplo; en la vida real existe la factura y en nuestro sistema el objeto factura, en la vida real existe el socio y en nuestro sistema el objeto socio, en la vida real existe el empleado y en nuestro sistema el objeto empleado.

Esto obviamente nos permite comprender mejor la función a desempeñar por nuestros objetos software debido al hecho de no resultar algo tan abstracto, gracias a su contrapartida de la vida real.

Ahora bien, los objetos de la vida real tienen ciertas particularidades que los distinguen de otros objetos del mismo tipo.
Por ejemplo; una factura se distingue de las demás por su nro. de factura, el nombre y los datos del cliente, el contenido mismo de la factura, etc.
Cualquier persona se distingue de las demás por su nro. de documento, su apellido, su nombre, etc.
Cada una de estas características, de estas propiedades que distinguen a un objeto específico del resto en la teoría de objetos se denominan atributo.

Los objetos de la vida real también pueden, o no, hacer algo; moverse, consumir, comprar, vender, participar de un partido, etc.
En la teoría de objetos cada una de estas funciones, reciben el nombre de operación.

Así normalmente los objetos software tienen atributos y llevan a cabo operaciones. Técnicamente las definiciones de estos conceptos son las siguientes.

Atributo: propiedad de una clase que define un conjunto de valores que puede tener una instancia del atributo.
Ehhhh?. Fácil un atributo es una propiedad que tiene cualquier instancia que pertenezca a la clase y cada una de esas instancias tendrá su propio valor para ese atributo. Por ejemplo nuestra clase Persona tiene un atributo llamado nombre, una instancia podrá tener el valor “Juan” para ese atributo y otra instancia el valor “Ana”.

Operación: define un servicio de la clase, que puede ser requerido a cualquier instancia de la clase.
Esto sería….? Algo que cualquier instancia de la clase puede hacer o se le puede pedir que haga. Acá cabe hacer una aclaración hay una diferencia entre operación y método.
Operación se refiere a la signatura o sea a la definición por ejemplo ExtraerPromedio(Nota1: real, Nota2: real):real.
Oops, n
on calentarum largum vivirum, esto significa que la operación se llama ExtraerPromedio y que devuelve un resultado que será del tipo real y que recibirá dos parámetros, los que están dentro del paréntesis, que se llaman Nota1 y Nota2 y ambos serán también del tipo real. Recordemos que el significado matemático de los dos puntos es “es” así que poner Nota1:real sería los mismo que poner Nota1 es real.
¿Ok y el método que será?. Será la implementación, el código que habrá detrás de ExtraerPromedio y que en definitiva hará algo.
¿A qué se debe que la compliquen así?. Se separa el concepto de operación y método para, entre otras cosas, poder usar polimorfismo.
Esperá no te desesperes, ya vamos a ver de que se trata.
Además las operaciones forman parte de la interfaz y los métodos no.

Bien, la próxima entrada hablaremos de la interfaz. Nos vemos.

Fernando Tula  (3 Posts)

Analista de Sistemas. Desarrollador. Docente. Titular de I.I. TULA.



One Response

  1. Roberto dice:

    Muy claro Fernando, como siempre!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

© VB-MUNDO – Programacion Visual
CyberChimps