Вы находитесь на странице: 1из 10

ProgramaoOrientadaaObjetoscomC#(Parte7.

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/