Sie sind auf Seite 1von 8

ProgramaoOrientadaaObjetoscomC#(Parte4.

11)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.10para4.11(videttulo)eassimseguir(4.12,4.13)medianteanecessidadedeconcluso.

Palavraschaves:

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

Texto:

MosaObra

Com a alterao da classe UnicoComum, herdando da Classe Base Bilhete e consequentemente tornandose uma Classe
Descendente, fora criada uma estrutura inicial destinada a introduo de uma nova categoria de bilhetes no cenrio sistema
metropolitano(videpostanterior),oprximopassonaProgramaoOrientadaaObjetoscomC#serdarcontinuidadeaestesassuntos
esuasvariantes,vistasatomomentopresente.

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.

AplicandoHeranaapartirdanovacategoriadeBilhetes

ComoUnicoComumfuncionacomumaregraquearmazenacrditos,sofrendorecargasoudbitosmedianteautilizaocomopassagem,
surgeportantoanecessidadedeparticularizarseucontroledesaldo(umasituaonova),umavezqueacobranadetarifasourecarga
acompanhaestesaldodemaneiracoexistente.

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 decimal Debita()
18 {
19 saldo = saldo - base.CobraTarifa();
20 return saldo;
21 }
22 }
23 }

DetalhesdamodificaodaClasse:

AclasseUnicoComumfoialteradacomomodificadordeacessopublic
AclasseUnicoComumherdoudaclasseBilheteeportantosetornouumaclasseDescendente.

FoicriadaavariveldeinstnciasaldocomomembrodaclasseUnicoComum,sendoestadotipodecimal.Almdisto,avarivel
estcomomodificadordeacessocomoprivate,ouseja,acessvelapenasdentrodaclasseUnicoComum.

ForamcriadososmtodosSaldo()eDebita()comomembrosdaclasseUnicoComum,demaneiraapreparlosparaexecuosem
apassagemdeparmetros.Almdissoestesmtodosestocomomodificadordeacessocomopublic.

AindasobreomtodoSaldo(),suaaoseestabelecedemaneiraaguardareretornaravarivelsaldoou seja, o mtodo Saldo()


encapsulaavarivelsaldonaclasseUnicoComum,levandoaoretornodovalorprdefinidocomo:100.00.

NomtodoDebita(),suaaoseestabelecedemaneiraaguardareretornaravarivelsaldo,realizandoantesdissoumaoperao
desubtraoquedeterminaovalordavarivelsaldomenosovalorretornadodaexecuodomtodoCobraTarifa(),criadonaclasse
HerdadaBilhete.

Autilizaodapalavrareservadabaseumconceitonovo,aindanoexplicado.

Lembrandoque,paragarantir,autilizaodatcnicaHerananocenrioestabelecido,aClasseUnicoComumfoimodificadacomo
segueabaixo:

1 public class UnicoComum: Bilhete

partirdestadeclarao,aclasseUnicoComumusufruitodasascaractersticasdisponibilizadasnaclasseBilhete.

No caso do mtodo Debita(), a palavra base refora ao compilador, a busca e utilizao de um mtodo que est na classe Pai ou
ClasseBase(Bilhete):

1 public decimal Debita()


2 {
3 saldo = saldo - base.CobraTarifa();
4 return saldo;
5 }

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 Console.WriteLine("O Bilhete nico Comum apresenta aps utilizao de uma passagem, um saldo disponvel de R${0}", objUnicoComum.Debita
19
20 Console.ReadKey();
21 }
22 }
23 }

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.
Linha20:encerramentodocdigo.

DetalhesdadeclaraodaClasse:

ComacriaodoobjetoobjUnicoComum possvel verificar que suas respectivas caractersticas funcionam independentemente,


sendofrutodaHeranaestabelecidaentresuaclassedeorigem(ClasseUnicoComum)eaclasseHerdada(Bilhete).

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 retornado do MtodoDebita() 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:

Esta publicao visa alterar as Classes UnicoComum e Program de maneira que o leitor possa entender a herana com o
compartilhamentodemtodos,dispondodaexecuodestesentreoutroselementoseconceitosdaOrientaoaObjetosdescritosato
momento.
importanteressaltarque,amedidaqueospostsforemevoluindo,comapresentaestericassomadasasprticas,atendnciaqueo
leitorvsanandosuasdvidasedificuldadesdeentendimento.

Na prxima publicao, ainda quarta parte da srie: Programao Orientada a Objetos com C# ser apresentado o dcimo
segundopostsobreHerana,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/03/30/programacaoorientadaaobjetoscomcparte411heranca/

Das könnte Ihnen auch gefallen