¡Descubre Cómo Declarar una Clase en Programación Orientada a Objetos y Domina el Código!post-template-default single single-post postid-46 single-format-standard et_pb_button_helper_class et_fixed_nav et_show_nav et_secondary_nav_enabled et_primary_nav_dropdown_animation_fade et_secondary_nav_dropdown_animation_fade et_header_style_left et_pb_footer_columns4 et_cover_background et_pb_gutter et_pb_gutters3 et_right_sidebar et_divi_theme et-db
771 715 4434

Cuando trabajes con la Programación Orientada a Objetos (POO) hay tres palabras que va a usar constantemente OBJETOS, CLASE, e INSTANCIA. No te preocupes, te vas a acostumbrar a ellas casi sin esfuerzo y usarlas constantemente. Pero, lógicamente tenemos que explicarlas. Como ya sabemos, los OBJETOS son la base de la Programación Orientada a objetos. Como recordatorio rápido, un OBJETO es una forma de modelar una parte de la realidad. El objeto, contiene: Estado, a través de campos, y Comportamiento, a través de métodos. Y además, para que sea un objeto “de verdad”, debe ser tratado por tu programa con ciertas consideraciones o “reglas” particulares: Herencia, Encapsulación y Polimorfismo. Con esto refrescado, ya podemos explicar los conceptos de clase e instancia.

La Clase: El Molde Fundamental de los Objetos

Una CLASE es la definición formal de nuestro Objeto. Podemos pensar en ella como un “molde” o plantilla para crear objetos. Una clase es una plantilla (molde) que define atributos (lo que conocemos como variables) y métodos. El principio de abstracción se implementa a partir de tipos de datos con atributos y métodos llamados Clases. Una Clase es una especie de plantilla o molde que contiene la definición de entidades del mundo real que se modelan en un sistema. En informática, una clase es una plantilla para la creación de objetos de datos según un modelo predefinido. Las clases se utilizan para representar entidades o conceptos, como los sustantivos en el lenguaje.

Debemos declarar una clase antes de poder crear objetos (instancias) de esa clase. La declaración de una clase define la estructura de la misma. Dicho de otra forma, la declaración de una clase informa de los elementos que la conforman. La palabra class indica que declararemos una clase y enseguida debe ir el identificador de clase.

Nomenclatura de Clases

Nomenclatura: los nombres de las clases se escriben en minúsculas, capitalizados (si el identificador utiliza varias palabras, cada palabra inicia con mayúscula), sin espacios y sin acentos. La primera letra debe ser mayúscula, se escribe en singular y normalmente es un sustantivo. Por ejemplo: Grupo, Alumno, Circulo, Lista, Tabla, etc. Conviene buscar un nombre de clase lo más próximo a lo que representa.

Componentes de una Clase

En la Clase definimos las propiedades y métodos que los objetos creados a partir de la clase tendrán. A partir del diagrama anterior, podemos observar que puede no haber ninguna declaración atributos y/o métodos.

Lea también: Requisitos para la Cédula Fiscal

Atributos

Los atributos, también llamados datos o variables miembro, son porciones de información que un objeto posee o conoce de sí mismo. Una clase puede tener cualquier número de atributos o no tener ninguno. Podemos añadir algún atributo de clase. Los atributos son variables comunes en cada objeto de una clase y cada uno de ellos puede tener un valor asociado, para cada variable, diferente al que tienen para esa misma variable los demás objetos. Como se puede observar, las variables del objeto se localizan en el centro o núcleo del objeto. Los atributos siguen existiendo cuando finaliza la ejecución del método.

Métodos

A parte de atributos y el constructor, toda clase tiene un conjunto de funciones o métodos que realizan diferentes funcionalidades. Luego de definir los atributos de la clase debemos declarar los métodos o funciones de la clase. Java como todo lenguaje de programación orientado a objetos utiliza los llamados métodos. Se podría decir que existen 2 grandes tipos de métodos: el primer tipo de método son métodos que realizan procesos, puedes realizar cualquier operación con ellos, sin embargo el propósito es manipular variables existentes. Los métodos rodean y esconden el núcleo del objeto de otros objetos en el programa.

El Constructor

Se podría decir que toda clase tiene un constructor, que recibe unos parámetros de entrada cuando el objeto es creado. Añadir constructor a la clase. Creamos por lo tanto el constructor __init__. En Java, un constructor siempre, por norma, debe tener el mismo nombre de la clase, el cual no recibe ningún parámetro, aunque pueden recibir todos los parámetros que nosotros deseemos.

Encapsulamiento

