14
7/23/2019 curso-de-poo-1234015222878973-2 http://slidepdf.com/reader/full/curso-de-poo-1234015222878973-2 1/14 Introdução Conceitos básicos Programação Orientada a Objetos

curso-de-poo-1234015222878973-2

Embed Size (px)

Citation preview

Page 1: curso-de-poo-1234015222878973-2

7/23/2019 curso-de-poo-1234015222878973-2

http://slidepdf.com/reader/full/curso-de-poo-1234015222878973-2 1/14

Introdução

Conceitos básicosProgramação Orientada a

Objetos

Page 2: curso-de-poo-1234015222878973-2

7/23/2019 curso-de-poo-1234015222878973-2

http://slidepdf.com/reader/full/curso-de-poo-1234015222878973-2 2/14

Introdução

Page 3: curso-de-poo-1234015222878973-2

7/23/2019 curso-de-poo-1234015222878973-2

http://slidepdf.com/reader/full/curso-de-poo-1234015222878973-2 3/14

Introdução

• Uma abordagem típica usada no desenvolvimento deprogramas complexos consiste em decompor osprogramas em diversos módulos e dividir cada módulo emdiversas funçes! Cada função " responsável por parte dasolução do problema! #sta abordagem dedesenvolvimento se baseia na decomposição funcional!#mbora a decomposição funcional ten$a sido amplamenteutili%ada nos &ltimos anos' apresenta algumas de(ci)nciastais como o fraco acoplamento entre dados e funçes!

• * orientação a objetos' tamb"m con$ecida comoProgramação Orientada a Objetos (POO) ou ainda emingl)s Object-Oriented Programming (OOP)  " umparadigma de análise' projeto e programação de sistemasde software  baseado na composição e interação entrediversas unidades de soft+are c$amadas de objetos! #moutras palavras' os soft+ares são compostos por módulos,objetos- cujos dados e funçes são fortemente acoplados!

Page 4: curso-de-poo-1234015222878973-2

7/23/2019 curso-de-poo-1234015222878973-2

http://slidepdf.com/reader/full/curso-de-poo-1234015222878973-2 4/14

Conceitos .ásicos

• Os principais conceitos de orientaçãoa objetos são/ classes' objetos'estado' comportamento'encapsulamento' mensagens eabstração!

Page 5: curso-de-poo-1234015222878973-2

7/23/2019 curso-de-poo-1234015222878973-2

http://slidepdf.com/reader/full/curso-de-poo-1234015222878973-2 5/14

Classes

• #m orientação a objeto' uma classe " uma estrutura 0ueabstrai um conjunto de objetos com característicassimilares! Uma classe de(ne o comportamento de seusobjetos atrav"s de m"todos e os estados possíveis destesobjetos atrav"s de atributos! #m outros termos' uma classedescreve os serviços providos por seus objetos e 0uaisinformaçes eles podem arma%enar!

Page 6: curso-de-poo-1234015222878973-2

7/23/2019 curso-de-poo-1234015222878973-2

http://slidepdf.com/reader/full/curso-de-poo-1234015222878973-2 6/14

Objetos• 1o conceito de sistemas orientados a objetos' um objeto representa uma

entidade 0ue pode ser física' conceitual ou de soft+are! 2 uma abstração dealgo 0ue possui fronteira de(nida e signi(cado para a aplicação!

