5)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.4para6.5(videttulo)eassimseguir(6.6,6.7)medianteanecessidadedeconcluso.
Palavraschaves:
Encapsulamento,Herana,Polimorfismo,Propriedades,Classe,Objeto.
Texto:
MosaObra
ComaalteraodaInterfaceIBilheteassumindocomomembrosadeclaraodosMtodosSaldo(),CobraTarifa()eDebita(),temsea
conclusodosegundodentreos3passosestabelecidosparaaplicabilidadedeInterface(videpostanterior),oprximopassoseralterar
asClassesUnitario,UnicoComumeEspecialDesempregadodemaneiraafirmarovnculoentreestaseainterfaceIBilhete,garantindo
aimplementaodeseusmtodosdeclaradosnopassoanterior.
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
PartindodaclasseUnitario,deveseclicaremodificarareadaclasse,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 }
11 }
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
AlterandoaClasseUnicoComum
NaclasseUnicoComum,deveseclicaremodificarareadaclasse,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 UnicoComum : Bilhete, IBilhete
9 {
10 private decimal saldo = 100.00m;
11
12 public decimal Saldo()
13 {
14 return saldo;
15 }
16
17 private DateTime dataPrimeiraPassagem;
18 public DateTime DataPrimeiraPassagem
19 {
20 get { return dataPrimeiraPassagem; }
21 set { dataPrimeiraPassagem = value; }
22 }
23
24 private decimal tarifa;
25 public override decimal CobraTarifa()
26 {
27 TimeSpan diferencaHora = dataPrimeiraPassagem - DateTime.Now;
28 tarifa = base.CobraTarifa();
29
30 if (diferencaHora.Hours <= 2)
31 {
32 tarifa = tarifa + 2.12m;
33 }
34
35 return tarifa;
36 }
37
38 public void Debita()
39 {
40 saldo = saldo - tarifa;
41 }
42 }
43 }
Telaaocolarocdigo:
MicrosoftVisualStudio2010UltimateTelaapsAlteraodaClasse
Porfim,devesesalvaraclasseUnicoComumesuasalteraesclicandonobotoSalvar.Telacomaconfirmaopositiva(verrodapda
janela)aoclicarnobotoSalvar:
MicrosoftVisualStudio2010UltimateTelaapsSalvaroProjeto
AlterandoaClasseUnicoEstudante
NaclasseUnicoEstudante,deveseclicaremodificarareadaclasse,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 UnicoEstudante : Bilhete, IBilhete
9 {
10 private decimal saldo = 100.00m;
11
12 public decimal Saldo()
13 {
14 return saldo;
15 }
16
17 private DateTime dataPrimeiraPassagem;
18 public DateTime DataPrimeiraPassagem
19 {
20 get { return dataPrimeiraPassagem; }
21 set { dataPrimeiraPassagem = value; }
22 }
23
24 private decimal tarifa;
25 public override decimal CobraTarifa()
26 {
27 TimeSpan diferencaHora = dataPrimeiraPassagem - DateTime.Now;
28 tarifa = base.CobraTarifa();
29
30 if (diferencaHora.Hours <= 2)
31 {
32 tarifa = tarifa / 2;
33 }
34
35 return tarifa;
36 }
37
38 public void Debita()
39 {
40 saldo = saldo - tarifa;
41 }
42 }
43 }
Telaaocolarocdigo:
MicrosoftVisualStudio2010UltimateTelaapsAlteraodaClasse
Porfim,devesesalvaraclasseUnicoComumesuasalteraesclicandonobotoSalvar.Telacomaconfirmaopositiva(verrodapda
janela)aoclicarnobotoSalvar:
MicrosoftVisualStudio2010UltimateTelaapsSalvaroProjeto
DetalhesdasClassesUnitario,UnicoComumeUnicoEstudante
AsintaxeparaInterfaceentreasClassesUnitario,UnicoComumeUnicoEstudanteeIBilheteumconceitonovo,aindanoexplicado.
Logo,adeclaraodeumaInterfaceaserutilizadaseestabelecedaseguintemaneira:
Para garantir, portanto, a utilizao da tcnica Interface no cenrio estabelecido, as Classes Unitario, UnicoComum e
UnicoEstudanteforammodificadascomosegueabaixo:
Em resumo, as classes Unitario, UnicoComum e UnicoEstudante devero implementar todos os membros (no
casoMtodos)declaradosnaInterfaceIBilhete.
Outro detalhe que, segundo fontes diversas, quando ocorre o vnculo entre classes (no exemplo: Unitario, UnicoComum e
UnicoEstudante)einterfaces(noexemplo:IBilhete)iniciaseumcontrato.
Notase tambm que estas classes foram determinadas para utilizao da interface IBilhete mantendo Bilhete como classe Herdada,
sendo esta uma combinao de tcnicas totalmente possvel e ser abordada de maneira mais aprofundada ao longo das prximas
postagens:
ClassesmantendoaHeranacomBilhete
ConsideraesFinais:
Esta publicao visa a alterao das Classes Unitario, UnicoComum e UnicoEstudante (agora firmadas com
um contrato), preparandoas para implementao obrigatria dos Mtodos Saldo(), CobraTarifa() e Debita() declarados partir da
interfaceIBilhete.
Fica concludo o terceiro passo definido para incluso de Interface no cenrio estabelecido, restando apenas o consumo de toda esta
preparaocomaclasseProgram,queviremsequncia.
importanteressaltarque,amedidaqueospostsforemevoluindo,comapresentaestericassomadasasprticas,atendnciaqueo
leitorvsanandosuasdvidasedificuldadesdeentendimento.
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/08/31/programacaoorientadaaobjetoscomcparte65interface/