Você está na página 1de 23

ProgramaoOrientadaaObjetoscomC#(Parte4.

1)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
destapartedasriepassoude4para4.1(videttulo)eassimseguir(4.2,4.3)medianteanecessidadedeconcluso.

Palavraschaves:

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

Texto:

MosaObra

ComaalteraodasclassesMetroeProgramapresentandomensagensemumajaneladeconsoleatravsdarelaodestas(videpost
anterior),ficacompreendidaadeclarao,criaoeutilizaodoselementosbsicosquecompemoEncapsulamento,oprximopasso
naProgramaoOrientadaaObjetoscomC#serentrarnoconceitodeHerana.

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.

CriandoumaaplicaodotipoConsole

TelaInicialdoMicrosoftVisualStudio2010SP1:
MicrosoftVisualStudio2010UltimateTelaInicial

Localizareclicarnomenu:File,emseguidaselecionarNeweclicarsobreaopoProject:
MicrosoftVisualStudio2010UltimateCriaodeNovoProjeto

TelaapsclicarnaopoProject:
MicrosoftVisualStudio2010UltimateJanelaCentral

AjanelacentralestintituladacomoNewProject.

Contendo3reasdivididasnaverticale1readivididanahorizontal,naprimeirareaesquerdanomeadacomo:InstalledTemplates,
expandiraopoVisualC#,nasequenciaWindows.Emseguidanareacentral,localizareclicarnaopo:ConsoleApplication. Por
fim,nareaquerepresentaadivisohorizontal,manterasinformaesdeacordocomaimagemabaixoeclicarnobotoOk:
MicrosoftVisualStudio2010UltimateJanelaCentral

Valedestacarasconfiguraes:

Name:determinaseonomedoProjeto.
Location:determinaseocaminhooudiretrionoqualoprojetoficararmazenado.
Solutionname:determinaseonomedasoluodoprojeto.
Createdirectoryforsolution:marcaoquedeterminaacriaododiretrioparasoluo.

TelaapsclicarnobotoOk:
MicrosoftVisualStudio2010UltimateTelaapsCriaodoProjeto

NotasequeaocriaroProjetoConsoleApplication,oMicrosoftVisualStudioseencarregaautomaticamentedegeraredisponibilizar
umaclassechamadaProgram.cs.Porhoradeveseignorarestaclasse.

OprximopassosercriaraclasseUnitario.cs.

LocalizareclicarcomobotodireitonoprojetoConsoleApplicationemseguidaselecionarAddeclicarnaopoClass:
MicrosoftVisualStudio2010UltimateCriaodeClasse

TelaapsclicarnaopoClass:
MicrosoftVisualStudio2010UltimateJanelaCentral

AjanelacentralestintituladacomoAddNewItemConsoleApplication.

Contendo3reasdivididasnaverticale1readivididanahorizontal,naprimeirareaesquerdanomeadacomo:InstalledTemplates,
clicarnaopoVisualC#Items.Emseguidanareacentral,localizareclicarnaopo:Class.Porfim,nareaquerepresentaadiviso
horizontal,manterasinformaesdeacordocomaimagemabaixoeclicarnobotoAdd:
MicrosoftVisualStudio2010UltimateJanelaCentral

Valedestacarasconfiguraes:

Name:determinaseonomedaClasse.

TelaapsclicarnobotoAdd:
MicrosoftVisualStudio2010UltimateTelaapsCriaodaClasse

NotasequeaocriaraClasseUnitario.cs,oMicrosoftVisualStudioseencarregaautomaticamentededisponibilizlavisualmente,com
algumasdefiniesdecdigopadro.

Sendoassim,temse:

1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5
6 namespace ConsoleApplication
7 {
8 class Unitario
9 {
10 }
11 }

Cdigo:

Linha1a4:sodeclaraesdenamespacesdeterminadaspeloprprioMicrosoftVisualStudio.
Linha6:declaraodenamespacedeterminadopeloMicrosoftVisualStudiopartirdonomedadoparaoprojetodotipoConsole
Application.Apsalinha6,ocontedopresentedesdeaaberturadachaveatofechamentopertenceaonamespaceemquesto.
Linha8a10:declaraodaclasseUnitarioautomaticamentedisponibilizadapeloMicrosoftVisualStudio partir do nome dado
paraestaemseumomentodecriao.

