Escolar Documentos
Profissional Documentos
Cultura Documentos
7)
Namespace
Categorias:Namespace
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
destapartedasriepassoude7.6para7.7(videttulo)eassimseguir(7.8,7.9)medianteanecessidadedeconcluso.
Palavraschaves:
Interface,Encapsulamento,Herana,Polimorfismo,Propriedades,Classe.
Texto:
MosaObra
Com a alterao da classe UnicoComum corrigindo erros anteriormente indicados pelo compilador, o prximo passo na Programao
OrientadaaObjetoscomC#serdarcontinuidadeaestesassuntosesuasvariantes,vistasatomomentopresente.
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.
AlterandoaclasseUnicoEstudante
PartindodaclasseUnicoEstudante,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 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 }
Tela:
MicrosoftVisualStudio2010UltimateTeladaClasse
Devesemodificarareadaclasse,alterandoaparaoseguintecdigo:
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5
6 namespace linksinergia.metro.bilhete
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 }
DetalhesdamodificaodaInterface:
O Namespace antes no havia sido alterado (mantinhase o padro ConsoleApplication), agora por obrigatoriedade, a
classeBilheteeainterfaceIBilhetedefinemanecessidadedaclasseUnicoEstudantedeclararsesobreomesmoNamespaceque
asprimeirascitadas,remediandooserrosantesexibidospelocompiladorreferenteaclasseUnicoEstudante.
Telaaocolarocdigo:
MicrosoftVisualStudio2010UltimateTelaapsAlteraodaClasse
Porfim,devesesalvaraclasseUnicoEstudanteesuasalteraesclicandonobotoSalvar.Telacomaconfirmaopositiva(verrodap
dajanela)aoclicarnobotoSalvar:
MicrosoftVisualStudio2010UltimateTelaapsSalvaroProjeto
Finalizandooexemplo,restaapenasexecutaraAplicao,deveseentoclicarnobotoStartDebugging(F5):
MicrosoftVisualStudio2010UltimateExecuodaAplicao
Surgirumajaneladeconfirmao,clicarnobotoYes:
MicrosoftVisualStudio2010UltimateExecuodaAplicao
TelaaoclicarnobotoYes:
MicrosoftVisualStudio2010UltimateExecuodaAplicao
Noresultadodaexecuo,oMicrosoftVisualStudioseencarregoudeapresentarumanovalistagemdeerroscomaseguintedescrio:
Error 1 The type or namespace name Bilhete could not be found (are you missing a using directive or an assembly
reference?).
Esta mensagem de erro ocorreu em razo da tentativa de execuo da aplicao, com a classe Unitario, Bilhete, interface IBilhete,
tambm as classes UnicoComum e UnicoEstudante utilizandose de um Namespace diferenciado comparado a
Classe EspecialDesempregado (a coluna File da listagem de erros complementa a descrio deste), no respeitando um escopo em
comum.
ConsideraesFinais:
Esta publicao visa alterar a Classe UnicoEstudante garantindo o ajuste correto para execuo da Aplicao, porm uma vez que o
Namespace da classe UnicoEstudante fora modificado igualmente as classes Unitario, Bilhete, interface IBilhete e classe
UnicoComum,apenasestescincoelementosestabelecemsecomocorrigidos.TodasasoutrasClassesqueherdamdaclasseBilhetee
referenciamse com a Interface IBilhete, permanecem acusando erros no compilador, no caso a nica faltante a classe
EspecialDesempregado.
importanteressaltarque,amedidaqueospostsforemevoluindo,comapresentaestericassomadasasprticas,atendnciaqueo
leitorvsanandosuasdvidasedificuldadesdeentendimento.
Naprximapublicao,aindastimapartedasrie:ProgramaoOrientadaaObjetoscomC#serapresentadoooitavopostsobre
Namespace,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/11/30/programacaoorientadaaobjetoscomcparte77namespace/