Dentro de la programación orientada a objetos, las clases son un pilar fundamental. Estas nos van a permitir abstraer los datos y sus operaciones asociadas como si tuviéramos en frente una caja negra. La mayoría de los lenguajes de programación modernos incluyen la posibilidad de usar clases y las ventajas que ello nos aporta.
Una clase es la descripción de un conjunto de objetos similares; consta de métodos y de datos que resumen las características comunes de dicho conjunto. En un lenguaje de programación orientada a objetos se pueden definir muchos objetos de la misma clase de la misma forma que, en la vida real, haríamos galletas (objeto) con el mismo molde (clase) solo que, para entenderlo mejor, cada galleta tendría igual forma pero es posible que tenga distinto sabor, textura, olor, color, etc.
Dicho de otro modo, una clase es la declaración de un tipo de objeto. Las clases son similares a los tipos abstractos de datos y equivalen a modelos que describen cómo se construyen ciertos tipos de objetos. Cada vez que se construye un objeto a partir de una clase estamos creando lo que se llama una instancia de esa clase. Si quieres saber más sobre los objetos puedes leer mi artículo ¿Qué son los objetos en la POO y cómo se representan? Por consiguiente, los objetos no son más que instancias concretas de una clase.
Entonces, ¿cuál es la diferencia entre clase y objeto?
Un objeto es un simple elemento, no importa lo complejo que pueda ser. Una clase, por el contrario, describe una familia de elementos similares. En la practica, una clase es un esquema o plantilla que se usa para definir o crear objetos.
A partir de una clase, se puede definir un número indeterminado de objetos. Cada uno de estos tendrá un estado particular propio (una pluma estilográfica puede estar llena, otra puede estar medio llena y otra totalmente vacía) y otras características (como su color), aunque compartan algunas operaciones comunes (como escribir o llenar su deposito de tinta). Tal vez tengas dudas de cómo saber que clases y objetos conformen tu programa, sus estados y sus operaciones por lo que te recomiendo que leas este artículo ¿Cómo identificar objetos en el modelado de un programa?
La siguiente figura muestra el diseño general de diagrama que representan una clase y a objetos que pertenecen a ella:
Hasta aquí una breve introducción a las clases en la programación orientada a objetos. En un próximo artículo veremos en tratamiento que hace Swift de las Clases y como trata un nuevo concepto muy similar llamado Estructura. Espero que te haya parecido interesante el artículo. Nos leemos en el próximo!!
Adiós, os!!