DetalhesdadeclaraodaClasse:

As declaraes determinadas pelo prprio Microsoft Visual Studio para classe Unitario, foram definidas de maneira a omitir o
modificadordeacesso.Nestecaso,aclasseassumeporpadroomodificadordeacessodotipoprivate
Noexistemmembrosdaclasse.
OprximopassosercriaraclasseEspecialDesempregado.cs.

LocalizareclicarcomobotodireitonoprojetoConsoleApplicationemseguidaselecionarAddeclicarnaopoClass:

MicrosoftVisualStudio2010UltimateCriaodeClasse

TelaapsclicarnaopoClass:
MicrosoftVisualStudio2010UltimateJanelaCentral

AjanelacentralestintituladacomoAddNewItemConsoleApplication.

Contendo3reasdivididasnaverticale1readivididanahorizontal,naprimeirareaesquerdanomeadacomo:InstalledTemplates,
clicarnaopoVisualC#Items.Emseguidanareacentral,localizareclicarnaopo:Class.Porfim,nareaquerepresentaadiviso
horizontal,manterasinformaesdeacordocomaimagemabaixoeclicarnobotoAdd:
MicrosoftVisualStudio2010UltimateJanelaCentral

Valedestacarasconfiguraes:

Name:determinaseonomedaClasse.

TelaapsclicarnobotoAdd:
MicrosoftVisualStudio2010UltimateTelaapsCriaodaClasse

NotasequeaocriaraClasseEspecialDesempregado.cs,oMicrosoftVisualStudioseencarregaautomaticamentededisponibilizla
visualmente,comalgumasdefiniesdecdigopadro,seguindoamesmalgicadaclasseUnitario.cs,criadanopassoanterior.

Sendoassim,temse:

1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5
6 namespace ConsoleApplication
7 {
8 class EspecialDesempregado
9 {
10 }
11 }

AlterandoaclasseUnitario

RetornandoaclasseUnitario,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 Unitario
9 {
10 private string cor;
11 public string Cor
12 {
13 get { return cor; }
14 set { cor = value; }
15 }
16
17 private string tipo;
18 public string Tipo
19 {
20 get { return tipo; }
21 set { tipo = value; }
22 }
23 }
24 }

DetalhesdamodificaodaClasse:

AclasseUnitariofoialteradacomomodificadordeacessopublic
ForamcriadasPropriedadescomomembrosdaclasseUnitario.

Telaaocolarocdigo:

MicrosoftVisualStudio2010UltimateTelaapsAlteraodaClasse

Porfim,devesesalvaraclasseUnitarioesuasalteraesclicandonobotoSalvar.Telacomaconfirmaopositiva(verrodapda
janela)aoclicarnobotoSalvar:
MicrosoftVisualStudio2010UltimateTelaapsSalvaroProjeto

AlterandoaclasseEspecialDesempregado

NaclasseEspecialDesempregado,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 EspecialDesempregado
9 {
10 private string cor;
11 public string Cor
12 {
13 get { return cor; }
14 set { cor = value; }
15 }
16
17 private string tipo;
18 public string Tipo
19 {
20 get { return tipo; }
21 set { tipo = value; }
22 }
23
24 private DateTime dataValidade;
25 public DateTime DataValidade
26 {
27 get { return dataValidade; }
28 set { dataValidade = value; }
29 }
30 }
31 }

DetalhesdamodificaodaClasse:
AclasseEspecialDesempregadofoialteradacomomodificadordeacessopublic
ForamcriadasPropriedadescomomembrosdaclasseEspecialDesempregado.

Telaaocolarocdigo:

MicrosoftVisualStudio2010UltimateTelaapsAlteraodaClasse

Porfim,devesesalvaraclasseEspecialDesempregadoesuasalteraesclicandonobotoSalvar.Telacomaconfirmaopositiva
(verrodapdajanela)aoclicarnobotoSalvar:
MicrosoftVisualStudio2010UltimateTelaapsSalvaroProjeto

AlterandoaclasseProgram

OprximopassoretornaraclasseProgram.Nareadireitanomeadacomo:SolutionExplorer,deveseclicarduasvezes(2x)sobre
Program.cs.

