Professional Documents
Culture Documents
12)Herana
Categorias:Herana
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
destapartedasriepassoude4.11para4.12(videttulo)eassimseguir(4.13,4.14)medianteanecessidadedeconcluso.
Palavraschaves:
Variveis,Propriedades,Modificador,Acesso,Classe,Objeto.
Texto:
MosaObra
ComaalteraodasclassesUnicoComumeProgram,aplicandoHeranapartirdeumanovacategoriadeBilhetes(videpostanterior),
oprximopassonaProgramao Orientada a Objetos com C# ser dar continuidade a estes assuntos e suas variantes, vistas at o
momentopresente.
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.
Entendendoaresponsabilidadedecadacaracterstica
EmOrientaoaObjetos,redesenharocdigoregularmenteumatarefaobrigatria,quevaialmdeHerana.
AnteriormentefoiapresentadaatcnicadeHeranaquesurgiunaformadeumaClassePaiassumindocaractersticasduplicadasde
outrasclasses,decretandoestasltimascomoClassesDescendentes.
PormexistemmomentosondeidentificaseumaquebraderesponsabilidadesdentrodaprpriaClasseDescendenteeoajustedever
serrealizadonelamesma,umavezque,nofazsentidoaClassePaiassumirestasresponsabilidades.
Nocaso,comaltimamodificaonaclasseUnicoComum,podesenotararepetiodeaesentreomtodoSaldo()eomtodo
Debita().Ambospossuememsuasaesoretornodosaldodeumbilheteutilizado,oquedeveriaserresponsabilidadeapenasdo
mtodoSaldo(),deixandoparaDebita()apenasaresponsabilidadederealizaroclculonautilizaodobilhete.
AlterandoaClasseUnicoComum
AindanaclasseUnicoComum,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
9 {
10 private decimal saldo = 100.00m;
11
12 public decimal Saldo()
13 {
14 return saldo;
15 }
16
17 public void Debita()
18 {
19 saldo = saldo - base.CobraTarifa();
20 }
21 }
22 }
DetalhesdamodificaodaClasse:
AclasseUnicoComumfoialteradacomomodificadordeacessopublic
AclasseUnicoComumherdoudaclasseBilheteeportantosetornouumaclasseDescendente.
FoicriadaavariveldeinstnciasaldocomomembrodaclasseUnicoComum,sendoestadotipodecimal.Almdisto,avarivel
estcomomodificadordeacessocomoprivate,ouseja,acessvelapenasdentrodaclasseUnicoComum.
ForamcriadososmtodosSaldo()eDebita()comomembrosdaclasseUnicoComum,demaneiraapreparlosparaexecuosem
apassagemdeparmetros.Almdissoestesmtodosestocomomodificadordeacessocomopublic.
No mtodo Debita(), sua ao se estabelece de maneira a guardar a varivel saldo, realizando antes disso uma operao de
subtraoquedeterminaovalordavarivelsaldomenosovalorretornadodaexecuodomtodoCobraTarifa(),criado na classe
HerdadaBilhete.
Telaaocolarocdigo:
MicrosoftVisualStudio2010UltimateTelaapsAlteraodaClasse
Porfim,devesesalvaraclasseUnicoComumesuasalteraesclicandonobotoSalvar.Telacomaconfirmaopositiva(verrodapda
janela)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 UnicoComum objUnicoComum = new UnicoComum();
13 objUnicoComum.Tipo = "Plstico";
14 objUnicoComum.Cor = "Vermelha";
15
16 Console.WriteLine("O Bilhete nico Comum apresenta inicialmente um saldo de R${0}", objUnicoComum.Saldo());
17 Console.WriteLine("O Bilhete nico Comum de {0}, possui a cor {1} e ao passar na catraca, cobra-se uma tarifa de: R${2}", objUnicoComum
18 objUnicoComum.Debita();
19 Console.WriteLine("O Bilhete nico Comum apresenta aps utilizao de uma passagem, um saldo disponvel de R${0}", objUnicoComum.Saldo
20
21 Console.ReadKey();
22 }
23 }
24 }
Cdigo:
Linha1a4:sodeclaraesdenamespacesdeterminadaspeloprprioMicrosoftVisualStudio.
Linha6:declaraodenamespacedeterminadopeloMicrosoftVisualStudiopartirdonomedadoparaoprojetodotipoConsole
Application.Apsalinha6,ocontedopresentedesdeaaberturadachaveatofechamentopertenceaonamespaceemquesto.
Linha 8: declarao da classe Program automaticamente disponibilizada pelo Microsoft Visual Studio partir do nome padro
adotado.
Linha12a18:sodeclaraesrealizadasnaclasseProgram.Instanciando,Inicializando,emseguidapreenchendoasvariveisde
instnciadoobjetocriado(objUnicoComum)apartirdaclasseUnicoComum,queaofinalserovisualizadasnajaneladeConsole
comomensagensdetexto,atravsdautilizaodasprpriasclassesdoFramework.
Linha21:encerramentodocdigo.
DetalhesdadeclaraodaClasse:
Diantedocenriosistemametropolitano(estabelecidoaolongodasrie),ovalorretornadodoMtodoSaldo()representaovalorque
o Bilhete nico Comum possui armazenado inicialmente. Alm disso o Mtodo Saldo() pertence exclusivamente a Classe
DescendenteUnicoComum.
Diante do cenrio sistema metropolitano (estabelecido ao longo da srie), o valor retornado do Mtodo CobraTarifa() representa o
valor da tarifa padro cobrada e que d direito a uma passagem atravs do Bilhete nico Comum. Alm disso o Mtodo
CobraTarifa()foicriadonaClassePaiBilheteereaproveitadoatravsdeHeranapelaClasseDescendenteUnicoComum.
Diante do cenrio sistema metropolitano (estabelecido ao longo da srie), o valor calculado no Mtodo Debita() representa o valor
que o Bilhete nico Comum possui armazenado aps a utilizao de uma passagem. Alm disso o Mtodo Debita() pertence
exclusivamenteaClasseDescendenteUnicoComum.
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:
EstapublicaovisaalterarasClassesUnicoComumeProgramdemaneiraqueoleitorpossaentenderaaplicabilidadedetcnicasque
referemse a diviso de responsabilidades entre mtodos estabelecidos em um contexto de Herana, mas com inteno geral sobre
oenvolvimentodaOrientaoaObjetos.
importanteressaltarque,amedidaqueospostsforemevoluindo,comapresentaestericassomadasasprticas,atendnciaqueo
leitorvsanandosuasdvidasedificuldadesdeentendimento.
Na prxima publicao, ainda quarta parte da srie: Programao Orientada a Objetos com C# ser apresentado o dcimo
terceiropostsobreHerana,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/04/20/programacaoorientadaaobjetoscomcparte412heranca/