Breaking

Post Top Ad

Your Ad Spot

jueves, 19 de diciembre de 2019

Encapsulación Java

En este tutorial, aprenderá sobre la encapsulación y la ocultación de datos en Java con la ayuda de ejemplos.

Encapsulación Java

La encapsulación es una de las características clave de la programación orientada a objetos. La encapsulación se refiere a la agrupación de campos y métodos dentro de una sola clase.
Agrupar campos y métodos similares dentro de una clase juntos también ayuda a ocultar datos.

Encapsulando campos y métodos

En general, la encapsulación es un proceso de envoltura de código similar en un solo lugar.
En Java, podemos agrupar campos y métodos que operan juntos dentro de una sola clase. Por ejemplo,
  1. class Rectangle {
  2. int length;
  3. int breadth;
  4. public void getArea() {}
  5. }
En el programa anterior, el método getArea()calcula el área de un rectángulo. Para calcular el área, necesita longitud y amplitud . Por lo tanto, la longitud , la amplitud y el método de los campos de datos getArea()se mantienen juntos en la clase Rectángulo .

Ocultación de datos Java

La ocultación de datos es una forma de restringir el acceso de nuestros miembros de datos al ocultar los detalles de implementación.
La encapsulación también proporciona una forma de ocultar datos.
La ocultación de datos se puede lograr con la ayuda de modificadores de acceso. En Java, hay cuatro modificadores de acceso:
  • público : visible desde cualquier lugar
  • privado : visible solo desde la clase
  • protegido : visible dentro del paquete y entre sus subclases
  • predeterminado : visible dentro del paquete
Para obtener más información, visite Modificadores de acceso Java .

Ejemplo 1: Ocultar datos usando privado

  1. class Person {
  2. private int age;
  3. public int getAge() {
  4. return age;
  5. }
  6. public void setAge(int age) {
  7. this.age = age;
  8. }
  9. }
  10. class Main {
  11. public static void main(String[] args) {
  12. Person p1 = new Person();
  13. p1.setAge(24);
  14. System.out.println("My age is " + p1.getAge());
  15. }
  16. }
Salida
Mi edad es 24
En el ejemplo anterior, tenemos una edad deprivate campo Como es privado, no se puede acceder desde fuera de la clase. Para acceder a la edad , hemos utilizado métodos Estos métodos se llaman métodos getter y setter.publicgetAge()setAge()
Si intentamos acceder al campo de edad desde la clase Principal , obtendremos un error.
  1. p1.age = 24; // error: age has private access in Person
Hacer que la edad sea privada nos permitió restringir el acceso no autorizado desde fuera de la clase. Esto es ocultar datos.

Ejemplo 2: Ocultar datos usando protección

  1. class Person {
  2. protected String profession;
  3. protected void displayInfo() {
  4. System.out.println("I am a " + profession);
  5. }
  6. }
  7. class Teacher extends Person {
  8. public static void main(String[] args) {
  9. Teacher t1 = new Teacher();
  10. t1.profession = "teacher";
  11. t1.displayInfo();
  12. }
  13. }
Salida
Yo soy un profesor
En el programa anterior, hemos creado una persona de clase que incluye una profesión deprotected campo y un método .protecteddisplayInfo()
Hemos accedido a estos miembros desde la clase Profesor (que es una subclase de Persona ).

¿Por qué encapsulación?

  • En Java, la encapsulación nos ayuda a mantener juntos los campos y métodos relacionados, lo que hace que nuestro código sea más limpio y fácil de leer.
  • Ayuda a controlar la modificación de nuestros campos de datos. Considere una situación en la que queremos que el campo de edad en una clase no sea negativo. Aquí podemos hacer la edad privatey aplicar la lógica dentro del método setAge()Por ejemplo,
  1. class Person {
  2. private int age;
  3. public void setAge(int age) {
  4. if (age >= 0) {
  5. this.age = age;
  6. }
  7. }
  8. }
  • Los métodos getter y setter proporcionan acceso de solo lectura o de solo escritura a nuestros campos de clase. Por ejemplo,
  1. getName() // provides read-only access
  2. setName() // provides write-only access
  • Ayuda a desacoplar componentes de un sistema. Estos componentes desacoplados se pueden desarrollar, probar y depurar de forma independiente y simultánea. Y, cualquier cambio en un componente en particular no tiene ningún efecto en otros componentes.

Ocultación de datos vs. Encapsulamiento

La gente a menudo considera la encapsulación como un ocultamiento de datos, pero eso no es del todo cierto.
La encapsulación se refiere a la agrupación de campos y métodos relacionados juntos. Esto nos permite lograr el ocultamiento de datos. La encapsulación en sí misma no es ocultar datos.

No hay comentarios.:

Publicar un comentario

Dejanos tu comentario para seguir mejorando!

Post Top Ad

Your Ad Spot

Páginas