Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Java

Encapsulamiento en Java: Guía completa con ejemplo práctico

¿Qué es el encapsulamiento en Java?

Encapsulamiento es uno de los pilares fundamentales del diseño orientado a objetos en Java. Agrupa datos (campos) y las operaciones que manipulan esos datos (métodos) en una única unidad autocontenida: la clase. Al ocultar el estado interno detrás de una interfaz bien definida, el encapsulamiento protege a los objetos de interferencias no intencionadas y hace el código más fácil de mantener y probar.

En este tutorial aprenderás:

Haz clic aquí si el video no es accesible

Aprende encapsulamiento con un ejemplo

Para ilustrar el encapsulamiento, considera una clase simple de cuenta bancaria que ofrece funcionalidad de depósito y visualización de saldo.

class Account { private int accountNumber; private int accountBalance; public void showData() { // código para mostrar datos } public void deposit(int amount) { if (amount < 0) { // mostrar error } else { accountBalance = accountBalance + amount; } } }

Imagina que un actor malintencionado tiene acceso al código fuente e intenta inyectar un depósito negativo de -100. Hay dos vectores de ataque comunes:

Enfoque 1: Modificar directamente el campo accountBalance. Como el campo está declarado private, es inaccesible desde fuera de la clase Account, previniendo este ataque.

Encapsulamiento en Java: Guía completa con ejemplo práctico

Como puedes ver, el modificador private refuerza el encapsulamiento y protege el estado interno.

Encapsulamiento en Java: Guía completa con ejemplo práctico

Por tanto, el hacker no puede manipular el saldo directamente.

Encapsulamiento en Java: Guía completa con ejemplo práctico

Enfoque 2: Usar el método público deposit para añadir una cantidad negativa. El método contiene una validación que rechaza cualquier cantidad menor a cero, frustrando también este intento.

Encapsulamiento en Java: Guía completa con ejemplo práctico

Así, el encapsulamiento asegura que solo operaciones legítimas pueden modificar el estado del objeto.

Encapsulamiento en Java: Guía completa con ejemplo práctico

Toda la clase se comporta como una cápsula sellada: los datos están ocultos y la interacción ocurre únicamente a través de mensajes bien definidos. Esta es la esencia del encapsulamiento.

Encapsulamiento en Java: Guía completa con ejemplo práctico

Ocultación de datos en Java

La ocultación de datos es la práctica de restringir el acceso directo a los campos de un objeto desde fuera de su clase definidora. En Java, la palabra clave private hace cumplir esta restricción, haciendo el campo invisible a todas las demás clases. Esto mantiene la representación interna opaca, permitiendo a los desarrolladores modificarla sin romper código dependiente.

A veces se requiere un nivel de acceso menos restrictivo, como protected o public, para herencia o clases de utilidad. Sin embargo, el encapsulamiento fomenta el uso de campos private acoplados con métodos de acceso controlados.

Métodos Getter y Setter en Java

Los getters (accesores) y setters (mutadores) proporcionan una interfaz controlada para leer y actualizar campos privados. Permiten validación, logging o inicialización perezosa mientras preservan el encapsulamiento.

Ejemplo:

class Account { private int accountNumber; private int accountBalance; // accessor public int getBalance() { return this.accountBalance; } // mutator public void setNumber(int num) { this.accountNumber = num; } }

Aquí, getBalance() devuelve el saldo actual, mientras que setNumber() asigna un nuevo número de cuenta.

Abstracción vs. Encapsulamiento

Aunque relacionados, la abstracción y el encapsulamiento sirven propósitos distintos:

Piensa en un smartphone: la circuitería compleja está encapsulada detrás de una interfaz táctil, mientras que la abstracción proporciona funciones de alto nivel como llamar o enviar mensajes.

Ventajas del encapsulamiento en Java

Java

  1. Dominando la encapsulación en Java: Guía práctica de ocultamiento de datos
  2. Dominando el Casting de Tipos en Java: Desde Ensanchamiento hasta Estrechamiento y Más Allá
  3. Conceptos de POO en Java: Fundamentos, ejemplos y ventajas
  4. Método Java String length(): Cómo obtener el tamaño de un String (Ejemplo)
  5. Entendiendo Java String.charAt(): Sintaxis, tipo de retorno, excepciones y ejemplo práctico
  6. Método Java String.contains(): Cómo comprobar subcadenas – Ejemplos prácticos
  7. Dominando Java String.endsWith(): Cómo comprobar sufijos de cadena con ejemplos
  8. Lectura de archivos en Java con BufferedReader – Guía práctica con ejemplos
  9. Algoritmo Insertion Sort en Java: Ejemplo Claro y Guía Paso a Paso
  10. Selection Sort en Java: Ejemplo Paso a Paso y Código Completo
  11. Encapsulamiento en Java: Ocultación Segura de Datos y Control de Acceso