data abstraction c
Todo lo que necesita saber sobre la abstracción en C ++.
En esta serie de tutoriales de C ++, aprenderemos todos los conceptos principales de la programación orientada a objetos en C ++, que se conocen como los cuatro pilares de OOP.
- Abstracción
- Encapsulamiento
- Herencia
- Polimorfismo
En este tutorial, exploraremos todo sobre la abstracción de datos en C ++.
=> Haga clic aquí para ver la serie de capacitación Absolute C ++.
Lo que vas a aprender:
- ¿Qué es la abstracción?
- Implementación de abstracción en C ++
- Ventajas de la abstracción
- Conclusión
- Lectura recomendada
¿Qué es la abstracción?
La abstracción es una técnica de programación orientada a objetos mediante la cual ocultamos los detalles de implementación al usuario y solo exponemos una interfaz que se requiere.
Podemos tomar un ejemplo de la vida real de un acondicionador de aire (AC). Disponemos de un mando a distancia para controlar las distintas funciones de AC como arrancar, parar, aumentar / disminuir la temperatura, controlar la humedad, etc. Podemos controlar estas funciones solo con un reloj de un botón pero internamente hay una lógica compleja que es implementado para realizar estas funciones.
Sin embargo, como usuario final, a lo que nos exponemos es solo a la interfaz remota y no a los detalles de implementación de todas estas funciones.
La abstracción es uno de los cuatro pilares de la programación orientada a objetos y casi todas las soluciones de programación orientada a objetos se basan en los principios de abstracción, es decir, la separación de la interfaz y los detalles de implementación en el programa.
En el diagrama anterior, hemos mostrado un objeto y su contenido como una representación pictórica. Podemos ver que la capa más interna de este objeto es su funcionalidad principal seguida de los detalles de implementación.
En OOP, estas dos capas (aunque en la mayoría de los casos es solo una capa) no están expuestas al mundo exterior. La capa más externa, la interfaz, es la capa que se proporciona al usuario final para acceder a la funcionalidad del objeto.
Como resultado, cualquier cambio realizado en las capas más internas del objeto no es evidente para el usuario final siempre que la interfaz a la que el usuario está expuesto siga siendo la misma.
Implementación de abstracción en C ++
C ++ admite la abstracción a gran profundidad. En C ++ incluso las funciones de biblioteca que usamos pueden considerarse como un ejemplo de abstracción.
¿Cómo encuentro una clave de seguridad de red?
Podemos representar la implementación de la abstracción en C ++ de la siguiente manera:
Como se muestra en la figura anterior, podemos implementar la abstracción en C ++ de dos formas:
# 1) Uso de clases y especificadores de acceso
Una clase implementada en C ++ con especificadores de acceso público, privado y protegido, puede considerarse como una implementación de abstracción.
Como ya sabemos, el uso de especificadores de acceso nos permite controlar el acceso otorgado a los miembros de la clase. Podemos hacer que algunos miembros sean privados para que sean inaccesibles fuera de la clase. Podemos tener algunos miembros protegidos para que sean accesibles solo para las clases derivadas. Por último, podemos hacer públicos algunos miembros para que estos miembros sean accesibles fuera de la clase.
Usando esta noción, podemos implementar la abstracción de tal manera que los detalles de implementación estén ocultos al mundo exterior usando un especificador de acceso privado mientras que la interfaz puede exponerse al mundo exterior usando el especificador público.
Por lo tanto, podemos implementar la abstracción en C ++, usando una clase para agrupar datos y funciones en una sola unidad y usando especificadores de acceso para controlar el acceso a estos datos y funciones.
Implementemos el siguiente ejemplo para demostrar esto.
|_+_|Producción:
¿Qué es la prueba de regresión con ejemplo?
Ingrese num1: 10
Ingrese num2: 20
Suma de los dos números = 30
En el programa anterior, tenemos una clase de muestra que tiene dos variables enteras, num1 y num2. También tiene dos funciones readNum y displaySum. Los miembros de datos num1 y num2, así como la función readNum, son privados para la clase.
La función displaySum es pública para la clase. En la función principal, creamos un objeto de la clase sample y llamamos a displaySum que lee los dos números e imprime su suma.
Esta es la implementación de la abstracción. Exponemos solo una función al público mientras mantenemos los otros miembros de datos y funciones en secreto. Aunque este es solo un ejemplo para demostrar la abstracción, al implementar problemas de la vida real, podemos tener muchos niveles de abstracción en C ++.
# 2) Uso de la implementación de archivos de encabezado
Usamos archivos de encabezado en el programa C ++ para importar y usar funciones predefinidas. Para esto, usamos la directiva #include para incluir archivos de encabezado en nuestro programa.
Por ejemplo, en el programa anterior, hemos utilizado las funciones cin y cout. En lo que a estas funciones se refiere, solo sabemos cómo usarlas y cuáles son los parámetros que toman.
No sabemos qué sucede en segundo plano cuando se llaman estas funciones o cómo se implementan en el archivo de encabezado de iostream. Esta es otra forma de abstracción proporcionada por C ++.
No conocemos los detalles de la implementación de todas las funciones que importamos de los archivos de encabezado.
Aquí hay otro ejemplo para demostrar la abstracción.
|_+_| Producción:
EmpId = 1 Nombre = Ved
Salario del empleado = 18245.4
En este ejemplo, hemos definido un empleado de clase que tiene detalles privados como empId, nombre, detalles de salario como básico y asignaciones. También definimos una función privada 'calcularSalario' que calcula el salario utilizando prestaciones básicas y.
Tenemos un constructor para inicializar todos los datos de un objeto empleado en particular. También llamamos a la función 'calcularSalario' del constructor para calcular el salario del empleado actual.
A continuación, tenemos una función de 'visualización' que muestra el empleo, el nombre y el salario. En la función principal, creamos un objeto de clase empleado y llamamos a la función de visualización.
Podemos ver claramente el nivel de abstracción que hemos proporcionado en este programa. Hemos ocultado todos los detalles de los empleados, así como la función de cálculo de salario del usuario al hacerlos privados.
Hemos expuesto solo una pantalla de función al usuario que le brinda toda la información sobre el objeto del empleado al usuario y, al mismo tiempo, también oculta detalles como datos privados y cómo calculamos el salario del empleado.
Al hacer esto, en el futuro, si queremos agregar más detalles y cambiar la forma en que se calcula el salario, no tenemos que cambiar la función de visualización. El usuario desconocerá estos cambios.
Ventajas de la abstracción
A continuación se enumeran algunas de las ventajas de la abstracción.
- El programador no necesita escribir código de bajo nivel.
- La abstracción protege la implementación interna del uso malintencionado y los errores.
- La abstracción puede evitar la duplicación de código y, por lo tanto, el programador debe realizar las mismas tareas una y otra vez.
- La abstracción promueve la reutilización del código y clasifica adecuadamente a los miembros de datos de la clase.
- El programador puede cambiar los detalles internos de la implementación de la clase sin el conocimiento del usuario final, sin afectar las operaciones de la capa externa.
Conclusión
La abstracción es uno de los conceptos más importantes en POO y se implementa con gran profundidad en C ++. Usando la abstracción, podemos mantener los detalles de implementación del programa en secreto y solo exponer los detalles que queremos al mundo exterior.
Al utilizar el concepto de abstracción, podemos diseñar clases y tipos de datos abstractos que actúen como un esqueleto de la solución de programación sobre la cual se construye una solución completa. A medida que avancemos en los temas de programación orientada a objetos, aprenderemos más sobre estos tipos y clases.
En nuestros próximos tutoriales, aprenderemos sobre otro pilar de la programación orientada a objetos, es decir, la encapsulación. Allí también sopesaremos la abstracción y la encapsulación.
=> Busque toda la serie de formación en C ++ aquí.
Lectura recomendada
- Tipos de datos C ++
- Encapsulación en C ++
- Las 10 mejores herramientas de ciencia de datos en 2021 para eliminar la programación
- Programación orientada a objetos en C ++
- Introducción a las estructuras de datos en C ++
- 70+ MEJORES Tutoriales de C ++ para aprender programación C ++ GRATIS
- Parametrización de datos de JMeter usando variables definidas por el usuario
- Las 10 mejores herramientas de recopilación de datos con estrategias de recopilación de datos