Imprimir Post

Programação Orientada a Objetos com C# (Parte 6.7) – Interface

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.

Interface - 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 6.6 para 6.7 (vide título) e assim seguirá (6.8, 6.9…) mediante a necessidade de conclusão.

Palavras-chaves:

Encapsulamento, Herança, Polimorfismo, Propriedades, Classe, Objeto.

Texto:

Mãos a Obra

Com a alteração da classe Program e a execução das Classes Unitario, UnicoComum e UnicoEstudante a partir desta, foram apresentadas mensagens de erro que remetem a não implementação de membros obrigatórios sobre a Classe Unitario sobre a utilização da Interface IBilhete (vide post anterior), o próximo passo na Programação Orientada a Objetos com C# será entender como Classes podem implementar métodos exigidos por uma Interface empregada a esta, ainda que não necessitem de todos estes métodos em sua regra particular, de maneira que o compilador não acuse erros por violação de contrato.

Interface - Relembre - Link Post Anterior

Adendo

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

  • Windows 10 Pro;
  • 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 Unitario

Retornando a classe Unitario, pode-se visualizar:

Tela:

Interface - Microsoft Visual Studio 2010 Ultimate – Tela da Classe

Microsoft Visual Studio 2010 Ultimate – Tela da Classe

Deve-se modificar a área da classe, alterando-a para o seguinte código:

Detalhes da modificação da Classe:

  • O métodos Saldo() e Debita() antes não estavam sendo implementados, agora por obrigatoriedade estão sendo implementados de maneira padrão, remediando os erros antes exibidos pelo compilador.

A utilização da declaração throw new NotImplementedException() é um conceito novo, ainda não explicado.

Lembrando que, diante dos métodos Saldo() e Debita() exigidos por IBilhete como implementação obrigatória das classes que a irão utilizar (no exemplo Unitario), para garantir portanto a implementação de ambos é necessário que exista um código no qual respeite as assinaturas destes métodos.

Para Saldo() é necessário que exista uma operação com um valor para retorno (decimal):

Para Debita() é necessário que exista uma operação que apenas o execute (void):

Dentro do cenário estabelecido, sabe-se que bilhetes unitários não possuem qualquer implementação de saldo ou debito, sendo errada a estratégia de criação de um código fictício apenas para atender a assinatura destes métodos, e, é justamente por esta necessidade que existe a declaração throw new NotImplementedException().

Este código garante ao compilador que métodos sejam reconhecidos como implementados, porém sem um código que represente esta lógica.

Tela ao colar o código:

Interface - 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 Unitario 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:

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):

Interface - 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):

Interface - 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 a Classe Unitario garantindo o ajuste correto para execução da Aplicação.

O próximo é entender o seguinte questionamento:

“Porque o compilador não acusou erro a Classe Unitario, diante da não implementação do método CobraTarifa(), também exigido por IBilhete?”

É 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 sexta parte da série: Programação Orientada a Objetos com C# será apresentado o oitavo post sobre Interface, 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/09/21/programacao-orientada-a-objetos-com-c-parte-6-7-interface/