Encapsulación vs abstracción
La encapsulación y la abstracción son dos conceptos diferentes pero relacionados que se encuentran en los lenguajes OOP (programación orientada a objetos). La encapsulación es el concepto de combinar datos y comportamientos juntos como una sola entidad. Por otro lado, la abstracción es el proceso de presentar cómo se comporta una entidad \ se ve en oposición a cómo se implementa.
Que es la encapsulación?
La encapsulación es el proceso de envolver datos y operaciones que funcionan en ellos en una sola entidad. Esto esencialmente significa que para acceder a los datos, se deben utilizar ciertos métodos predefinidos. En otras palabras, los datos encapsulados no son directamente accesibles. Esto se asegura de que la integridad de los datos se conserve porque el usuario no puede acceder directamente y modificar los datos como lo desea. Los usuarios obtendrán o establecerán los valores de datos solo a través de los métodos que están disponibles públicamente para los usuarios. Estos métodos generalmente proporcionan validación de datos para que solo los datos en el formato apropiado puedan insertarse en los campos. Por lo tanto, los beneficios de la encapsulación son triple. A través de la encapsulación, el programador puede hacer campos de una clase de solo lectura o escribir solo. En segundo lugar, una clase puede tener control total sobre lo que se almacena en sus campos. Finalmente, los usuarios de una clase no necesitan preocuparse por cómo se almacenan sus datos. En Java, el programador puede declarar que todas las instancias variables son privadas y proporcionan métodos Get and Set (que son públicos) para acceder y modificar los campos privados.
Que es la abstracción?
La abstracción es el proceso de separar los detalles de la presentación de los detalles de implementación. Esto se hace para que el desarrollador se alivie de los detalles de implementación más complejos. En cambio, el programador puede centrarse en la presentación o los detalles de comportamiento de la entidad. En términos simples, la abstracción se centra en cómo se puede usar una determinada entidad en lugar de cómo se implementa. La abstracción esencialmente oculta los detalles de implementación, de modo que incluso si la metodología de implementación cambia con el tiempo, el programador no tendría que preocuparse por cómo afectaría su programa. Un sistema se puede abstraer en varias capas o niveles. Por ejemplo, las capas de abstracción de bajo nivel revelarán detalles del hardware, mientras que la abstracción de alto nivel solo revelará la lógica comercial de la entidad. El término abstracción puede usarse para referirse tanto a una entidad como a un proceso y esto lleva a cierta confusión. Como proceso, la abstracción significa extraer detalles esenciales mientras ignora los detalles inesenciales de un elemento o un grupo de elementos, mientras que como entidad, la abstracción significa un modelo o una vista de una entidad con solo los detalles esenciales. En Java, el programador puede usar el resumen de la palabra clave para declarar una clase como una entidad abstracta, que representa las caracterizaciones definitorias esenciales de una entidad del mundo real.
¿Cuál es la diferencia entre encapsulación y abstracción??
Aunque la encapsulación y la abstracción son conceptos altamente relacionados que se encuentran en los lenguajes de programación orientados a objetos, tienen diferencias clave. La abstracción es una técnica, que nos ayuda a identificar qué debe ser visible y qué debe estar oculto. La encapsulación es las técnicas para empacar la información de tal manera que haga visible lo que debería ser visible y oculta lo que debe estar oculto. En otras palabras, la encapsulación se puede identificar como un paso más allá de la abstracción. Si bien la abstracción reduce un objeto del mundo real a sus características de definición esenciales, la encapsulación extiende esta idea modelando y vinculando esta funcionalidad de esa entidad.