data abstraction c
Tudo o que você precisa saber sobre abstração em C ++.
Nesta série de tutoriais em C ++, aprenderemos todos os principais conceitos da programação orientada a objetos em C ++, que são conhecidos como os quatro pilares da OOP.
- Abstração
- Encapsulamento
- Herança
- Polimorfismo
Neste tutorial, vamos explorar tudo sobre abstração de dados em C ++.
=> Clique aqui para ver a série de treinamento Absolute C ++.
O que você aprenderá:
- O que é abstração?
- Implementação de abstração em C ++
- Vantagens da abstração
- Conclusão
- Leitura recomendada
O que é abstração?
Abstração é uma técnica de programação orientada a objetos com a qual ocultamos os detalhes de implementação do usuário e apenas expomos uma interface necessária.
Podemos dar um exemplo da vida real de um condicionador de ar (AC). Temos um controle remoto para controlar as várias funções AC como iniciar, parar, aumentar / diminuir a temperatura, controlar a umidade, etc. Podemos controlar essas funções apenas com o relógio de um botão, mas internamente há uma lógica complexa que é implementado para desempenhar essas funções.
No entanto, como um usuário final, o que expusemos é apenas a interface remota e não os detalhes de implementação de todas essas funções.
como escrever um bom caso de teste
A abstração é um dos quatro pilares da programação orientada a objetos e quase todas as soluções OOP são baseadas nos princípios de abstração, ou seja, separação de interface e detalhes de implementação no programa.
No diagrama acima, mostramos um objeto e seu conteúdo como uma representação pictórica. Podemos ver que a camada mais interna deste objeto é sua funcionalidade principal, seguida pelos detalhes de implementação.
Em OOP, essas duas camadas (embora na maioria dos casos seja apenas uma) não são expostas ao mundo exterior. A camada mais externa, a interface, é a camada fornecida ao usuário final para acessar a funcionalidade do objeto.
Como resultado, quaisquer alterações feitas nas camadas mais internas do objeto não são evidentes para um usuário final, desde que a interface à qual o usuário é exposto permaneça a mesma.
Implementação de abstração em C ++
C ++ suporta abstração em grande profundidade. Em C ++, mesmo as funções de biblioteca que usamos podem ser consideradas um exemplo de abstração.
Podemos representar a implementação de abstração em C ++ da seguinte maneira:
Conforme mostrado na figura acima, podemos implementar abstração em C ++ de duas maneiras:
# 1) Usando classes e especificadores de acesso
Uma classe implementada em C ++ com especificadores de acesso public, private e protected, pode ser considerada como uma implementação de abstração.
Como já sabemos, o uso de especificadores de acesso nos permite controlar o acesso concedido aos membros da classe. Podemos tornar alguns membros privados para que fiquem inacessíveis fora da classe. Podemos ter alguns membros protegidos para que sejam acessíveis apenas às classes derivadas. Por fim, podemos tornar alguns membros públicos para que sejam acessíveis fora da classe.
Usando essa noção, podemos implementar a abstração de forma que os detalhes da implementação fiquem ocultos do mundo externo usando o especificador de acesso privado, enquanto a interface pode ser exposta ao mundo externo usando o especificador público.
implementação de classificação por bolha c ++
Portanto, podemos implementar abstração em C ++, usando uma classe para agrupar dados e funções em uma única unidade e usando especificadores de acesso para controlar o acesso a esses dados e funções.
Vamos implementar o seguinte exemplo para demonstrar isso.
#include #include using namespace std; class sample { int num1,num2; void readNum(){ cout<>num1; cout<>num2; } public: void displaySum() { readNum(); cout<<'
Sum of the two numbers = '< Resultado:
Digite num1: 10
Digite num2: 20
Soma dos dois números = 30
No programa acima, temos uma classe de amostra que possui duas variáveis inteiras, num1 e num2. Ele também tem duas funções readNum e displaySum. Os membros num1 e num2 dos membros de dados, bem como a função readNum, são privados para a classe.
A função displaySum é pública para a classe. Na função principal, criamos um objeto da classe sample e chamamos displaySum que lê os dois números e também imprime sua soma.
Esta é a implementação de abstração. Exporemos apenas uma função ao público, enquanto mantemos os outros membros de dados e funções em segredo. Embora este seja apenas um exemplo para demonstrar abstração, ao implementar problemas da vida real, podemos ter muitos níveis de abstração em C ++.
# 2) Usando a implementação do arquivo de cabeçalho
Usamos arquivos de cabeçalho no programa C ++ para importar e usar funções predefinidas. Para isso, usamos a diretiva #include para incluir arquivos de cabeçalho em nosso programa.
Por exemplo, no programa acima, usamos as funções cin e cout. No que diz respeito a essas funções, sabemos apenas como usá-las e quais são os parâmetros que elas assumem.
Não sabemos o que acontece em segundo plano quando essas funções são chamadas ou como são implementadas no arquivo de cabeçalho iostream. Esta é outra forma de abstração fornecida pelo C ++.
Não sabemos os detalhes da implementação de todas as funções que importamos dos arquivos de cabeçalho.
Aqui está outro exemplo para demonstrar a abstração.
#include #include using namespace std; class employee{ int empId; string name; double salary,basic,allowances; double calculateSalary(int empId){ salary = basic+allowances; return salary; } public: employee(int empId, string name,double basic,double allowances): empId(empId),name(name),basic(basic),allowances(allowances){ calculateSalary(empId); } void display(){ cout<<'EmpId = '< Resultado:
EmpId = 1 Nome = Ved
Salário do funcionário = 18245,4

