Imprimir Post

Programação Orientada a Objetos com C# (Parte 4.11) – Herança

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.

Herança - 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 4.10 para 4.11 (vide título) e assim seguirá (4.12, 4.13…) mediante a necessidade de conclusão.

Palavras-chaves:

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

Texto:

Mãos a Obra

Com a alteração da classe UnicoComum, herdando da Classe Base Bilhete e consequentemente tornando-se uma Classe Descendente, fora criada uma estrutura inicial destinada a introdução de uma nova categoria de bilhetes no cenário sistema metropolitano (vide post anterior), o próximo passo na Programação Orientada a Objetos com C# será dar continuidade a estes assuntos e suas variantes, vistas até o momento presente.

Herança - Relembre - Link Post Anterior

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.

Aplicando Herança a partir da nova categoria de Bilhetes

Como UnicoComum funciona com uma regra que armazena créditos, sofrendo recargas ou débitos mediante a utilização como passagem, surge portanto a necessidade de particularizar seu controle de saldo (uma situação nova), uma vez que a cobrança de tarifas ou recarga acompanha este saldo de maneira coexistente.

Alterando a Classe UnicoComum

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

Detalhes da modificação da Classe:

  • A classe UnicoComum foi alterada com o modificador de acesso public;
  • A classe UnicoComum herdou da classe Bilhete e portanto se tornou uma classe Descendente.
  • Foi criada a variável de instância saldo como membro da classe UnicoComum, sendo esta do tipo decimal. Além disto, a variável está com o modificador de acesso como private, ou seja, acessível apenas dentro da classe UnicoComum.
  • Foram criados os métodos Saldo() e Debita() como membros da classe UnicoComum, de maneira a prepará-los para execução sem a passagem de parâmetros. Além disso estes métodos estão com o modificador de acesso como public.

Ainda sobre o método Saldo(), sua ação se estabelece de maneira a guardar e retornar a variável saldo ou seja, o método Saldo() encapsula a variável saldo na classe UnicoComum, levando ao retorno do valor pré-definido como: 100.00.

No método Debita(), sua ação se estabelece de maneira a guardar e retornar a variável saldo, realizando antes disso uma operação de subtração que determina o valor da variável saldo menos o valor retornado da execução do método CobraTarifa(), criado na classe Herdada Bilhete.

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

Lembrando que, para garantir, a utilização da técnica Herança no cenário estabelecido, a Classe UnicoComum foi modificada como segue abaixo:

À partir desta declaração, a classe UnicoComum usufrui todas as características disponibilizadas na classe Bilhete.

No caso do método Debita(), a palavra base reforça ao compilador, a busca e utilização de um método que está na classe Pai ou Classe Base (Bilhete):

Tela ao colar o código:

Herança - 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 UnicoComum 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:

Herança - 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 4: são declarações de namespaces determinadas pelo próprio Microsoft Visual Studio.
  • Linha 6: declaração de namespace determinado pelo Microsoft Visual Studio à partir do nome dado para o projeto do tipo Console Application. Após a linha 6, o conteúdo presente desde a abertura da chave até o fechamento pertence ao namespace em questão.
  • Linha 8: declaração da classe Program automaticamente disponibilizada pelo Microsoft Visual Studio à partir do nome padrão adotado.
  • Linha 12 a 18: são declarações realizadas na classe Program. Instanciando, Inicializando, em seguida preenchendo as variáveis de instância do objeto criado (objUnicoComum) a partir da classe UnicoComum, que ao final serão visualizadas na janela de Console como mensagens de texto, através da utilização das próprias classes do Framework.
  • Linha 20: encerramento do código.

Detalhes da declaração da Classe:

  • Com a criação do objeto objUnicoComum é possível verificar que suas respectivas características funcionam independentemente, sendo fruto da Herança estabelecida entre sua classe de origem (Classe UnicoComum) e a classe Herdada (Bilhete).
  • Diante do cenário sistema metropolitano (estabelecido ao longo da série), o valor retornado do Método Saldo() representa o valor que o Bilhete Único Comum possui armazenado inicialmente. Além disso o Método Saldo() pertence exclusivamente a Classe Descendente UnicoComum.
  • Diante do cenário sistema metropolitano (estabelecido ao longo da série), o valor retornado do Método CobraTarifa() representa o valor da tarifa padrão cobrada e que dá direito a uma passagem através do Bilhete Único Comum. Além disso o Método CobraTarifa() foi criado na Classe Pai Bilhete e reaproveitado através de Herança pela Classe Descendente UnicoComum.
  • Diante do cenário sistema metropolitano (estabelecido ao longo da série), o valor retornado do Método Debita() representa o valor que o Bilhete Único Comum possui armazenado após a utilização de uma passagem. Além disso o Método Debita() pertence exclusivamente a Classe Descendente UnicoComum.

Tela ao colar o código:

Herança - 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:

Herança - 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):

Herança - 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):

Herança - 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 UnicoComum Program de maneira que o leitor possa entender a herança com o compartilhamento de métodos, dispondo da execução destes 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, ainda quarta parte da série: Programação Orientada a Objetos com C# será apresentado o décimo segundo post sobre Herança, 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/2016/03/30/programacao-orientada-a-objetos-com-c-parte-4-11-heranca/