/ / Encapsulamento - o que é? Encapsulamento em programação

O que é encapsulamento? Encapsulamento em programação

O encapsulamento é um dos três principaisrecursos de programação orientada a objetos (OOP). Os outros dois são polimorfismo e herança. Juntos, eles constituem uma estrutura OOP que define uma gama de possibilidades para escrever programas em diferentes linguagens usando esses três princípios. Linguagens orientadas a objetos, por sua vez, são obrigadas a segui-los claramente.

encapsulamento é

OOP básico

A programação orientada a objetos é baseada em três pilares de seu universo:

  • Polimorfismo, que responde à questão de como uma determinada linguagem de programação trata objetos que estão relacionados entre si de maneira semelhante.
  • Herança, que fornece uma resposta sobre como a reutilização de código é estimulada.
  • Encapsulamento, que é a resposta à questão de como a implementação é oculta e, portanto, a integridade dos dados é preservada.

Terminologia

Encapsulamento (programação) éo uso de modificadores de acesso para ocultar partes do código do programa do usuário final. Por sua vez, significa o desenvolvedor ou o objeto herdado.

conceitos de encapsulamento

A essência do conceito de "encapsulamento"

Definição define o que está sob encapsulamentoocultar todo ou parte do código do programa está implícito. A essência do conceito de "encapsulamento" é a manipulação de modificadores de acesso. Isso significa que o próprio desenvolvedor decide quais propriedades, métodos e classes serão expostos à classe do cliente e quais serão ocultados.

Modificadores de acesso

programação de encapsulamento
Existem modificadores de acesso que o encapsulamento (programação Java) pode manipular, entre outros:

  • public ("public" - public, open, access) - acesso público para objetos e classes atuais e para o mundo exterior;
  • privado ("privado" - acesso privado, privado, oculto) - acesso fechado, cuja essência é completamente oposta à anterior. Fornece acesso apenas da classe atual;
  • protegido ("protegido" - protegido, semi-oculto, acesso) - acesso para a classe atual e seus derivados;
  • default - modificador de acesso não especificado implica que o campo / método é visível para todo o pacote de classe atual.

Na linguagem C # ("C Sharp"), além dos indicados (excluindo o último), também existem os seguintes modificadores:

  • interno ("interno" - acesso interno) - disponibilidade geral na coleção atual, acesso fechado em todos os outros casos;
  • protegido interno ("protegido interno" - acesso protegido interno) - a combinação de dois modificadores em um, no qual as propriedades de ambos são manifestadas.

O papel do encapsulamento

O mecanismo de encapsulamento permite excluir a influência externa no código do programa e o uso incorreto dos dados nele contidos. Ele faz isso combinando código e dados em um único todo.

exemplo de programação de encapsulamento

Objeto e encapsulamento

Combinando a implementação do módulo de software eos dados embutidos no código são chamados de objeto na programação. A essência da sua ligação com o encapsulamento reside no facto de ser precisamente esta técnica que permite manter e garantir o funcionamento integral do mecanismo em consideração.

A vantagem do encapsulamento

O encapsulamento é uma forma de simplificar o processo de codificação. Numerosas linhas de código permanecem "nos bastidores" e, na classe principal, o trabalho é feito com instâncias de objeto.

A ideia de proteção de dados

O encapsulamento também é um mecanismo queimplementa a ideia de proteção de dados. A lógica de programação da programação orientada a objetos é baseada no fato de que a maioria dos dados serão ocultados pelo modificador de acesso privado (privado) ou protegido (protegido). O mundo externo, o cliente, acidentalmente ou intencionalmente, não pode prejudicar a implementação do módulo de software. Como é realmente muito fácil fazer isso, mesmo que não seja propositalmente, o encapsulamento é um princípio muito bom.

Unidades de encapsulamento

