Gráfico de comparação
Base para comparação | Esconder dados | Encapsulamento |
---|---|---|
Basic | A ocultação de dados preocupa-se com a segurança de dados e com a ocultação da complexidade. | Problemas de encapsulamento sobre a disposição de dados para ocultar a complexidade de um sistema. |
Foco | A ocultação de dados se concentra em restringir ou permitir o uso de dados dentro da cápsula. | O encapsulamento se concentra em envelopar ou envolver os dados complexos. |
Especificador de acesso | Os dados sob ocultação de dados são sempre privados e inacessíveis. | Os dados no encapsulamento podem ser privados ou públicos. |
Processo | A ocultação de dados é um processo e também uma técnica. | O encapsulamento é um subprocesso na ocultação de dados. |
Definição de ocultação de dados
A ocultação de dados é um conceito em programação orientada a objetos que confirma a segurança de membros de uma classe contra acesso não autorizado. A ocultação de dados é uma técnica de proteger os membros de dados de serem manipulados ou hackeados de qualquer outra fonte. Os dados são o conteúdo mais sensível e volátil de um programa que, se manipulado, pode resultar em uma saída incorreta e também prejudica a integridade dos dados. A ocultação de dados é controlada em Java com a ajuda de modificadores de acesso (privados, públicos e protegidos). Os dados que são públicos podem ser acessados de fora da classe, portanto, se você quiser ocultar seus dados ou impedir que eles sejam acessados de fora, declare seus dados como privados . Os dados privados só podem ser acessados apenas pelos objetos dessa classe.
Vamos entender os dados escondidos com a ajuda de um exemplo. Suponha que você tenha declarado uma classe CheckAccount e tenha um saldo de membro de dados dentro dessa classe. Aqui, o saldo de uma conta é uma informação sensível. Você pode permitir que um aplicativo externo verifique o saldo dentro de uma conta, mas não permitirá que um aplicativo externo altere o atributo de saldo. Assim, declarar o atributo de saldo como privado restringiria o acesso ao saldo de um aplicativo externo.
A ocultação de dados também reduz alguma complexidade do sistema. A ocultação de dados pode ser obtida por meio do encapsulamento, já que o encapsulamento é um subprocesso de ocultação de dados.
Definição de encapsulamento
O encapsulamento é vincular o código e os dados juntos em uma cápsula para ocultar a complexidade de uma classe. O encapsulamento tem menos a ver com especificadores de acesso (privado, público e protegido). No encapsulamento, os membros dentro de uma classe podem ser privados, públicos ou protegidos . Os membros privados de uma classe só são acessíveis apenas aos objetos dessa classe, e os membros públicos são acessíveis aos objetos da classe, assim como são acessíveis de fora da classe. O encapsulamento ajuda o usuário final de um sistema a aprender o que fazer com o sistema, em vez de como ele deve ser feito.
Vamos entender o encapsulamento com a ajuda de um exemplo de um carro. Se um motorista de carro quer mudar a engrenagem do carro, o que ele precisa é apenas mudar a posição das engrenagens de operação do carro e assim mudar a marcha de um carro. Um motorista não precisa entender a complexidade de qual é o mecanismo por trás da troca de marcha. É assim que o encapsulamento reduz a complexidade de um sistema. O encapsulamento torna o sistema mais fácil de operar pelo usuário final.
Principais diferenças entre ocultação de dados e encapsulamento
- O encapsulamento lida com a ocultação da complexidade de um programa. Por outro lado, a ocultação de dados lida com a segurança dos dados em um programa.
- O encapsulamento se concentra em envolver (encapsular) os dados complexos para apresentar uma visão mais simples para o usuário. Por outro lado, a ocultação de dados se concentra em restringir o uso de dados, com a intenção de garantir a segurança dos dados.
- Nos dados de encapsulamento podem ser públicos ou privados, mas, na ocultação de dados, os dados devem ser apenas privados .
- A ocultação de dados é um processo e também uma técnica, enquanto o encapsulamento é um subprocesso de ocultação de dados.
Conclusão:
Concluo dizendo que a ocultação de dados e o encapsulamento são importantes na implementação de um sistema. Ambos andam de mãos dadas onde a ocultação de dados se concentra na segurança dos dados, o encapsulamento se concentra na redução da complexidade do sistema para tornar o aplicativo mais fácil de usar.