Imprimir Post

Programação Orientada a Objetos com C# (Parte 3.5) – Encapsulamento

Resumo:

O objetivo não se aplica a este post.

Uma vez que o conteúdo total desta série foi dividido em partes, deve-se considerar absoluto o resumo da primeira postagem até o momento presente.

Encapsulamento - Relembre - Link Primeiro Post

Este tema da série Programação Orientada a Objetos com C# irá demandar mais publicações. Sendo assim, a numeração sequencial desta parte da série passou de 3.4 para 3.5 (vide título) e assim seguirá (3.6, 3.7…) mediante a necessidade de conclusão.

Palavras-chaves:

Variáveis, Propriedades, Modificador, Acesso, Classe, Objeto.

Texto:

Mãos a Obra

Com a apresentação inicial de Propriedades em Classes de Objetos (vide post anterior), o próximo passo na Programação Orientada a Objetos com C# será exemplificar na prática estes assuntos e suas variantes, vistas até o momento presente.

Encapsulamento - Relembre - Link Post Anterior

O exemplo se dará de maneira a entender que o leitor já possua a estrutura do projeto (tipo Console), além das classes Metro e Program da postagem: “Programação Orientada a Objetos com C# (Parte 2.3)”.

Encapsulamento - Relembre - Link Programação Orientada a Objetos com C# (Parte 2.3)

Adendo

Para realização do Post foram utilizados os seguintes Programas:

  • Windows 7 Ultimate;
  • Microsoft Visual Studio 2010 Ultimate SP1 (Service Pack 1).

A única configuração realizada após a instalação dos programas acima, foi manter o Microsoft Visual Studio sendo executado como usuário Administrador do Sistema Operacional, a fim de evitar maiores problemas.

Alterando a classe Metro

Ainda na classe Metro, deve-se clicar e modificar a área da classe, alterando-a para o seguinte código:

Detalhes da modificação da Classe:

  • A classe Metro foi alterada com o modificador de acesso public;
  • Foi criada a variável de instância velocidade como membro da classe Metro, sendo esta do tipo inteiro.  Além disto, a variável está com o modificador de acesso como private, ou seja, acessível apenas dentro da classe Metro.
  • Foi criada a propriedade Velocidade como membro da classe Metro, sendo esta do tipo inteiro. Além disto, a propriedade está com o modificador de acesso como public.

Ainda sobre propriedades, a ação do método assessor get se estabelece de maneira a retornar o valor da variável de instância velocidade e por fim o método assessor set recebe um valor para atribuí-lo na variável de instância velocidade, ou seja, os métodos assessores get e set através da propriedade Velocidade, encapsulam a variável velocidade na classe Metro.

Tela ao colar o código:

Encapsulamento - Microsoft Visual Studio 2010 Ultimate - Tela após Alteração da Classe

Microsoft Visual Studio 2010 Ultimate – Tela após Alteração da Classe

Por fim, deve-se salvar a classe Metro e suas alterações clicando no botão Salvar. Tela com a confirmação positiva (ver rodapé da janela) ao clicar no botão Salvar:

Encapsulamento - Microsoft Visual Studio 2010 Ultimate - Tela após Salvar o Projeto

Microsoft Visual Studio 2010 Ultimate – Tela após Salvar o Projeto

Alterando a classe Program

Na classe Program, deve-se clicar e modificar a área da classe, alterando-a para o seguinte código:

Código:

  • Linha 1 a 11: são declarações realizadas na classe Program.
  • Linha 12: declaração de um novo objeto (objMetro) à partir da classe Metro.
  • Linha 13: a propriedade Velocidade criada à partir da classe Metro, foi acessada através da declaração do objeto desta mesma classe (vide linha 12), de maneira a prepará-la para execução com o recebimento de um valor inteiro, no exemplo o valor 73.
  • Linha 14: utilização da classe do próprio Framework que serve para exibir informação referente ao conteúdo do objeto. A propriedade Velocidade criada à partir da classe Metro, foi acessada através da declaração do objeto desta mesma classe (vide linha 12), de maneira a prepará-la para execução retornando um valor. Ao final, será exibida uma mensagem numa janela de console.
  • Linha 15 a 19: encerramento do código.

Detalhes da modificação da Classe:

  • Com a criação do novo objeto (objMetro) é possível verificar que logo após a declaração da Classe, a propriedade Velocidade = 73 e Velocidade são executadas sequencialmente.

