Los objetos son unos de los conceptos principales de la OOP. Para entender este concepto bastará con que pienses en cualquier cosa real del mundo que nos rodea: una persona, una pelota, un coche, una bicicleta...
En este post se presenta un ejemplo sencillo de cómo se utilizan los objetos en una situación cotidiana.
Supongamos que somos el jefe de personal de una empresa y tenemos que contratar a una persona para ocupar un puesto importante dentro de la misma. Después de analizar cientos de curriculums, seleccionamos a una candidata a la que llamaremos para concertar una entrevista cara a cara en las oficinas de nuestra empresa. Llamaremos al teléfono de la candidata (digamos que su nombre es Jane) y charlaremos durante unos minutos con ella, para confirmar que parece ser la persona adecuada para el trabajo. Tendremos que negociar todos los procesos necesarios para que Jane pueda volar hasta nuestra ubicación, ya que Jane es de una ciudad distinta y quedaremos con ella para recogerla en el aeropuerto.
En la conversación telefónica, tanto la candidata como el reclutador tendrán que realizarse algunas preguntas mutuas, ya que nunca se han visto antes, esto servirá para que puedan reconocerse en el aeropuerto. Quizás conozcamos la foto de la candidata a través de su curriculum, pero aunque el cerebro es capaz de reconocer rostros que haya visto sólo una vez, necesitaremos algunos detalles más.
Jane puede decirnos que es de mediana estatura, con el pelo rubio, y que llevará un traje negro y un maletín de cuero marrón. Posteriormente, le tocará al recultador describirse:alto, cabello color negro y llevará una trenca color gris. A continuación, se fijará una fecha y hora para determinar la hora de llegada del vuelo, y todo estará listo para la entrevista.
Como imaginará esta situación también se puede dar entre un taxista y un turista que llega a un país para visitarlo.
En algunas ocasiones los turistas son recogidos por taxistas o chóferes elegidos por alguna empresa o alguna persona con un alto cargo. Aunque los aeropuertos siempre tienen algún taxi disponible para ello, el utilizar un servicio público para algunas personas es un sacrilegio. Sí, es lo que tiene ser rico...
Como ocurría en la escena descrita anteriormente de la candidata al puesto de trabajo, el taxista o chofer contratado particularmente, deberá conocer una descripción del turista, quizás bastará con saber su nombre e imprimirlo en una hoja.
Clases y uso de los objetos
Sin darnos cuenta, todos los días estamos utilizando los objetos en nuestras conversaciones. En primer lugar, sin pensar en ello, estamos creando implícitamente una clase persona durante la llamada telefónica. Una clase es una plantilla que se utiliza para describir un objeto. Como tal, una clase es una abstracción, o la simplificación, de algún objeto que observamos en el mundo real.Podemos dividir una clase en dos componentes básicos:
- Propiedades que describen el objeto.
- Métodos, o acciones que podemos asociar a dicho objeto.
Propiedades de la clase
Las propiedades de la clase son los datos que deseamos asociar y registrar de un objeto. Si deseamos crear un objeto de la clase persona (de aquí en adelante, clsPersona), podríamos estar interesados en algunas de las propiedades de la siguiente lista:- nombre
- altura
- colorPelo
- colorOjos
- complexión
- genero
- gafas
Antes de la conversación telefónica, la lista de propiedades para el objeto Jane de la clsPersona estaba prácticamente vacía. Tan sólo conocíamos su nombre y su género, quizás como dijimos anteriormente podríamos conocer el color de su pelo o el color de sus ojos si junto al curriculum se adjunta un foto, aunque en el primer caso es algo que puede variar en función de épocas.
En el caso del turista al no disponer de fotografía, quizás el taxista/chofer no tuviera ningún dato sobre su cliente.
Sin embargo, después de las conversaciones telefónicas, casi todas las propiedades de los objetos Jane y Turista de la clase clsPersona se habrán rellenado. Quizás lógicamente no sea conveniente pedirle a dichas personas telefónicamente que describan su complexión, pero será un dato que rellenaremos próximamente.
Gracias a nuestra descripción telefónica, Jane también habrá podido rellenar el objeto Reclutador de la clase clsPersona.
Al cambiar los valores de las propiedades de la clase, podemos cambiar el estado del objeto. El estado de un objeto viene determinado por los valores de las propiedades que se usan para describir el objeto.
Las personas no suelen cambiar de enombre, aunque también puede llegar a suceder. De igual modo, las personas ganan y pierden peso, se tiñen el pelo, se ponen lentes de contacto de colores, cambian de ropa, y cambian de accesorios personales. Si cualquiera de estas propiedades cambia de valor, el estado del objeto -por definición- también cambia.
Es también evidente que el valor de las propiedades, son lo que permiten a alguien distinguir al objeto Jane del otro objeto Reclutador de la clase clsPersona.
Métodos de la clase
Al igual que existen los valores de las propiedades que definen el estado de un objeto, generalmente también hay métodos de clase que actúan sobre las propiedades. Un objeto de la clase clsPersona, hablará, moverá los brazos, caminará, cambiará de ropa, y así sucesivamente. En resumen, los métodos de clase determinan los comportamientos o acciones que el objeto puede realizar.Los métodos de clase a menudo se utilizan para manipular los datos contenidos en el objeto.
Algunos métodos se utilizan para obtener los valores de las propiedades.Por ejemplo, saber si la persona usa gafas o no. También hay métodos que realizan acciones. Por ejemplo, mover a la persona a una determinada posición. Por último, hay métodos que realizan cálculos y pueden devolver un valor para utilizarlo posteriormente en otro método que lo necesite.
Si lo piensa con detenimiento, una propiedad de una clase puede ser vista como un sustantivo: una persona, lugar o cosa que sirve para designar un objeto. Los métodos de clase, por el contrario, a menudo se comportan como verbos, ya que denotan algún tipo de acción a realizar en las propiedades de la clase (es decir, los datos de la clase) o una acción que el objeto puede realizar.










0 comentarios:
Publicar un comentario