Classe, como unidade principal de encapsulamento,descreve os dados e contém um código que pode operar com esses dados. É também a base para a construção do objeto. Este, por sua vez, é representado como uma instância da classe.

encapsulamento programação java
A seguinte terminologia também é usada:

  • membros são o código e os dados que vão para a classe;
  • campos ou variáveis ​​de instância - este é o nome dos dados que a classe define;
  • funções de membro - eles contêm o próprio código. Funções de membro são um nome comum. Os métodos são um caso especial.

Encapsulamento com um exemplo específico

a programação de encapsulamento é

Exemplo de encapsulamento (programação):

* Observação:

descrição é a descrição de um método / propriedade / variável, ou seja, comenta o que realmente acontece no programa. Demonstrado com tags de abrir / fechar

using System;

namespace OOPLibrary.Auto

{

///

/// Esta classe tem como objetivo descrever as propriedades e ações do carro

///

public class Auto

{

///

/// Uma variável criada para escrever nela a idade do carro, já que o desenvolvedor considera a interferência externa nesta propriedade supérflua

/// é marcado com o modificador privado, ou seja, fechado, acesso privado (veja a descrição acima).

///

private int _age;

///

/// Variável booleana (apenas dois valores possíveis - sim ou não) que descreve se o carro está em movimento

/// Também não deve ser aberto ao usuário final, seja ele quem for. É por isso que o modificador de acesso privado "privado" é atribuído a esta variável.

///

private bool _isMoving;

///

/// Esta variável de string deve conter informações sobre a cor do carro. Pode estar sujeito a mudanças de influências externas

/// portanto, o modificador de acesso aberto "público" é selecionado para a cor.

///

public string Color;

///

/// Neste caso particular, assumimos que o nome do carro também pode ser alterado

/// o modificador público é atribuído (acesso aberto a todos, independentemente da classe ou montagem).

///

public string Name;

///

/// O construtor da classe é aberto e todas as propriedades expressas por variáveis ​​e definidas um pouco antes recebem seus valores

///

public Auto ()

{

_age = 5;

_isMoving = false;

Cor = "Roxo";

Nome = "Skoda Octavia";

}

///

/// O método implementa o retorno do valor da idade do carro. Por que isso é necessário?

/// um modificador de acesso privado evita que ele seja modificado pelo cliente.

///

/// Retorna a idade do carro.

public string GetAge ()

{

return "A máquina atualmente selecionada" + _age + "tem anos.";

}

///

/// Se o carro não está se movendo, este métodoimplementa o início do movimento. É feita uma verificação em uma variável que indica o estado do carro (se está dirigindo ou não) e, dependendo dos resultados, uma ação apropriada é executada / uma mensagem correspondente é exibida.

///

public void Start ()

{

if (_isMoving)

{

Console.WriteLine ("O movimento já começou");

}

senão

{

_isMoving = true;

Console.WriteLine ("Pronto, atenção .. Vamos! Vamos!");

}

}

///

/// Se o movimento foi iniciado, este método o interrompe. A mesma lógica de programa do caso considerado anterior.

///

public void Stop ()

{

if (_isMoving)

{

_isMoving = false;

Console.WriteLine ("Pare, carro");

}

senão

{

Console.WriteLine ("Erro. ​​O carro já está parado, sem movimento");

}

}

///

/// Vira para a esquerda se o veículo estiver em movimento

///

public void MoveLeft ()

{

if (_isMoving)

{

Console.WriteLine ("Virou à esquerda");

}

senão

{

Console.WriteLine ("Erro. ​​O carro está parado. A função de virar não está disponível no momento");

}

}

///

/// Um ​​método semelhante com virar para a direita

///

public void MoveRight ()

{

if (_isMoving)

{

Console.WriteLine ("Virada à direita com sucesso");

}

senão

{

Console.WriteLine ("Erro. ​​O carro ainda não se moveu. Virar para a direita é atualmente uma ação que não pode ser executada.");

}

}

}

}