Abstracción vs Encapsulación: Diferencia entre Abstracción y Encapsulación

Publicado: 2021-02-09

Tabla de contenido

Introducción

Todo programador se esfuerza por desarrollar un código limpio y ordenado, y debe usar un arma adecuada de los conceptos de armadura o programación orientada a objetos. El uso de conceptos OOP adecuados reducirá la complejidad y la entidad de los objetos se disociará de otras partes del código. Además, mejora la legibilidad y se puede modificar fácilmente si es necesario.

Además, el concepto OOP como herencia proporciona la extensibilidad del código. Estos conceptos son útiles para definir clases abstractas, actualizar códigos implementados previamente, implementar una aplicación para escenarios de la vida real.

La abstracción, la encapsulación son los conceptos fundamentales en la programación orientada a objetos. Y cada programador implementa estos conceptos para un código limpio y reutilizable. Pero hay una cantidad considerable de diferencias entre estos dos conceptos, entendámoslas en este artículo.

Primero, hagamos un recorrido rápido por los conceptos de abstracción y encapsulación.

Abstracción

La abstracción es un proceso de ocultar datos innecesarios y mostrar solo datos relevantes. Fuera de un océano de datos, solo mantenemos la transparencia de algunos datos para el usuario. Este importante concepto en la programación orientada a objetos reducirá la complejidad del código y aumentará la legibilidad.

Por ejemplo, supongamos que se nos asignó una tarea para crear un portal de inscripción de cursos en línea y los campos de datos disponibles para nosotros son {nombre, edad, ocupación actual, nombre de la universidad, nombre del curso, método de pago, nombre del hermano, estado civil, vehículo número}.

Después de echar un vistazo a los campos de datos disponibles, llegaremos a entender que algunos de los campos no son necesarios para el portal de inscripción al curso, campos como {nombre del hermano, estado civil, número de vehículo} no son necesarios para la inscripción al curso.

Por lo tanto, debemos ser específicos y elegir solo los datos relevantes. Ahora los campos necesarios son {nombre, edad, ocupación actual, nombre de la universidad, nombre del curso, método de pago}, esto es un ejemplo de abstracción en OOP porque hemos escoltado información seleccionada de datos completos.

Ahora, estos nuevos datos también se pueden usar para otras aplicaciones, como el seguimiento del estado del curso, el registro de finalización del curso, etc. Podemos usar los mismos datos sin ningún cambio.

Mucha gente se confunde a menudo acerca de la abstracción y la clase abstracta. Entonces, ¿ambos están relacionados?

Una clase abstracta es diferente de la abstracción, las clases/métodos abstractos se crean con la intención de implementarlos en una clase o subclase secundaria. Mientras que la abstracción simplemente oculta los datos y muestra solo los datos relevantes mediante el uso de especificadores de acceso como público, protegido, privado.

Encapsulación

La encapsulación vincula los miembros de datos con las variables miembro. Esto evitará el acceso directo a las variables, porque el acceso directo a las variables puede violar la privacidad y no será posible ocultar la implementación.

Es posible que hayamos pasado por algunos métodos clásicos en clase como set y get, donde el método set se usa para actualizar o asignar un valor a una variable y el método get se usa para leer o recuperar el valor de una variable. Aquí podemos acceder directamente a las variables usando el objeto de esa clase, pero si queremos hacer que una variable sea privada, debemos usar esta configuración y obtener métodos.

El concepto es simple, haremos públicos los métodos set y get y las variables serán privadas. Por lo tanto, solo se puede acceder a las variables a través de los métodos públicos fuera de la clase, ya que los objetos privados no son accesibles fuera de la clase, pero sí dentro de la clase. Este concepto de vincular o agrupar variables con métodos se denomina encapsulación.

Echemos un vistazo a un programa java simple para entender esto mejor.

clase CursoRegistro {
cadena privada nombre_estudiante;
cadena privada nombre_del_curso;
cadena pública getName (){
volver estudiante_nombre;
}
public void setName (nombre de la cadena){
este .student_name=nombre;
}
Cadena pública getCourse (){
volver nombre_del_curso;
}
public void setCourse (Curso de cadena){
este .course_name=curso;
}
}
clase pública u pGrad {
public static void principal (String[] args){
RegistroCurso c= new RegistroCurso();
c.setName( "mithun" );
c.setCourse( "Ciencia de datos" );
System.out.println(c.getName());
System.out.println(c.getCourse());
}
}

En el código anterior, hemos creado una clase CourseRegistration, donde las variables miembro nombre del estudiante y nombre del curso son privadas, pero estamos accediendo a ella en otra clase usando las funciones de establecer nombre y obtener nombre. En la clase principal, hemos creado un objeto de tipo CourseRegistration. Estamos inicializando y accediendo a las variables miembro usando las funciones set y get.

Ahora que hemos visto la definición y el ejemplo de abstracción, analicemos las ventajas y diferencias entre abstracción y encapsulación.