Al empaquetamiento de las variables de un objeto con la protección de sus métodos se le llama encapsulamiento. Esto encapsula los datos y los procedimientos. Ocultamiento de la información, es decir, un objeto tiene una "interfaz pública" que otros objetos pueden utilizar para comunicarse con él. Típicamente, el encapsulamiento es utilizado para esconder detalles de la puesta en práctica no importantes de otros objetos; esto es, el código fuente de un objeto puede ser escrito, así como darle mantenimiento, independientemente del código fuente de otros objetos.

La Instancia: Creando Objetos a partir del Molde

Una vez que tenemos definida una CLASE, ya podemos empezar a crear objetos a partir del “molde” que define. Una instancia es cada uno de los elementos creados según una clase. Un Objeto es una copia creada a partir de una Clase. Por ejemplo, si tuvieras la definición de la clase Perro; firulais, motitas, princesa y manchas serían cuatro objetos del tipo o la clase Perro. Si consideramos que la memoria de la computadora es una masa de galletas, un molde para hacer galletas sería una clase y cuando “planchamos” el molde sobre la memoria se crean galletas que ocupa un espacio físicamente en la memoria. Cada INSTANCIA es un elemento independiente, que tiene sus propios valores para las propiedades definidas en la clase. Además, por supuesto, puedes tener múltiples instancias creadas a partir de una clase (de hecho lo normal es que tengas varias instancias de una clase).

Lea también: ¿Qué tipo de contabilidad elegir?

Decíamos que una clase es un molde que nos permite crear objetos. Definimos un objeto llamado persona1 y lo creamos llamando al método new de la clase Persona. Luego para llamar a los métodos debemos disponer después del nombre del objeto. Como vemos en el método inicializar si el método tiene parámetros se los enviamos.

Declaración de Clases en Diferentes Lenguajes de Programación

Clases en Python

Crear una clase en Python se puede hacer con tan sólo dos líneas de código haciendo uso de la palabra class. Añadir atributos a la clase. Añadir constructor a la clase. Creamos por lo tanto el constructor __init__. Añadir métodos a la clase. A parte de atributos y el constructor, toda clase tiene un conjunto de funciones o métodos que realizan diferentes funcionalidades. Crear objeto. A diferencia de la clase, un objeto define una clase particular, con unos atributos particulares para ese objeto. Es decir, el objeto es la instancia de la clase. Acceder a métodos y atributos. Una vez tenemos el objeto mi_clase, podemos acceder a todo su contenido, tanto métodos como atributos de clase o de instancia. Simplemente hay que usar el objeto.

Clases en Java

En Java, las clases son las matrices de las que luego se pueden crear múltiples instancias del mismo tipo. En Java, primero deberemos crear una clase antes de poder crear instancias o ejemplares de esa clase. En Java, un objeto es básicamente una instancia de una clase (las instancias de las que hablábamos hace un momento).

Por convenio, se ha decidido que en lenguaje Java los nombres de las clases deben de empezar por una letra mayúscula. Así, cada vez que observes en el código una palabra con la primera letra en mayúscula sabrás que se trata de una clase sin necesidad de tener que buscar su declaración. Además, si el nombre de la clase está formado por varias palabras, cada una de ellas también tendrá su primera letra en mayúscula. Tanto la definición como la implementación de una clase se incluye en el mismo archivo (archivo ".java").

En nuestro ejemplo de la fábrica de galletas, la clase sería uno de los moldes para galletas, junto con los métodos para colorearlas y la receta (método para prepararlas). En nuestro ejemplo hemos creado una clase en Java llamada "MiClase" la cual posee un total de tres atributos (todos ellos privados) y son de tipo String, int y float respectivamente. Adicionalmente esta clase tiene un constructor (que siempre por norma, debe tener el mismo nombre de la clase) el cual no recibe ningún parámetro, aunque pueden recibir todos los parámetros que nosotros deseemos; también tiene un método llamado "metodo1" que no retorna valor alguno (es de tipo void) y otro método llamado "metodo2" que retorna una cadena de caracteres (es de tipo String) con el valor "metodo2". Vamos a crear un objeto o instancia en Java para la clase que hemos creado al comienzo llamada MiClase.

Lea también: Gestiona tu Contabilidad con Excel

Una pregunta que nos puede surgir es si debemos usar un constructor con parámetros o los métodos set de los atributos para establecer los valores de los atributos del objeto. Es importante notar que es similar hacer uso de método set para establecer atributos y usar el constructor enviándole parámetros, es decir, el resultado es el mismo al usar un constructor vacío y luego establecer los valores de los atributos por medio de una función set o usar un constructor que reciba una serie de parámetros que usará para establecer valores a los atributos. La diferencia radica esencialmente en la agilidad y número de líneas: al usar el constructor y enviar los parámetros, el constructor hace todas las asignaciones por nosotros y usamos una sola línea de código (normalmente) mientras que al usar métodos set debemos usar un método set por cada atributo, y si tenemos cinco o más atributos ya se vuelve un poco molesto hacerlo además de tener que usar un constructor de todas formas.

