Diferencia entre Abstracción y Encapsulación en C++

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.

Publicación traducida automáticamente

Artículo escrito por MKS075 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *