You are on page 1of 6

ProgramaoOrientadaaObjetoscomC#(Parte6.

7)Interface
Categorias:Interface

porThiagoRichardVanicore

Resumo:

Oobjetivonoseaplicaaestepost.

Uma vez que o contedo total desta srie foi dividido em partes, devese considerar absoluto o resumo da primeira postagem at o
momentopresente.

EstetemadasrieProgramaoOrientadaaObjetoscomC#irdemandarmaispublicaes.Sendoassim,anumeraosequencial
destapartedasriepassoude6.6para6.7(videttulo)eassimseguir(6.8,6.9)medianteanecessidadedeconcluso.

Palavraschaves:

Encapsulamento,Herana,Polimorfismo,Propriedades,Classe,Objeto.

Texto:

MosaObra

Com a alterao da classe Program e a execuo das Classes Unitario, UnicoComum e UnicoEstudante a partir desta, foram
apresentadasmensagensdeerroqueremetemanoimplementaodemembrosobrigatriossobreaClasseUnitariosobreautilizao
daInterfaceIBilhete(videpostanterior),oprximopassonaProgramaoOrientadaaObjetoscomC#serentendercomoClasses
podemimplementarmtodosexigidosporumaInterfaceempregadaaesta, ainda que no necessitem de todos estes mtodos em sua
regraparticular,demaneiraqueocompiladornoacuseerrosporviolaodecontrato.

Adendo

PararealizaodoPostforamutilizadososseguintesProgramas:

Windows10Pro
MicrosoftVisualStudio2010UltimateSP1(ServicePack1).

A nica configurao realizada aps a instalao dos programas acima, foi manter o Microsoft Visual Studio sendo executado como
usurioAdministradordoSistemaOperacional,afimdeevitarmaioresproblemas.

AlterandoaClasseUnitario

RetornandoaclasseUnitario,podesevisualizar:

1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5
6 namespace ConsoleApplication
7 {
8 public class Unitario : Bilhete, IBilhete
9 {
10 }
11 }

Tela:
MicrosoftVisualStudio2010UltimateTeladaClasse

Devesemodificarareadaclasse,alterandoaparaoseguintecdigo:

1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5
6 namespace ConsoleApplication
7 {
8 public class Unitario : Bilhete, IBilhete
9 {
10 public decimal Saldo()
11 {
12 throw new NotImplementedException();
13 }
14
15 public void Debita()
16 {
17 throw new NotImplementedException();
18 }
19 }
20 }

DetalhesdamodificaodaClasse:

OmtodosSaldo()eDebita()antesnoestavamsendoimplementados,agoraporobrigatoriedadeestosendoimplementadosde
maneirapadro,remediandooserrosantesexibidospelocompilador.

AutilizaodadeclaraothrownewNotImplementedException()umconceitonovo,aindanoexplicado.
Lembrandoque,diantedosmtodosSaldo()eDebita()exigidosporIBilhetecomoimplementaoobrigatriadasclassesqueairo
utilizar(noexemploUnitario),paragarantirportantoaimplementaodeambosnecessrioqueexistaumcdigonoqualrespeiteas
assinaturasdestesmtodos.

ParaSaldo()necessrioqueexistaumaoperaocomumvalorpararetorno(decimal):

1 public decimal Saldo()

ParaDebita()necessrioqueexistaumaoperaoqueapenasoexecute(void):

1 public void Debita()

Dentrodocenrioestabelecido,sabesequebilhetesunitriosnopossuemqualquerimplementaodesaldooudebito,sendoerrada
aestratgiadecriaodeumcdigofictcioapenasparaatenderaassinaturadestesmtodos,e,justamenteporestanecessidade
queexisteadeclaraothrownewNotImplementedException().

Estecdigogaranteaocompiladorquemtodossejamreconhecidoscomoimplementados,pormsemumcdigoquerepresenteesta
lgica.

Telaaocolarocdigo:

MicrosoftVisualStudio2010UltimateTelaapsAlteraodaClasse

Por fim, devese salvar a classe Unitario e suas alteraes clicando no boto Salvar. Tela com a confirmao positiva (ver rodap da
janela)aoclicarnobotoSalvar:
MicrosoftVisualStudio2010UltimateTelaapsSalvaroProjeto

Finalizandooexemplo,restaapenasexecutaraAplicao,deveseentoclicarnobotoStartDebugging(F5):
MicrosoftVisualStudio2010UltimateExecuodaAplicao

TelaaoclicarnobotoStartDebugging(F5):

MicrosoftVisualStudio2010UltimateExecuodaAplicao(JaneladeConsole)

ConsideraesFinais:

EstapublicaovisaalteraraClasseUnitariogarantindooajustecorretoparaexecuodaAplicao.

Oprximoentenderoseguintequestionamento:
PorqueocompiladornoacusouerroaClasseUnitario,diantedanoimplementaodomtodoCobraTarifa(),tambmexigido
porIBilhete?

importanteressaltarque,amedidaqueospostsforemevoluindo,comapresentaestericassomadasasprticas,atendnciaqueo
leitorvsanandosuasdvidasedificuldadesdeentendimento.

Naprximapublicao,aindasextapartedasrie:ProgramaoOrientadaaObjetoscomC#serapresentadoooitavopost sobre
Interface,oleitorirconferiracontinuidadedotemaentreoutrosaspectosrelevantesaesteassunto.

RefernciasBibliogrficas:

Asrefernciasbibliogrficasseroapresentadasnoltimopostdestasrie.

Compartilhar
Compartilhar
Compartilhar

Email
Curtir

Sobreoautor

ThiagoRichardVanicore

ThiagoRichardVanicoreformouseemanliseedesenvolvimentodesistemas,possuicertificaoITILFoundationV2
eentreseusconhecimentosesto:ASP.Net(WebForms/MVC5/WebAPI)C#,HTML5,Html/XHtml,CSS3,JQuery,
JQueyMobile,JavaScript,Xml,Ajax,Json,MicrosoftSqlServer,MySql,Firebird,Azure,VisualStudioOnline,
Scrum,UML,CRM,QualityAssurance,CTI(ComputerTelephonyIntegration)MPSBR(MelhoriadeProcessosdo
SoftwareBrasileiro).

Linkpermanenteparaesteartigo:http://linksinergia.com.br/2016/09/21/programacaoorientadaaobjetoscomcparte67interface/

You might also like