Encapsulamento - Relembre - Criando Propriedades na Classe de Objeto

  • A sintaxe para acesso a Propriedades é um conceito novo, ainda não explicado.

O acesso a Propriedades se estabelece da seguinte maneira:

Este acesso ocorre após a Instanciação e Inicialização do Objeto que esta Propriedade pertence, em sua declaração completa tem-se:

A utilização de definição proporciona a atribuição de um valor para variável encapsulada (velocidade) na propriedade (Velocidade):

E utilização de retorno proporciona a recuperação do valor definido para variável encapsulada (velocidade) na propriedade (Velocidade):

No caso, ambas as utilizações da propriedade estão manipulando a variável (encapsulada) velocidade internamente, através dos Métodos Assessores.

    • Quando se faz a utilização de definição, o método assessor set é chamado implicitamente.
    • Quando se faz a utilização de retorno, o método assessor get é chamado implicitamente.

Encapsulamento - Relembre - Métodos Assessores

Tela ao colar o código:

Encapsulamento - Microsoft Visual Studio 2010 Ultimate - Tela após Alteração da Classe

Microsoft Visual Studio 2010 Ultimate – Tela após Alteração da Classe

Por fim, deve-se salvar a classe Program e suas alterações clicando no botão Salvar. Tela com a confirmação positiva (ver rodapé da janela) ao clicar no botão Salvar:

Encapsulamento - Microsoft Visual Studio 2010 Ultimate - Tela após Salvar o Projeto

Microsoft Visual Studio 2010 Ultimate – Tela após Salvar o Projeto

Finalizando o exemplo, resta apenas executar a Aplicação, deve-se então clicar no botão Start Debugging (F5):

Encapsulamento - Microsoft Visual Studio 2010 Ultimate - Execução da Aplicação

Microsoft Visual Studio 2010 Ultimate – Execução da Aplicação

Tela ao clicar no botão Start Debugging (F5):

Encapsulamento - Microsoft Visual Studio 2010 Ultimate - Execução da Aplicação (Janela de Console)

Microsoft Visual Studio 2010 Ultimate – Execução da Aplicação (Janela de Console)

Considerações Finais:

Esta publicação visa alterar as Classes Metro e Program, através da criação e manipulação da propriedade Velocidade, refletindo no resultado final com a mensagem: “O Metrô está andando a 73 Km/h”,

No decorrer da série, para exemplificação do conceito Encapsulamento sobre variáveis, inicialmente fora introduzida a utilização de métodos.

Encapsulamento - Relembre - Link Programação Orientada a Objetos com C# (Parte 3.1) Encapsulamento - Relembre - Link Programação Orientada a Objetos com C# (Parte 3.2) Encapsulamento - Relembre - Link Programação Orientada a Objetos com C# (Parte 3.3)

Porém com a evolução natural da Orientação a Objetos, prevalece-se geralmente a utilização prática de Propriedades, garantindo uma forma dinâmica, limpa, clara e organizada para aplicar este conceito em uma estrutura única.

É importante ressaltar que, a medida que os posts forem evoluindo, com apresentações teóricas somadas as práticas, a tendência é que o leitor vá sanando suas dúvidas e dificuldades de entendimento.

Na próxima publicação, ainda terceira parte da série: Programação Orientada a Objetos com C#, será apresentado o sexto post sobre Encapsulamento, o leitor irá conferir a continuidade do tema entre outros aspectos relevantes a este assunto.

Referências Bibliográficas:

As referências bibliográficas serão apresentadas no último post desta série.

Sobre o autor

Thiago Richard Vanicore

Thiago Richard Vanicore formou-se em análise e desenvolvimento de sistemas, possui certificação ITIL Foundation V2 e entre seus conhecimentos estão: ASP .Net (WebForms/MVC5/Web API) C#, HTML5, Html/XHtml, CSS3, JQuery, JQuey Mobile, JavaScript, Xml, Ajax, Json, Microsoft SqlServer, MySql, Firebird, Azure, Visual Studio Online, Scrum, UML, CRM, Quality Assurance, CTI (Computer Telephony Integration) MPSBR (Melhoria de Processos do Software Brasileiro).

Link permanente para este artigo: http://linksinergia.com.br/2015/08/31/programacao-orientada-a-objetos-com-c-parte-3-5-encapsulamento/