Vous êtes sur la page 1sur 8

ProgramaoOrientadaaObjetoscomC#(Parte3.

5)
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
destapartedasriepassoude3.4para3.5(videttulo)eassimseguir(3.6,3.7)medianteanecessidadedeconcluso.

Palavraschaves:

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

Texto:

MosaObra

ComaapresentaoinicialdePropriedadesemClassesdeObjetos(videpostanterior),oprximopassonaProgramaoOrientadaa
ObjetoscomC#serexemplificarnaprticaestesassuntosesuasvariantes,vistasatomomentopresente.

Oexemplosedardemaneiraaentenderqueoleitorjpossuaaestruturadoprojeto(tipoConsole),almdasclassesMetroeProgram
dapostagem:ProgramaoOrientadaaObjetoscomC#(Parte2.3).

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.

AlterandoaclasseMetro

AindanaclasseMetro,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 Metro
9 {
10 private int velocidade;
11
12 public int Velocidade
13 {
14 get { return velocidade; }
15 set { velocidade = value; }
16 }
17 }
18 }

DetalhesdamodificaodaClasse:

AclasseMetrofoialteradacomomodificadordeacessopublic
FoicriadaavariveldeinstnciavelocidadecomomembrodaclasseMetro,sendoestadotipointeiro.Almdisto,avarivelest
comomodificadordeacessocomoprivate,ouseja,acessvelapenasdentrodaclasseMetro.
FoicriadaapropriedadeVelocidadecomomembrodaclasseMetro,sendoestadotipointeiro.Almdisto,apropriedadeestcomo
modificadordeacessocomopublic.

Ainda sobre propriedades, a ao do mtodo assessor get se estabelece de maneira a retornar o valor da varivel de instncia
velocidadeeporfimomtodoassessorsetrecebeumvalorparaatribulonavariveldeinstnciavelocidade,ouseja,osmtodos
assessoresgetesetatravsdapropriedadeVelocidade,encapsulamavarivelvelocidadenaclasseMetro.

Telaaocolarocdigo:

MicrosoftVisualStudio2010UltimateTelaapsAlteraodaClasse
Porfim,devesesalvaraclasseMetroesuasalteraesclicandonobotoSalvar.Telacomaconfirmaopositiva(verrodapdajanela)
aoclicarnobotoSalvar:

MicrosoftVisualStudio2010UltimateTelaapsSalvaroProjeto

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.Velocidade = 73;
14 Console.Write("O Metr est andando a {0} km/h", objMetro.Velocidade);
15
16 Console.ReadKey();
17 }
18 }
19 }

Cdigo:

Linha1a11:sodeclaraesrealizadasnaclasseProgram.
Linha12:declaraodeumnovoobjeto(objMetro)partirdaclasseMetro.
Linha 13: a propriedade Velocidade criada partir da classe Metro, foi acessada atravs da declarao do objeto desta mesma
classe(videlinha12),demaneiraapreparlaparaexecuocomorecebimentodeumvalorinteiro,noexemploovalor73.
Linha14:utilizaodaclassedoprprioFrameworkqueserveparaexibirinformaoreferenteaocontedodoobjeto.Apropriedade
VelocidadecriadapartirdaclasseMetro, foi acessada atravs da declarao do objeto desta mesma classe (vide linha 12), de
maneiraapreparlaparaexecuoretornandoumvalor.Aofinal,serexibidaumamensagemnumajaneladeconsole.
Linha15a19:encerramentodocdigo.

DetalhesdamodificaodaClasse:

Comacriaodonovoobjeto(objMetro)possvelverificarquelogoapsadeclaraodaClasse,apropriedadeVelocidade=73e
Velocidadesoexecutadassequencialmente.

AsintaxeparaacessoaPropriedadesumconceitonovo,aindanoexplicado.

OacessoaPropriedadesseestabelecedaseguintemaneira:

1 nome-do-objeto.Nome-da-Propriedade

EsteacessoocorreapsaInstanciaoeInicializaodoObjetoqueestaPropriedadepertence,emsuadeclaraocompletatem
se:

1 Metro objMetro = new Metro();


2 objMetro.Velocidade = 73;
3 Console.Write("O Metr est andando a {0} km/h", objMetro.Velocidade);

Autilizaodedefinioproporcionaaatribuiodeumvalorparavarivelencapsulada(velocidade)napropriedade(Velocidade):

1 objMetro.Velocidade = 73;

E utilizao de retorno proporciona a recuperao do valor definido para varivel encapsulada (velocidade) na propriedade
(Velocidade):

1 objMetro.Velocidade

No caso, ambas as utilizaes da propriedade esto manipulando a varivel (encapsulada) velocidade internamente, atravs dos
MtodosAssessores.

Quandosefazautilizaodedefinio,omtodoassessorsetchamadoimplicitamente.
Quandosefazautilizaoderetorno,omtodoassessorgetchamadoimplicitamente.

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, atravs da criao e manipulao da propriedade Velocidade, refletindo no
resultadofinalcomamensagem:OMetrestandandoa73Km/h,

No decorrer da srie, para exemplificao do conceito Encapsulamento sobre variveis, inicialmente fora introduzida a utilizao de
mtodos.

PormcomaevoluonaturaldaOrientaoaObjetos,prevalecesegeralmenteautilizaoprticadePropriedades,garantindouma
formadinmica,limpa,claraeorganizadaparaaplicaresteconceitoemumaestruturanica.

importanteressaltarque,amedidaqueospostsforemevoluindo,comapresentaestericassomadasasprticas,atendnciaqueo
leitorvsanandosuasdvidasedificuldadesdeentendimento.

Naprximapublicao,aindaterceirapartedasrie:ProgramaoOrientadaaObjetoscomC#,serapresentadoosextopostsobre
Encapsulamento,oleitorirconferiracontinuidadedotemaentreoutrosaspectosrelevantesaesteassunto.

RefernciasBibliogrficas:

Asrefernciasbibliogrficasseroapresentadasnoltimopostdestasrie.

Compartilhar
Compartilhar
Compartilhar

Email
Curtir
PostagemAnterior

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/08/31/programacaoorientadaaobjetoscomcparte35
encapsulamento/

Vous aimerez peut-être aussi