• 3entro da terminologia das linguagens de programação' um objeto passa aexistir a partir de um 4molde4! #ste 4molde4' de(nido como classe do objeto'de(ne os limites' seus atributos e suas funçes! Podem ser criados váriosobjetos ou inst5ncias de uma classe!

* vantagem do uso de objetos na programação " 0ue estes permitem utili%arfunçes e atributos con$ecidos ,interface- sem necessidade de con$ecimentosobre sua estrutura interna ,encapsulamento-! Para ilustrar/ utili%amos o objeto4li0uidi(cador4 pressionando seus botes' mas não precisamos saber comofunciona seu 4motor4! 6e for necessário trocar o 4motor4' não será necessárioalterar o modo de usá7lo!

• Objeto tamb"m considerado como uma inst5ncia de uma classe' 0uando umobjeto " criado ele precisa ser iniciali%ado' ou seja' para uma classe podemoster vários objetos!

Page 7: curso-de-poo-1234015222878973-2

7/23/2019 curso-de-poo-1234015222878973-2

http://slidepdf.com/reader/full/curso-de-poo-1234015222878973-2 7/14

#stado e comportamento• Uma das principais características da orientação a objeto " o forte acoplamento

entre dados e funçes!• O estado de um objeto " representado por seus dados ou mais especi(camente

atributos!• O comportamento de um objeto " representado por seus m"todos ou mais

especi(camente subs ou functions!• Como exemplo temos a classe Mamífero que dene que um

mamífero(objeto) possui altura cor e peso(atributos) e pode secomunicar (comportamento) com outros mamíferos(objetos)!

Page 8: curso-de-poo-1234015222878973-2

7/23/2019 curso-de-poo-1234015222878973-2

http://slidepdf.com/reader/full/curso-de-poo-1234015222878973-2 8/14

#ncapsulamento"ncapsulamento " justamente o empacotamento dos atributos edos m"todos numa mesma classe! Isto protege os dados contracorrupção' pois somente os m"todos da classe poderão alterar asestruturas  de dados desta classe em 0uestão' ilustradas pela(gura!

Page 9: curso-de-poo-1234015222878973-2

7/23/2019 curso-de-poo-1234015222878973-2

http://slidepdf.com/reader/full/curso-de-poo-1234015222878973-2 9/14

8ensagem

• Os objetos se comunicam entre si atrav"s de mensagem! *mensagem especi(ca 0ue um determinado m"todo de umobjeto necessita utili%ar um ou mais m"todos de outro objeto!Podem ser passados objetos como par5metro' e'opcionalmente' algum resultado ou valor pode ser retornado!*s mensagens especi(cam 0ue os m"todos devem ser

executados' não como estes m"todos devem ser executados!• 9uando um objeto * 0uer 0ue o objeto . faça uma ação' o

objeto *' envia uma mensagem ao objeto ./ :* pede para .fa%er *ção : ; :* pede para . executar m"todo <=

Page 10: curso-de-poo-1234015222878973-2

7/23/2019 curso-de-poo-1234015222878973-2

http://slidepdf.com/reader/full/curso-de-poo-1234015222878973-2 10/14

*bstração

• *bstração " o exame seletivo dedeterminados aspectos de umproblema! O objetivo da abstração "isolar os aspectos 0ue sejamimportantes para algum propósito esuprimir os 0ue não o forem! *

abstração deve sempre visar a umpropósito' por0ue este determina o0ue " e o 0ue não " importante!

Page 11: curso-de-poo-1234015222878973-2

7/23/2019 curso-de-poo-1234015222878973-2

http://slidepdf.com/reader/full/curso-de-poo-1234015222878973-2 11/14

• Como exemplo conceitual de abstração'poderíamos analisar o mapa do mundo

para a c$ina antiga! Para eles' na "poca'o mundo estava sob seus domínios!• Percebemos 0ue o mapa abstrai muitos

detal$es do mundo real!

Page 12: curso-de-poo-1234015222878973-2

7/23/2019 curso-de-poo-1234015222878973-2

http://slidepdf.com/reader/full/curso-de-poo-1234015222878973-2 12/14

• *bstração " o processo de extrair ascaracterísticas essenciais de um objeto real!* abstração " necessária para se ter ummodelo (el da realidade sobre a 0ual sepossa operar! O conjunto de característicasresultante da abstração forma um tipo dedados abstrato com informaçes sobre seu

estado e comportamento!• * abstração nem sempre produ% os mesmos

resultados' depende do contexto onde "utili%ada! 1o exemplo do mapa mundial'

para a c$ina antiga o 0ue vale seria o mapaantigo e para os geógrafos do mundo atualo 0ue vale seria o mapa mundi atual'realista e detal$ado!

Page 13: curso-de-poo-1234015222878973-2

7/23/2019 curso-de-poo-1234015222878973-2

http://slidepdf.com/reader/full/curso-de-poo-1234015222878973-2 13/14

#xemplo de abstração• 1o exemplo abaixo' todo a característica ,atributos- e comportamento,m"todos- comum a todos os

mamíferos foi abstraído na classe abstrata 8amífero!• Classe abstrata não pode ser instanciada' em outras palavras não se pode criar objetos diretamente de

8amífero! * classe abstrata serve apenas para encapsular os m"todos e atributos comuns a todos osmamíferos!

• * partir da classe abstrata criamos as classes concretas' 0ue podem ser instanciadas! 6ão classes 0uerepresentam um mamífero especí(co' 0ue al"m de conter todo o comportamento e característica de ummamífero' possui seus próprios! Utili%amos a $erança na orientação a objetos para estruturar estarelação!

Page 14: curso-de-poo-1234015222878973-2

7/23/2019 curso-de-poo-1234015222878973-2

http://slidepdf.com/reader/full/curso-de-poo-1234015222878973-2 14/14

Polimor(smo

• o polimorsmo permite 0ue refer)ncias de tipos de classesmais abstratas representem o comportamento das classesconcretas 0ue referenciam! *ssim' um mesmo m"todo podeapresentar várias formas' de acordo com seu contexto! Opolimor(smo " importante pois permite 0ue a sem5ntica deuma interface seja efetivamente separada da implementação

0ue a representa! O termo polimor(smo " originário do grego esigni(ca 4muitas formas4 ,poli ; muitas' morp$os ; formas-!