Sunteți pe pagina 1din 6

ProgramaoOrientadaaObjetoscomC#(Parte3.

1)
Encapsulamento
Categorias:Encapsulamento

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
destapartedasriepassoude3para3.1(videttulo)eassimseguir(3.2,3.3)medianteanecessidadedeconcluso.

Palavraschaves:

Variveis,Propriedades,Modificador,Acesso,Classe,Objeto.

Texto:

MosaObra

ComaalteraodasclassesMetroeProgramapresentandomensagensemumajaneladeconsoleatravsdarelaodestas(videpost
anterior), fica compreendida a declarao, criao e utilizao dos elementos bsicos que compem uma Classe (Estados e
Comportamentos) e Objetos criados a partir destas (Variveis do Objeto e Mtodos do Objeto), o prximo passo na Programao
OrientadaaObjetoscomC#serentrarnoconceitodeEncapsulamento.

Adendo

PararealizaodoPostforamutilizadososseguintesProgramas:

Windows7Ultimate
MicrosoftVisualStudio2010UltimateSP1(ServicePack1).

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

ResultadodaExecuodaAplicao

Partindo das ltimas alteraes realizadas, sabese que a classe Program executada logo que se inicia a Aplicao, em seguida a
classeMetroexecutadapartirdaclasseProgram.

Noquadroabaixosoexibidososcdigosquemanifestamasinformaesanteriores:
ClasseProgramxClasseMetro

Oresultadodestaexecuopodeseranalisadaatravsdeumaespciedetestedemesa,tcnicademonstradaaseguir:

TestedeMesa

Natabela,notasequeosmtodosestosendoexecutadosapsaInstanciaoeInicializaodoobjetoMetro.Almdisso,deextrema
importnciacompreenderentreestesmtodos,ocompartilhamentodevariveisquedeterminamasregrasprincipais.Acompanhandona
ordem,temse:

1Passo:aclasseexecutada(Metro),oobjeto(objMetro)instanciadoeinicializadoobtendoosvalorespadresdasvariveis
(statuseportaAberta),ouseja,falseparaambas.NocontextogeralsignificaqueoMetrestparadoedeportasfechadas

2Passo:oprimeiromtodo(Andar)executadopassandocomoparmetroovalortrue,alterandoovalordavarivelstatuspara
true. A varivel portaAberta mantmse como false mediante seu valor padro. No contexto geral significa que o Metr est
andandoepermanecedeportasfechadas

3Passo:osegundomtodo(AbrirPorta)executadosemparmetros,internamenteaoverificarostatuscomotrue(medianteo2
Passo),mantmavarivelportaAbertacomofalse.NocontextogeralsignificaqueoMetroestandandodeportasfechadas

Emresumo,naexecuodosmtodos,osvaloresdasvariveisdeinstnciaquedeterminamocomportamentofinaldoobjetocriado
pelaclasseMetro.

AlterandoaclasseProgram

NaclasseProgram,deveseclicaremodificarareadaclasse,alterandoaparaoseguintecdigo:
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5
6 namespace ConsoleApplication
7 {
8 class Program
9 {
10 static void Main(string[] args)
11 {
12 Metro objMetro = new Metro();
13 objMetro.Andar(true);
14 objMetro.status = false;
15 objMetro.AbrirPorta();
16
17 Console.ReadKey();
18 }
19 }
20 }

Cdigo:

Linha1a11:sodeclaraesrealizadasnaclasseProgram.
Linha12:declaraodeumnovoobjeto(objMetro)partirdaclasseMetro.
Linha 13: o mtodo Andar criado partir da classe Metro, foi acessado atravs da declarao do objeto desta mesma classe
(videlinha12),demaneiraapreparloparaexecuocomapassagemdeumparmetrobooleano,noexemplo,ovalortrue.Ao
final,amensagemqueserexibidanajaneladeconsole,forainseridadiretamentenomtodoAndar.
Linha14:atribuiodevaloravariveldeinstnciadonovoobjeto(objMetro).
Linha 15: o mtodo AbrirPorta criado partir da classe Metro, foi acessado atravs da declarao do objeto desta mesma
classe (vide linha 12), de maneira a preparlo para execuo sem a passagem de parmetros. Ao final, a mensagem que ser
exibidanajaneladeconsole,forainseridadiretamentenomtodoAbrirPorta.
Linha16a20:encerramentodocdigo.

DetalhesdadeclaraodaClasse:

Comacriaodonovoobjeto(objMetro)possvelverificarquelogoapsadeclaraodaClasse,omtodoAndaracessado,em
seguidaavariveldeinstnciastatusmodificadamanualmenteeporfimomtodoAbrirPortaconcluiasequnciadeexecues.

Telaaocolarocdigo:
MicrosoftVisualStudio2010UltimateTelaapsAlteraodaClasse

Por fim, devese salvar a classe Program 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:

Esta publicao visa alterar as Classes Metro e Program deixando no resultado da execuo mensagens que refletem um problema
grave,poisummetronopodeabrirsuasportasseestiverandando.Aabordagemecontextualizao,noentanto,sopropositaispara
encararoconceitodeEncapsulamentoesuasvariantes,queviroemsequncianasrie.

importanteressaltarque,amedidaqueospostsforemevoluindo,comapresentaestericassomadasasprticas,atendnciaqueo
leitorvsanandosuasdvidasedificuldadesdeentendimento.

Naprximapublicao,aindaterceiraparte da srie: Programao Orientada a Objetos com C# ser apresentado o segundo post
sobreEncapsulamento,oleitorirconferiracontinuidadedotemaentreoutrosaspectosrelevantesaesteassunto.
RefernciasBibliogrficas:

Asrefernciasbibliogrficasseroapresentadasnoltimopostdestasrie.

Compartilhar
Compartilhar
Compartilhar

Email
Curtir
PrximaPostagem

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/2015/06/29/programacaoorientadaaobjetoscomcparte31
encapsulamento/

S-ar putea să vă placă și