En este punto debemos saber cómo crear una clase, qué son atributos y métodos de una clase en Java, qué es y para qué sirve un constructor (al menos en una forma muy básica), cómo crear objetos en Java y cómo hacer uso de los métodos de una clase desde los objetos de la misma.

Ejemplos Prácticos de Declaración de Clases

Lo vamos a ver más fácil con un ejemplo sencillo. Supongamos que quieres hacer un programa que trabaja con personas. La clase Persona contiene la definición de “lo que tiene” una Persona. Supongamos que en tu programa una persona es simplemente “algo” que tiene: nombre, que es un texto, y edad, que es un número entero. Además, tu Persona puede presentarse. Para lo cual tiene un método que muestra un mensaje en la pantalla utilizando los valores de los campos nombre y edad. Veamos cómo se haría esto en diferentes lenguajes de programación.

Una vez que tenemos definida una CLASE, ya podemos empezar a crear objetos a partir del “molde” que define. En los siguientes códigos, creamos dos instancias de la clase Persona: Una para Luis, con 30 años; Otra para Maria, con 20 años. Además, llamamos al método Presentarse de cada instancia para que impriman un mensaje en la consola presentándose cordialmente (con sus respectivos nombres y edades). Como vemos, cada una de las instancias es independiente de las demás y tienen sus propios datos. En el ejemplo, cada Persona tiene su propio nombre y su propia edad. Además, cuando llaman al método Presentarse, acceden a sus propios valores. Cada instancia está, envuelta e independiente, con sus propios datos.

Otros ejemplos de clases incluyen: Implementar una clase llamada Alumno que tenga como atributos su nombre y su nota. Confeccionar una clase que permita almacenar el nombre y la edad de una persona. Mostrar los datos cargados. Desarrollar un programa que cargue los lados de un triángulo e implemente los siguientes métodos: inicializar los atributos, imprimir el valor del lado mayor y otro método que muestre si es equilátero o no. El nombre de la clase llamarla Triangulo. Confeccionar una clase que represente un empleado. Definir como atributos su nombre y su sueldo. En el método inicializar (que será el primero que deberemos llamar desde el main) creamos el objeto de la clase Scanner y cargamos por teclado los atributos nombre y edad.

Buenas Prácticas y Consideraciones al Declarar Clases

En primer lugar, dejar claro que no existe una única forma de modelar una persona. Para ti puede tener nombre y edad. Pero para otro puede tener nombre, fecha nacimiento y DNI. Algunas formas te darán menos problemas que otras en algún momento. Por ejemplo, edad, seguramente no es una buena idea, porque cambia todos los años. Probablemente te dé menos problemas fecha nacimiento en el futuro. Pero, aún así, no existe una única forma correcta. Lo que metas o lo que no metas, dependerá de tus necesidades y las de tu proyecto. Y un poco de “plus de picardía” de lo que dará problemas en el algún momento.

Los objetos proveen el beneficio de la modularidad y el ocultamiento de la información. Las clases proveen el beneficio de la reutilización.

La realidad es diferente: los atributos se relacionan al objeto o instancia y los métodos a la clase. ¿Por qué se hace así? Los atributos son variables comunes en cada objeto de una clase y cada uno de ellos puede tener un valor asociado, para cada variable, diferente al que tienen para esa misma variable los demás objetos.

Un bonus especial para hablar de la palabra “Objeto”. En principio, el concepto OBJETO, CLASE e INSTANCIA son conceptos relacionados, pero diferentes. Por un lado CLASE e INSTANCIA representan cosas muy diferentes, aquí no existe ninguna duda sobre su uso. La clase es el “molde”, y la instancia “lo que creas” con ese molde. Pero respecto a la palabra “Objeto”… ñieee. Cuando estéis en el día a día hablando con otros programadores, la vais a acabar usando tanto para referiros a clase como a instancia. Por ejemplo, a veces dirás “hay que crear un objeto alumno”. Y en realidad aquí te estás refiriendo a crear una clase Alumno. Pero otras veces dirás “este objeto de aquí me da un problema”, y ahí seguramente te estás refiriendo a una instancia. Al final, no os obsesionéis con ello, las palabras son palabras.

tags: #cómo #declarar #una #clase #programación