Dos de las palabras más importantes en la jerga de cualquier programador de POO. Conócelas, ámalas, pronúncialas correctamente.
Continuamos con la serie de artículos sobre los fundamentos de la Programación Orientada a Objetos. Hoy hablaremos de dos palabras clave en la POO: atributos y métodos. Son la base del vocabulario de la POO, así que es esencial conocerlas.
Resumen de las partes anteriores:
- La POO es un enfoque de programación que se basa en el concepto de objetos y clases.
- Un objeto se puede visualizar como una «caja» que contiene ciertos datos y que puede realizar determinadas acciones. Sin objetos, todo esto reside simplemente «en el programa», mientras que gracias a los objetos se organiza en «cajas» manejables y comprensibles.
- Es posible tener objetos de tipo, es decir, objetos que tienen una estructura y contenido similares, como cuando se producen bienes en una cadena de montaje. El plano a partir del cual se crean estos objetos se llama clase. Por ejemplo, en un programa podría haber una clase «usuario» a partir de la cual se crean todos los futuros usuarios. O una clase «producto» a partir de la cual se crean todos los futuros productos.
- Todo esto es necesario para organizar el trabajo en programas complejos y extensos.
- Ahora nos sumergimos en los atributos y métodos.
Explicación de Atributos
Un atributo es una variable asociada a un objeto o clase.
En términos sencillos, si quiero que el objeto «Usuario» tenga un apellido, debo crear un atributo para el usuario denominado «Apellido».
Para los programadores: Una clase tiene atributos, propiedades y campos. Dependiendo del lenguaje de programación, estos tres parámetros pueden significar lo mismo o pueden diferir. En este artículo, analizamos el enfoque académico de la estructura de clase en forma de «atributo-valor«.
Tomemos como ejemplo la metáfora de la producción de teléfonos. Tenemos una clase «Smartphone«: un smartphone abstracto a partir del cual se fabrican objetos-smartphones específicos.
La clase «Smartphone» puede tener los siguientes atributos:
- Cámara trasera
- Cámara frontal
- Sensores de volumen
- Batería
- Memoria
Estos serán los atributos de la clase «Smartphone». Pueden tomar valores específicos: las cámaras pueden ser de diferentes modelos, la memoria puede ser de 64 o 256 gigabytes y la batería de 2500 mAh o 3500 mAh.
Al definir un atributo para una clase, es como si estuviéramos configurando la línea de producción: «Aquí tendremos una máquina para instalar cámaras, allí una para pegar la batería«. Cuando definimos una clase con determinados atributos, todos los objetos producidos a partir de esta clase nacerán con estos atributos.
Explicación de Métodos
Los métodos son la forma de interactuar con los atributos, conocer y modificar sus valores. Vamos a analizarlos usando el mismo ejemplo anterior de la clase de teléfono móvil. Estas son algunas de las acciones que se pueden realizar:
- Llamar
- Hacer una foto
- Procesar fotos HDR para obtener buenos resultados al disparar a contraluz
- Escribir notas
- Instalar un programa
- Ver el tiempo
- Mirar fotos
- Captar señal de red móvil
Por lo tanto, los métodos se encargan de permitir la interacción con la clase. La mayoría de las veces, son responsables de lo que se puede hacer con los atributos.
Si observamos la lista, podemos ver que casi todos los métodos están disponibles para su ejecución desde el exterior: llamar, hacer una foto, ver el tiempo, etc. Esto significa que son métodos públicos (public
), a los que cualquiera puede llamar y utilizar: tanto el usuario como otros programas para sus necesidades.
Pero otros dos métodos de la lista son especiales: procesar fotos HDR y captar señal de red. No se pueden ejecutar directamente, los invoca el sistema operativo cuando es necesario. Esto significa que son métodos privados (private
) y solo están disponibles dentro de la propia clase. Si la clase necesita procesar algo internamente, los utilizará, pero otros no podrán hacerlo.
También existen métodos protegidos (protected
). Aún no aparecen en nuestros ejemplos, pero llegaremos a ellos.
Serie de Guías Relacionadas a POO:
- Explicación Programación Orientada a Objetos
- ¿Qué son las Clases en Programación Orientada a Objetos?
- ¿Qué son los Objetos en Programación Orientada a Objetos?
- Clases y Funciones en Programación Orientada a Objetos
- Atributos y Métodos en Programación Orientada a Objetos
- Abstracciones e Interfaces: ¿Por qué son Necesarias?
- ¿Qué son los Getters y Setters en Programación?