logo

Encapsulación en Java

Encapsulación en Java es un Proceso de agrupar código y datos en una sola unidad. , por ejemplo, una cápsula que contiene una mezcla de varios medicamentos.

palíndromo en java
encapsulación en java

Podemos crear una clase completamente encapsulada en Java haciendo que todos los miembros de datos de la clase sean privados. Ahora podemos usar los métodos setter y getter para configurar y obtener los datos que contiene.

El frijol java class es el ejemplo de una clase completamente encapsulada.

Ventaja de la encapsulación en Java

Al proporcionar sólo un método setter o getter, puedes hacer que la clase solo lectura o solo escritura . En otras palabras, puede omitir los métodos getter o setter.

Te proporciona la control sobre los datos . Supongamos que desea establecer el valor de id, que debe ser mayor que 100 solamente, puede escribir la lógica dentro del método de establecimiento. Puede escribir la lógica para no almacenar los números negativos en los métodos de establecimiento.

Es una manera de lograr ocultación de datos en Java porque otra clase no podrá acceder a los datos a través de los miembros de datos privados.

La clase encapsulada es fácil de probar . Por lo tanto, es mejor para pruebas unitarias.

Los IDE estándar proporcionan la posibilidad de generar captadores y definidores. Así es fácil y rápido para crear una clase encapsulada en Java.

Ejemplo simple de encapsulación en Java

Veamos el ejemplo simple de encapsulación que tiene un solo campo con sus métodos setter y getter.

Archivo: Estudiante.java

 //A Java class which is a fully encapsulated class. //It has a private data member and getter and setter methods. package com.javatpoint; public class Student{ //private data member private String name; //getter method for name public String getName(){ return name; } //setter method for name public void setName(String name){ this.name=name } } 

Archivo: Prueba.java

 //A Java class to test the encapsulated class. package com.javatpoint; class Test{ public static void main(String[] args){ //creating instance of the encapsulated class Student s=new Student(); //setting value in the name member s.setName('vijay'); //getting value of the name member System.out.println(s.getName()); } } 
 Compile By: javac -d . Test.java Run By: java com.javatpoint.Test 

Producción:

 vijay 

Clase de solo lectura

 //A Java class which has only getter methods. public class Student{ //private data member private String college='AKG'; //getter method for college public String getCollege(){ return college; } } 

Ahora, no puede cambiar el valor del miembro de datos de la universidad que es 'AKG'.

 s.setCollege('KITE');//will render compile time error 

Clase de solo escritura

 //A Java class which has only setter methods. public class Student{ //private data member private String college; //getter method for college public void setCollege(String college){ this.college=college; } } 

Ahora, no puede obtener el valor de la universidad, solo puede cambiar el valor del miembro de datos de la universidad.

 System.out.println(s.getCollege());//Compile Time Error, because there is no such method System.out.println(s.college);//Compile Time Error, because the college data member is private. //So, it can't be accessed from outside the class 

Otro ejemplo de encapsulación en Java

Veamos otro ejemplo de encapsulación que tiene solo cuatro campos con sus métodos setter y getter.

Archivo: Cuenta.java

burak ozcivit
 //A Account class which is a fully encapsulated class. //It has a private data member and getter and setter methods. class Account { //private data members private long acc_no; private String name,email; private float amount; //public getter and setter methods public long getAcc_no() { return acc_no; } public void setAcc_no(long acc_no) { this.acc_no = acc_no; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public float getAmount() { return amount; } public void setAmount(float amount) { this.amount = amount; } } 

Archivo: TestAccount.java

 //A Java class to test the encapsulated class Account. public class TestEncapsulation { public static void main(String[] args) { //creating instance of Account class Account acc=new Account(); //setting values through setter methods acc.setAcc_no(7560504000L); acc.setName('Sonoo Jaiswal'); acc.setEmail('[email protected]'); acc.setAmount(500000f); //getting values through getter methods System.out.println(acc.getAcc_no()+' '+acc.getName()+' '+acc.getEmail()+' '+acc.getAmount()); } } 
Pruébalo ahora

Producción:

 7560504000 Sonoo Jaiswal [email protected] 500000.0