OOP - Clases y objetos al Desarrollar soluciones informáticas

En el desarrollo de sistemas computacionales se habla mucho de Programación Orientada a Objetos, POO en castellano y OOP en inglés.

Si conoces los diagramas UML o utilizas algún lenguaje de programación orientado a objetos, entonces estas pocas líneas te servirán para organizar estos conceptos.

Cuando nos enfrentamos con este tema, es mucho mejor tomar notas y dibujar en papel los conceptos y ejemplos que van apareciendo en el camino, después y cuando ya tenemos claros estos conceptos, entonces podemos pasar a utilizar algún software para construir nuestras ideas.

Veamos entonces, Análisis, diseño y Programación Orientada a Objetos

  • Análisis: Esta etapa te permitirá entender lo que hay que hacer.

  • Diseño: Aquí definiremos el “Cómo” lo tenemos que hacer.

  • Programación: aquí viene, esta etapa ya es la construcción o desarrollo del código relacionado.

Cuando hablamos de diseño nos referimos al diseño funcional de nuestra aplicación, no al diseño estético, ni de las interfaces gráficas.

Estas tareas las repetiremos de forma iterativa hasta que nuestro programa satisfaga todas las facetas que el análisis detecte.

Cada ciclo amplía y mejora el análisis, ayudándonos a adaptar el diseño antes de ponernos a programar.

En nuestro análisis debemos detectar los requerimientos imprescindibles de nuestro proyecto, y no es necesario llegar a un nivel de detalle muy bajo.

  • Objetos: Como primer alcance, debo dejar muy claro, qué son los objetos, su explicación se hace algo difícil.

Los objetos son pequeñas partes del diseño que resuelven problemas concretos.

Veamos. Unobjeto contiene los datos y la lógica necesaria para resolver una tarea específica de nuestra aplicación.

Por ejemplo, en la aplicación de una academia, podríamos tener los siguientes objetos:

  • Docente
  • Alumno
  • Asignatura
  • Nota

Estos objetos, a su vez, pueden contener objetos más pequeños; por ejemplo, nos podemos imaginar que Docente se relaciona con Asignatura y Alumno.

Cada objeto tiene la lógica que resuelve lo relacionado con él; por ejemplo, Docente, puede entregar datos de Asignatura o una lista de Alumnos.

Los objetos se identifican ante otros objetos de su mismo tipo o clase, de esta manera,

  • Docente tendrá un nombre, un correo, un teléfono.
  • Asignatura tendrá una descripción, un código.

Estas características es lo que se llama Propiedades o Atributos.

La lógica que resuelve una tarea relacionada al objeto, es el comportamiento del mismo,

Docente tendrá un comportamiento que sea tomarLista.

Este comportamiento es construido a nivel de programación y es una función, lo que llamaremos Métodos.

Podemos decir, entonces, que un objeto se compone de tres partes, una Identificación (nombre del objeto) que lo hace único, Atributos (los datos que controla) y Métodos (funciones que controlan el comportamiento del objeto).

  • Clases

Una clase es el documento que establece la descripción de un objeto, sus atributos y sus métodos. Respecto a sus atributos, estos son solo el nombre genérico de los datos que contendrá el objeto y no los datos específicos.

Una clase nos permite crear tantos objetos como necesitemos; por ejemplo, pensemos en una clase que llamaremos Persona. Con esta clase podemos crear distintos objetos, cada uno con nombre, dirección, correo, etc, pero podrán tener valores distintos.

Por ejemplo, con la clase Persona podemos crear el objeto Docente, otro objeto que se llame Alumno y otro que se llame Administrativo.

Cada uno será un objeto, y lo habremos construido utilizando como base la clase Persona.

Una clase tendrá:

  1. Un Nombre, que nos permite identificarla.

  2. Unas Propiedades o Atributos para contener los datos.

  3. Los métodos que marcaran los comportamientos de la clase.

Entonces la clase Persona podría contener:

  1. Nombre – Persona

  2. Atributos – ID, nombre, dirección, correo.

  3. Métodos (comportamientos) – leer(), escribir()

Todos sus atributos estarán vacíos hasta crear un objeto de dicha clase.

Tenemos que entender a la Clase como un plano que nos permite construir un tipo concreto de objetos.

Para cada objeto con comportamientos distintos o con distintos atributos, requerimos tener una Clase para construirlo, y eso es lo que deberemos escribir durante la programación.

Gráficamente, podemos representar a esta clase así,

Persona

ID

nombre

dirección

correo

leer()

escribir()

En el siguiente artículo, avanzaré con temas de Abstracción, herencia, polimorfismo y encapsulación.

Temas