Encapsulación en Java OOP con ejemplo
¿Qué es la encapsulación en Java?
Encapsulación en Java es un mecanismo para envolver variables (datos) y métodos (código) juntos como una sola unidad. Es el proceso de ocultar los detalles de la información y proteger los datos y el comportamiento del objeto. Es uno de los cuatro conceptos importantes de programación orientada a objetos. La clase encapsulada es fácil de probar, por lo que también es mejor para las pruebas unitarias.
En este tutorial, aprenderá-
- ¿Qué es la encapsulación en Java?
- Aprender encapsulación con un ejemplo
- Ocultación de datos en Java
- Métodos Getter y Setter en Java
- Abstracción frente a encapsulación
- Ventajas de la encapsulación en Java
Haga clic aquí si no se puede acceder al video
Aprenda encapsulación con un ejemplo
Para comprender qué es la encapsulación en detalle, considere la siguiente clase de cuenta bancaria con métodos de depósito y mostrar saldo
class Account { private int account_number; private int account_balance; public void show Data() { //code to show data } public void deposit(int a) { if (a < 0) { //show error } else account_balance = account_balance + a; } }
Supongamos que un pirata informático logró acceder al código de su cuenta bancaria. Ahora, intenta depositar la cantidad -100 en su cuenta de dos maneras. Veamos su primer método o enfoque.
Enfoque 1: Intenta depositar una cantidad no válida (digamos -100) en su cuenta bancaria manipulando el código.
Ahora, la pregunta es:¿Es eso posible? Vamos a investigar.
Por lo general, una variable en una clase se establece como "privada", como se muestra a continuación. Solo se puede acceder con los métodos definidos en la clase. Ninguna otra clase u objeto puede acceder a ellos.
Si un miembro de datos es privado, significa que solo se puede acceder a él dentro de la misma clase. Ninguna clase externa puede acceder a miembros de datos privados o variables de otra clase.
Entonces, en nuestro caso, el pirata informático no puede depositar la cantidad -100 en su cuenta.
Enfoque 2 :El primer acercamiento del hacker no pudo depositar la cantidad. A continuación, intenta depositar una cantidad -100 utilizando el método de "depósito".
Pero la implementación del método tiene un control de valores negativos. Así que el segundo enfoque también falla.
Por lo tanto, nunca expone sus datos a una parte externa. Lo que hace que su aplicación sea segura.
Todo el código se puede pensar en una cápsula, y solo puedes comunicarte a través de los mensajes. De ahí el nombre de encapsulación.
Ocultación de datos en Java
Ocultación de datos en Java está ocultando las variables de una clase de otras clases. Solo se puede acceder a través del método de su clase actual. Oculta los detalles de implementación de los usuarios. Pero más que ocultar datos, está destinado a una mejor gestión o agrupación de datos relacionados.
Para lograr un menor grado de encapsulación en Java, puede usar modificadores como "protegido" o "público". Con la encapsulación, los desarrolladores pueden cambiar una parte del código fácilmente sin afectar a otra.
Getter y Setter en Java
Getter y Setter en Java son dos métodos convencionales utilizados para recuperar y actualizar los valores de una variable. Se utilizan principalmente para crear, modificar, eliminar y visualizar los valores de las variables. El método setter se usa para actualizar valores y el método getter se usa para leer o recuperar los valores. También se les conoce como accessor y mutator.
El siguiente código es un ejemplo de métodos getter y setter:
class Account{ private int account_number; private int account_balance; // getter method public int getBalance() { return this.account_balance; } // setter method public void setNumber(int num) { this.account_number = num; } }
En el ejemplo anterior, el método getBalance() es un método getter que lee el valor de la variable account_balance y el método setNumber() es un método setter que establece o actualiza el valor de la variable account_number.
Abstracción vs. Encapsulación
A menudo, la encapsulación se confunde con la abstracción. Vamos a estudiar-
- La encapsulación se trata más de "Cómo" lograr una funcionalidad
- La abstracción se trata más de "Qué" puede hacer una clase.
Un ejemplo sencillo para entender esta diferencia es un teléfono móvil. Donde la lógica compleja en la placa de circuito se encapsula en una pantalla táctil y se proporciona la interfaz para abstraerla.
Ventajas de la Encapsulación en Java
- La encapsulación vincula los datos con sus funcionalidades relacionadas. Aquí funcionalidades significa "métodos" y datos significa "variables"
- Así que mantenemos las variables y los métodos en un solo lugar. Ese lugar es "clase". La clase es la base para la encapsulación.
- Con Java Encapsulation, puede ocultar (restringir el acceso) a miembros de datos críticos en su código, lo que mejora la seguridad
- Como discutimos anteriormente, si un miembro de datos se declara "privado", solo se puede acceder a él dentro de la misma clase. Ninguna clase externa puede acceder al miembro de datos (variable) de otra clase.
- Sin embargo, si necesita acceder a estas variables, debe usar “getter” y “setter” públicos métodos.
Java
- Encapsulación de Java
- Conversión de tipos de Java
- Conceptos de programación orientada a objetos en Java | Qué es, Fundamentos con Ejemplos
- Método String Length () en Java:cómo encontrar con el ejemplo
- Método Java String charAt() con ejemplo
- Método Java String contains() | Comprobar subcadena con ejemplo
- Java String termina con () método con ejemplo
- Java BufferedReader:cómo leer un archivo en Java con un ejemplo
- Algoritmo de ordenación por inserción en Java con ejemplo de programa
- Clasificación de selección en el programa Java con ejemplo
- Java - Encapsulación