como fazer uma lista em java
Neste exemplo, definimos um funcionário da classe que tem detalhes privados como empId, nome, detalhes de salário, como básico e abonos. Também definimos uma função privada “calcular Salário” que calcula o salário usando base e abonos.
Temos um construtor para inicializar todos os dados de um determinado objeto funcionário. Também chamamos a função “calcularSalário” do construtor para calcular o salário do funcionário atual.
Em seguida, temos uma função de “exibição” que exibe empId, nome e salário. Na função principal, criamos um objeto de classe funcionário e chamamos a função display.
Podemos ver claramente o nível de abstração que fornecemos neste programa. Ocultamos do usuário todos os detalhes do funcionário, bem como a função Calcular Salário, tornando-os privados.
Expusemos apenas uma tela de função para o usuário que fornece todas as informações sobre o objeto funcionário para o usuário e, ao mesmo tempo, também esconde detalhes como dados privados e como calculamos o salário do funcionário.
Ao fazer isso, no futuro, se quisermos adicionar mais detalhes e mudar a forma como o salário é calculado, não temos que mudar a função de exibição. O usuário não terá conhecimento dessas mudanças.
Vantagens da abstração
Alistados abaixo estão algumas das vantagens da abstração.
- O programador não precisa escrever código de baixo nível.
- A abstração protege a implementação interna contra uso malicioso e erros.
- A abstração pode evitar a duplicação de código e, portanto, o programador precisa realizar as mesmas tarefas continuamente.
- A abstração promove a reutilização do código e classifica adequadamente os membros dos dados da classe.
- O Programador pode alterar os detalhes internos da implementação da classe sem o conhecimento do usuário final, sem afetar as operações da camada externa.
Conclusão
Abstração é um dos conceitos mais importantes em OOP e é implementado em grande profundidade em C ++. Usando a abstração, podemos manter os detalhes de implementação do programa em segredo e apenas expor os detalhes que queremos para o mundo exterior.
Usando o conceito de abstração, podemos projetar classes e tipos de dados abstratos que agem como um esqueleto para a solução de programação sobre a qual uma solução inteira é construída. Conforme avançamos nos tópicos OOP, aprenderemos mais sobre esses tipos e classes.
Em nossos próximos tutoriais, aprenderemos sobre outro pilar da OOP, ou seja, encapsulamento. Também pesaremos abstração e encapsulamento juntos lá.
=> Procure toda a série de treinamento C ++ aqui.
Leitura recomendada
- Tipos de dados C ++
- Encapsulamento em C ++
- As 10 principais ferramentas de ciência de dados em 2021 para eliminar a programação
- Programação orientada a objetos em C ++
- Introdução às estruturas de dados em C ++
- Mais de 70 MELHORES tutoriais em C ++ para aprender programação C ++ GRATUITAMENTE
- Parametrização de dados JMeter usando variáveis definidas pelo usuário
- Mais de 10 melhores ferramentas de coleta de dados com estratégias de coleta de dados