Abstracción :
en OOP, la abstracción es el método para obtener información donde la información necesaria se tomará de la manera más simple que solo se extraen los componentes necesarios, y también los que se consideran menos significativos pasan desapercibidos. El concepto de abstracción solo muestra la información necesaria a los usuarios. Reduce la complejidad del programa ocultando las complejidades de implementación de los programas.
Ejemplo de Abstracción:
CPP
#include <iostream> using namespace std; class Summation { private: // private variables int a, b, c; public: void sum(int x, int y) { a = x; b = y; c = a + b; cout<<"Sum of the two number is : "<<c<<endl; } }; int main() { Summation s; s.sum(5, 4); return 0; }
Producción:
Sum of the two number is: 9
En este ejemplo, podemos ver que la abstracción se ha logrado mediante el uso de la clase. La clase ‘Summation’ contiene los miembros privados a, b y c, a los que solo pueden acceder las funciones miembro de esa clase.
Encapsulación :
La encapsulación es el proceso o método para contener la información. La encapsulación es un método para ocultar los datos en una sola entidad o unidad junto con un método para proteger la información del mundo exterior. Este método encapsula los datos y la función juntos dentro de una clase que también da como resultado la abstracción de datos.
Ejemplo de encapsulación:
CPP
#include <iostream> using namespace std; class EncapsulationExample { private: // we declare a as private to hide it from outside int a; public: // set() function to set the value of a void set(int x) { a = x; } // get() function to return the value of a int get() { return a; } }; // main function int main() { EncapsulationExample e1; e1.set(10); cout<<e1.get(); return 0; }
Producción:
10
En este programa, la variable a se hace privada para que esta variable pueda ser accedida y manipulada solo usando los métodos get() y set() que están presentes dentro de la clase. Por lo tanto, podemos decir que la variable a y los métodos set() y get() se han unido, lo que no es más que una encapsulación.
Diferencia entre abstracción y encapsulación:
S.NO | Abstracción | Encapsulación |
---|---|---|
1. | La abstracción es el proceso o método de obtener la información. | Mientras que la encapsulación es el proceso o método para contener la información. |
2. | En abstracción, los problemas se resuelven a nivel de diseño o interfaz. | Durante la encapsulación, los problemas se resuelven en el nivel de implementación. |
3. | La abstracción es el método de ocultar la información no deseada. | Mientras que la encapsulación es un método para ocultar los datos en una sola entidad o unidad junto con un método para proteger la información del exterior. |
4. | Podemos implementar la abstracción usando interfaces y clases abstractas. | Mientras que la encapsulación se puede implementar mediante el modificador de acceso, es decir, privado, protegido y público. |
5. | En abstracción, las complejidades de implementación se ocultan mediante clases e interfaces abstractas. | Mientras está encapsulado, los datos se ocultan mediante métodos de obtención y configuración. |
6. | Los objetos que ayudan a realizar la abstracción están encapsulados. | Mientras que los objetos que dan como resultado la encapsulación no necesitan abstraerse. |