Upload
tiego-santos
View
217
Download
0
Embed Size (px)
Citation preview
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
7/23/2019 curso-de-poo-1234015222878973-2
http://slidepdf.com/reader/full/curso-de-poo-1234015222878973-2 2/14
Introdução
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 <imos 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!
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!
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!
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!
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)!
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!
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 <=
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!
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!
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!
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!
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-!