Java - Encapsulación
Encapsulación es uno de los cuatro conceptos fundamentales de la programación orientada a objetos. Los otros tres son herencia, polimorfismo y abstracción.
La encapsulación en Java es un mecanismo para envolver los datos (variables) y el código que actúa sobre los datos (métodos) juntos como una sola unidad. En la encapsulación, las variables de una clase se ocultarán de otras clases y solo se puede acceder a ellas a través de los métodos de su clase actual. Por lo tanto, también se conoce como ocultación de datos. .
Para lograr la encapsulación en Java −
-
Declarar las variables de una clase como privadas.
-
Proporcione métodos públicos setter y getter para modificar y ver los valores de las variables.
Ejemplo
El siguiente es un ejemplo que demuestra cómo lograr la encapsulación en Java −
/* File name : EncapTest.java */ public class EncapTest { private String name; private String idNum; private int age; public int getAge() { return age; } public String getName() { return name; } public String getIdNum() { return idNum; } public void setAge( int newAge) { age = newAge; } public void setName(String newName) { name = newName; } public void setIdNum( String newId) { idNum = newId; } }
Los métodos públicos setXXX() y getXXX() son los puntos de acceso de las variables de instancia de la clase EncapTest. Normalmente, estos métodos se conocen como getters y setters. Por lo tanto, cualquier clase que desee acceder a las variables debe acceder a ellas a través de estos captadores y definidores.
Se puede acceder a las variables de la clase EncapTest usando el siguiente programa −
/* File name : RunEncap.java */ public class RunEncap { public static void main(String args[]) { EncapTest encap = new EncapTest(); encap.setName("James"); encap.setAge(20); encap.setIdNum("12343ms"); System.out.print("Name : " + encap.getName() + " Age : " + encap.getAge()); } }
Esto producirá el siguiente resultado −
Salida
Name : James Age : 20
Beneficios de la encapsulación
-
Los campos de una clase pueden ser de solo lectura o de solo escritura.
-
Una clase puede tener control total sobre lo que se almacena en sus campos.
Java