Ventajas de la abstracción

  • La privacidad de los datos se mantiene ya que solo los datos relevantes son visibles para el usuario.
  • Reduce la complejidad del código y aumenta la legibilidad.
  • La clase que implementa la abstracción se puede usar como clase principal heredándola, mejorando así la reutilización y reduciendo la duplicación.

Ventajas de la encapsulación

  • Ayuda a vincular los miembros de datos con funciones miembro.
  • Mejora la eficiencia y es fácil de usar para el análisis de errores.
  • Proporciona flexibilidad al programador en el control de la accesibilidad y transparencia de los datos.

Diferencia entre abstracción y encapsulación

Definición

  • La abstracción oculta los detalles y la implementación del código.
  • La encapsulación oculta los datos y controla la visibilidad del código.

Fase

  • La abstracción es un proceso a nivel de diseño.
  • La encapsulación es un proceso de nivel de implementación.

Habilidad fundamental

  • La abstracción se preocupa por lo que puede hacer una instancia de clase, en lugar de la implementación de la clase.
  • La encapsulación ayuda en el enlace de datos y el control sobre el mantenimiento de la transparencia de los datos.

Caso de uso

  • La abstracción es un proceso a nivel de diseño y se utiliza para reducir la complejidad en la etapa de diseño de un proyecto.
  • La encapsulación es un proceso de nivel de implementación y se utiliza para brindar privacidad y mantener el control sobre la transparencia de los datos en la etapa de implementación de un proyecto.

Cómo implementar

  • La abstracción se puede lograr usando clases e interfaces en java.
  • La encapsulación también se implementa usando clases y el control sobre la privacidad de los datos se obtiene especificando especificadores de acceso como protegido, público, privado.

Aprenda cursos de desarrollo de software en línea de las mejores universidades del mundo. Obtenga programas Executive PG, programas de certificados avanzados o programas de maestría para acelerar su carrera.

Conclusión

Hemos analizado la importancia de los conceptos de programación orientada a objetos, entendido la definición de abstracción y encapsulación. Revisó los ejemplos de abstracción y encapsulación. También echamos un vistazo a las ventajas de usar conceptos de programación orientada a objetos como la abstracción y la encapsulación. Y finalmente, hemos analizado la diferencia entre abstracción y encapsulación.

Ahora que conoce la definición e implementación de abstracción, encapsulación, intente implementarlos en su código e intente reducir la complejidad del código que va a escribir a partir de ahora.

Si está interesado en obtener más información sobre Java, desarrollo de pila completa, consulte el programa Executive PG de upGrad & IIIT-B en desarrollo de software de pila completa, que está diseñado para profesionales que trabajan y ofrece más de 500 horas de capacitación rigurosa, más de 9 proyectos. , y asignaciones, estado de ex alumnos de IIIT-B, proyectos finales prácticos y asistencia laboral con las mejores empresas.

¿Qué es la abstracción en la programación orientada a objetos?

La abstracción en la programación orientada a objetos es una técnica para representar la información de alto nivel sobre un problema mediante la construcción de un objeto. La abstracción se implementa con la ayuda de la interfaz y la implementación de la interfaz se realiza utilizando el código real. La abstracción se implementa donde los detalles concretos se ocultan de los módulos consumidores proporcionándoles una interfaz diferente. La abstracción se implementa para ocultar los detalles de implementación de los detalles de bajo nivel. También se utiliza para ocultar los detalles complejos y proporcionar una interfaz más sencilla para el usuario.

¿Cómo funcionan las clases y los objetos en la programación?

Las clases y los objetos son los dos conceptos principales empleados en todos los lenguajes de programación orientados a objetos. Cada clase contiene un conjunto de variables y métodos que puede usar y manipular. En un lenguaje de programación orientado a objetos, todos los objetos en un programa tienen un tipo específico y las variables y métodos de un objeto solo pueden ser manipulados por métodos del mismo tipo. En la mayoría de los lenguajes orientados a objetos, la clase se usa para crear un objeto y viceversa. Un programa orientado a objetos se compone de objetos, procedimientos y tipos de datos. Todo en un programa orientado a objetos, incluidos los datos y el código, es un objeto.

¿Cuáles son las diferencias entre encapsulación y abstracción?

La abstracción es un método para eliminar los detalles innecesarios en el código y centrarse en las partes relevantes. Por ejemplo, en lugar de escribir una función que multiplique dos números, podemos escribir una función "multiplicar" y usarla para multiplicar cualquier número con cualquier número. La abstracción es una forma de representar algunos datos específicos. La encapsulación es una forma de ocultar la complejidad de algo y exponer solo las partes que desea exponer. Por ejemplo, si tiene una clase que tiene uno o más campos privados que usa para almacenar los datos, entonces está encapsulado. La clase contiene los datos y tiene métodos que exponen los datos públicos.