Imprimir Post

Programação Orientada a Objetos com C# (Parte 3.6) – 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# encerra-se nesta publicação. Sendo assim, a numeração sequencial desta parte da série passou de 3.5 para 3.6 (vide título).

Palavras-chaves:

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

Texto:

Mãos a Obra

Com a alteração de Classes Metro e Program apresentando mensagens em uma janela de console através da relação destas sobre a utilização do conceito Encapsulamento (vide post anterior), o próximo passo na Programação Orientada a Objetos com C# será dar continuidade prática a estes assuntos e suas variantes, vistas até o momento presente.

Encapsulamento - Relembre - Link Post AnteriorAdendo

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.
  • Foram criados os métodos Andar() e setVelocidade como membros da classe Metro. O método Andar() foi criado de maneira a prepará-lo para execução sem a passagem de parâmetros, já o método setVelocidade(int velocidade) recebe como parâmetro um tipo de dado inteiro. Além disto, estes métodos estão com o modificador de acesso como public.

Ainda sobre os métodos, a ação do método Andar se estabelece de maneira a executá-lo levando a uma mensagem  final:
O Metrô está andando “.

No método setVelocidade, sua ação se estabelece de maneira a receber um parâmetro e atribuí-lo a variável de instância velocidade ou seja, o método setVelocidade  encapsula a variável velocidade na classe Metro.

A utilização da palavra reservada this é um conceito novo, ainda não explicado:

Até o momento da série, as explicações se deram através da preparação de parâmetros com nomes diferentes das variáveis a serem atribuídas por estes em seus métodos:

Segundo fontes diversas, em casos como este, a sugestão é que o parâmetro (variável local) possua o mesmo nome da variável pertencente a classe (variável global):

Na declaração acima ocorreriam conflitos, pois a atribuição consideraria apenas a influência sobre uma variável local no método setVelocidade, não garantindo a recuperação da variável global pelo valor passado no parâmetro do método. Em resumo, ao utilizar a prática acima, e, ao recuperar a variável global em um passo posterior, por ser do tipo int, haveria sempre o valor 0 como resultado, independente do valor passado via parâmetro.

A correção desta prática se resume na utilização da palavra reservada this, que possui a função de referenciar-se ao objeto corrente:

this.velocidade: é a variável global (objeto);

velocidade: é a variável local (parâ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 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, ou seja, o método assessor get (que faz parte da propriedade Velocidade) encapsula 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: o método Andar criado à partir da classe Metro, foi acessado através da declaração do objeto desta mesma classe (vide linha 12), de maneira a prepará-lo para execução sem a passagem de parâmetros. Ao final, a mensagem que será exibida na janela de console, fora inserida diretamente no método Andar.
  • Linha 14: o método setVelocidade criado à partir da classe Metro, foi acessado através da declaração do objeto desta mesma classe (vide linha 12), de maneira a prepará-lo para execução com a passagem de um parâmetro inteiro, no exemplo o valor 73.
  • Linha 15: 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 16 a 20: encerramento do código.

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 de maneira que o leitor possa entender a comunicação e funções que cada uma destas desempenham entre si, dispondo da execução de métodos, propriedades, entre outros elementos e conceitos da Orientação a Objetos descritos até o momento.

É 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, quarta parte da série: Programação Orientada a Objetos com C#, será apresentado o conceito de Herança.

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/09/14/programacao-orientada-a-objetos-com-c-parte-3-6-encapsulamento/