Conformemencionado,aclasseProgramfoicriadaporencargodoprprioMicrosoftVisualStudionaconcretizaodecriaodo
ProjetoConsoleApplication,disponibilizandoacomalgumasdefiniesdecdigopadro.

Sendoassim,temse:

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
13 }
14 }
15 }

Cdigo:

Linha1a4:sodeclaraesdenamespacesdeterminadaspeloprprioMicrosoftVisualStudio.
Linha6:declaraodenamespacedeterminadopeloMicrosoftVisualStudiopartirdonomedadoparaoprojetodotipoConsole
Application.Apsalinha6,ocontedopresentedesdeaaberturadachaveatofechamentopertenceaonamespaceemquesto.
Linha8a14:declaraodaclasseProgramautomaticamentedisponibilizadapeloMicrosoftVisualStudiopartirdonomepadro
adotado.
DetalhesdadeclaraodaClasse:

AsdeclaraesdeterminadaspeloprprioMicrosoftVisualStudioparaclasseProgramforamdefinidasdemaneiraaomitiro
modificadordeacesso
Omembronestecasoexistenativamente,sendoesteomtodoMain.

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 Unitario objUnitario = new Unitario();
13 objUnitario.Tipo = "Papel";
14 objUnitario.Cor = "Branca";
15
16 Console.WriteLine("O objeto Unitario de {0} e possui a cor {1}", objUnitario.Tipo, objUnitario.Cor);
17
18 EspecialDesempregado objEspecialDesempregado = new EspecialDesempregado();
19 objEspecialDesempregado.Tipo = "Papel";
20 objEspecialDesempregado.Cor = "Amarela";
21
22 Console.WriteLine("O objeto EspecialDesempregado de {0} e possui a cor {1}", objEspecialDesempregado.Tipo, objEspecialDesempregado.
23
24 Console.ReadKey();
25 }
26 }
27 }

DetalhesdamodificaodaClasse:

AsclassesUnitarioeEspecialDesempregadoforaminstanciadasdentrodomtodoMaindaclasseProgram,havendoapercepo
dequeUnitarioeEspecialDesempregadosoclassesdotipoClassedeObjetoseProgramumaclassedotipoClassePadro

AsPropriedadescriadasapartirdaclasseUnitarioeEspecialDesempregado,foramacessadasatribuindolhesvaloresque
respeitamotipodeclaradodecadauma(TipoeCor,soambasdotipostring).

Aofinal,existemClassesdoprprioFrameworkqueservemparaexibirinformaesreferenteaocontedodosobjetosnumajanelade
console.

Telaaocolarocdigo:
MicrosoftVisualStudio2010UltimateTelaapsAlteraodaClasse

Porfim,devesesalvaroprojetoConsoleApplicationesuasalteraesclicandonobotoSalvar.Telacomaconfirmaopositiva(ver
rodapdajanela)aoclicarnobotoSalvar:
MicrosoftVisualStudio2010UltimateTelaapsSalvaroProjeto

Finalizandooexemplo,restaapenasexecutaraAplicao,deveseentoclicarnobotoStartDebugging(F5):
MicrosoftVisualStudio2010UltimateExecuodaAplicao

TelaaoclicarnobotoStartDebugging(F5):

MicrosoftVisualStudio2010UltimateExecuodaAplicao(JaneladeConsole)

ConsideraesFinais:

EstapublicaovisacriarealterarasClassesUnitario,EspecialDesempregadoeProgramdeixandonoresultadodaexecuo
mensagensquesediferememvaloresparacadaobjeto,pormseigualamcomrelaoassuascaractersticas.Estarepresentaofoi
introduzidademaneiraproposital,tendoemmiraumpontodepartidaparautilizaoprticadoconceitoHerana,quevirposteriormente.

importanteressaltarque,amedidaqueospostsforemevoluindo,comapresentaestericassomadasasprticas,atendnciaqueo
leitorvsanandosuasdvidasedificuldadesdeentendimento.

Naprximapublicao,aindaquartapartedasrie:ProgramaoOrientadaaObjetoscomC#serapresentadoosegundopost
sobreHerana,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/11/04/programacaoorientadaaobjetoscomcparte41heranca/

Você também pode gostar