encapsulation c
principais diferenças entre c e c ++
Uma visão geral completa do encapsulamento em C ++:
Discutimos Abstração em detalhes em nosso tutorial anterior. A abstração, como sabemos, oculta os detalhes de implementação do usuário e expõe apenas a interface exigida pelo usuário.
Neste tutorial, discutiremos outro recurso importante da OOP, ou seja, o encapsulamento. Abstração e encapsulamento andam de mãos dadas. Na verdade, podemos dizer que o código encapsulado nos ajuda na abstração. Em outras palavras, o encapsulamento e a abstração estão intimamente ligados.
=> Visite aqui para obter o curso C ++ completo com especialistas.
Portanto, podemos discutir esses dois conceitos juntos, pois há uma linha muito tênue entre encapsulamento e abstração.
O que você aprenderá:
- O que é encapsulamento?
- Implementação de encapsulamento
- Diferença entre encapsulamento e abstração
- Conclusão
- Leitura recomendada
O que é encapsulamento?
O encapsulamento de dados se refere ao processo de vinculação de dados e funções ou métodos que operam nesses dados em uma única unidade, de modo que sejam protegidos de interferências externas e uso indevido.
Este é um importante conceito de programação orientada a objetos e leva a outro conceito OOP conhecido como “ Ocultação de dados ”. O encapsulamento oculta os dados e seus membros, enquanto a abstração expõe apenas os detalhes ou interfaces necessários para o mundo externo.
De certa forma, a abstração apresenta a “visão abstrata” dos dados ocultos para o mundo externo. Portanto, já afirmamos que o encapsulamento e a abstração andam de mãos dadas.
Uma classe em C ++ é aquela em que agrupamos membros de dados e as funções que operam nesses membros de dados junto com especificadores de acesso como private, public e protected representam o encapsulamento. Já discutimos os especificadores de acesso em nosso tutorial anterior sobre classes e objetos.
Também sabemos que, por padrão, os membros da classe são particulares. Quando declaramos os membros da classe como privados e os métodos para acessá-los como públicos, estamos realmente implementando o encapsulamento. Ao mesmo tempo, fornecemos uma visão abstrata dos dados para o mundo externo na forma de métodos públicos.
Implementação de encapsulamento
O encapsulamento em C ++ é implementado como uma classe que agrupa os dados e as funções que operam nesses dados. Principalmente os dados são declarados como privados, de forma que não podem ser acessados fora da classe. Os métodos ou funções são declarados como públicos e podem ser acessados usando o objeto da classe.
No entanto, não podemos acessar diretamente membros privados e isso é chamado de ocultação de dados. Quando isso é feito, os dados são protegidos e podem ser acessados apenas por funções daquela classe particular na qual os dados são declarados.
// Example program #include #include using namespace std; //example class to demonstrate encapsulation class sampleData{ int num; char ch; public: //getter methods to read data values int getInt() const{ return num; } char getCh() const{ return ch; } //setter methods to set data values void setInt(int num) { this->num = num; } void setCh(char ch){ this->ch = ch; } }; int main() { sampleData s; s.setInt(100); s.setCh('Z'); cout<<'num = '< Resultado:
num = 100
ch = Z
No programa acima, agrupamos duas variáveis de membro junto com os métodos getter e setter em uma classe. e este é um exemplo de encapsulamento.
Declaramos duas variáveis, ou seja, num e ch como variáveis privadas de modo que não sejam acessíveis ao mundo exterior. Eles são acessíveis apenas para as funções que declaramos como públicas. Assim, ocultamos membros de dados como variáveis privadas em uma classe.
Tomemos outro exemplo para entender melhor o encapsulamento em C ++.
#include #include using namespace std; //Accounts class: includes salary info for a particular employee class Accounts{ int empId; double salary, basic, allowances, deductions; public: Accounts(int empId):empId(empId){} //read salary info void readEmployeeInfo(int empId){ cout<<'Enter basic for the employee'< basic; cout<>allowances; cout<>deductions; } //calculate salary double calculateSalary(){ salary = basic+ allowances - deductions; return salary; } //display details void display(){ salary = calculateSalary(); cout<<'Employee: '< Resultado:
Insira básico para o funcionário 1: 10000
licenças: 4324,43
deduções: 1000
Funcionário: 1
Salário: 13324,4
Este é mais um exemplo de encapsulamento. Conforme mostrado acima, temos uma classe Contas que agrupa os dados da conta e todas as funções que operam nesses dados em uma única classe Contas. Na função principal, podemos criar um objeto desta classe e acessar funções para obter as informações desejadas.
Agora, se alguma outra classe disser que os detalhes do funcionário desejam acessar os dados das contas, ela não poderá fazer isso diretamente. Será necessário criar um objeto da classe Contas e poderá acessar apenas os itens que forem públicos. Desta forma, através do encapsulamento garantimos o controle de acesso aos dados e também garantimos a integridade dos dados.
melhores programas para recuperar arquivos apagados
Diferença entre encapsulamento e abstração
Abstração e encapsulamento estão intimamente ligados. O encapsulamento auxilia na abstração ao agrupar dados e métodos que operam nesses dados.
Encapsulamento Abstração Esconde os dados Esconde a implementação Agrupa dados e métodos juntos Fornece uma interface abstrata para o usuário expondo apenas o que é necessário Ajuda na abstração Auxilia na reutilização e segurança do código. Implementado como uma classe com especificadores de acesso que definem o acesso a membros de dados e métodos Implementado como uma classe abstrata e interfaces que não podem ser instanciadas.
Conclusão
O encapsulamento é um dos recursos mais importantes da OOP, pois nos fornece uma maneira de ocultar os dados. Isso, por sua vez, torna os dados mais seguros e os protege contra uso malicioso.
O encapsulamento ajuda na abstração, de modo que podemos expor apenas a interface necessária para o usuário final e ocultar outros detalhes de acordo. Neste tutorial, demos uma olhada nos conceitos de abstração e encapsulamento em C ++.
Em nosso próximo tutorial, discutiremos Herança em C ++ com exemplos.
=> Visite aqui para obter a série exclusiva de tutoriais de treinamento em C ++.
Leitura recomendada
- Abstração de dados em C ++
- Tipos de dados C ++
- Best FREE C # Tutorial Series: The Ultimate C # Guide For Beginners
- Mais de 70 MELHORES tutoriais em C ++ para aprender programação C ++ GRATUITAMENTE
- Funções de biblioteca em C ++
- Programação orientada a objetos em C ++
- Introdução às estruturas de dados em C ++
- Listas de inicializadores em C ++