aula 3 -_fundamentos_sobre_aoo

28
Fundamentos Sobre Fundamentos Sobre An An á á lise Orientada a lise Orientada a Objectos Objectos Docentes: Zeferino Saugene Docentes: Zeferino Saugene Edgar Gemo Edgar Gemo

Upload: portaldoestudanteads

Post on 03-Jul-2015

153 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Aula 3 -_fundamentos_sobre_aoo

Fundamentos Sobre Fundamentos Sobre AnAnáálise Orientada a lise Orientada a

ObjectosObjectosDocentes: Zeferino SaugeneDocentes: Zeferino Saugene

Edgar GemoEdgar Gemo

Page 2: Aula 3 -_fundamentos_sobre_aoo

ConteConteúúdodo

AnAnáálise Orientada a Objectoslise Orientada a ObjectosPrincPrincíípios de OOpios de OOConceitos de OOConceitos de OO

Page 3: Aula 3 -_fundamentos_sobre_aoo

AnAnáálise Orientada a Objectoslise Orientada a Objectos

AnAnáálise lise éé o estudo do domo estudo do domíínio de um problema nio de um problema que leva a uma especificaque leva a uma especificaçção de ão de comportamentos observcomportamentos observááveis externamente.veis externamente.

Analisar Analisar éé obter as necessidades de um obter as necessidades de um sistema e o que este precisa para ser sistema e o que este precisa para ser desenvolvido para satisfazer as desenvolvido para satisfazer as necessidades do usunecessidades do usuáário. rio.

Analisar não Analisar não éé definir como o sistema serdefinir como o sistema seráádesenvolvido, mas sim desenvolvido, mas sim investigar o problemainvestigar o problema

Page 4: Aula 3 -_fundamentos_sobre_aoo

AnAnáálise Orientada a Objectoslise Orientada a Objectos

A AOO tem 2 propA AOO tem 2 propóósitos:sitos:Formalizar uma Formalizar uma ““visãovisão”” do mundo real do mundo real dentro do qual o sistema serdentro do qual o sistema seráádesenvolvido, estabelecendo os desenvolvido, estabelecendo os objectos que servirão como principais objectos que servirão como principais estruturas organizacionais do sistema estruturas organizacionais do sistema de software e tambde software e tambéém as que o m as que o mundo real impõe. mundo real impõe.

Formalizar a colaboraFormalizar a colaboraçção de um dado ão de um dado conjunto de objectos na execuconjunto de objectos na execuçção do ão do trabalho do sistema de software que trabalho do sistema de software que estestáá sendo especificado.sendo especificado.

Page 5: Aula 3 -_fundamentos_sobre_aoo

PrincPrincíípios de OOpios de OO

De acordo com Bezerra (2003) os princDe acordo com Bezerra (2003) os princíípios de pios de OO são os seguintes:OO são os seguintes:

Qualquer coisa Qualquer coisa éé um objecto.um objecto.Objectos realizam tarefas atravObjectos realizam tarefas atravéés da s da requisirequisiçção de servião de serviçços a outros objectos.os a outros objectos.Cada objecto pertence a uma determinada Cada objecto pertence a uma determinada classe. Uma classe agrupa objectos classe. Uma classe agrupa objectos similares.similares.A classe A classe éé um repositum repositóório para rio para comportamento associado ao objecto.comportamento associado ao objecto.Classes são organizadas em hierarquias.Classes são organizadas em hierarquias.

Page 6: Aula 3 -_fundamentos_sobre_aoo

Conceitos de OOConceitos de OO

Alguns conceitos bAlguns conceitos báásicos de OO a sicos de OO a considerar: considerar: ObjectosObjectosAtributos e MAtributos e MéétodostodosClasses e InstânciasClasses e InstânciasEstadoEstadoSintaxe Sintaxe AbstracAbstracççãoãoEncapsulamentoEncapsulamentoHeranHeranççaaPolimorfismoPolimorfismo

Page 7: Aula 3 -_fundamentos_sobre_aoo

ObjectosObjectosUm Um objectoobjecto éé qualquer coisa real ou qualquer coisa real ou abstracta, a respeito da qual abstracta, a respeito da qual armazenamos dados e os marmazenamos dados e os méétodos que todos que os manipulam.os manipulam.

Cada objecto Cada objecto éé responsresponsáável por realizar vel por realizar tarefas espectarefas especííficas. ficas. ÉÉ atravatravéés da s da interacinteracçção entre objectos que uma tarefa ão entre objectos que uma tarefa computacional computacional éé realizada.realizada.

Page 8: Aula 3 -_fundamentos_sobre_aoo

Atributos e MAtributos e Méétodostodos

Um objecto possui um Um objecto possui um agrupamento de caracteragrupamento de caracteríísticas sticas e ace acçções.ões.Cada Cada caractercaracteríísticastica éérepresentada como um representada como um atributo atributo do objecto.do objecto.Os Os mméétodostodos são utilizados para são utilizados para representar as representar as acacççõesões do do objecto.objecto.

Page 9: Aula 3 -_fundamentos_sobre_aoo

Classes e InstânciasClasses e Instâncias

Todos os objetos são Todos os objetos são instâncias instâncias de de uma classe.uma classe.

ClasseClasse éé uma descriuma descriçção dos ão dos atributos e serviatributos e serviçços comuns a um os comuns a um grupo de grupo de objectos.objectos.

Classe = molde a partir do qual Classe = molde a partir do qual constroemconstroem--se objectos.se objectos.

Page 10: Aula 3 -_fundamentos_sobre_aoo

ContCont (Classes e Instâncias)(Classes e Instâncias)

Classes são definiClasses são definiçções e podem ões e podem ser imaginadas como uma ser imaginadas como uma colecoleçção de vão de váários objectos.rios objectos.

Cada objecto Cada objecto éé uma linha de uma linha de vida vida àà parte e cada um possui parte e cada um possui um estado especum estado especíífico.fico.

Page 11: Aula 3 -_fundamentos_sobre_aoo

Trabalho em Grupos de 2Trabalho em Grupos de 2

Dê 5 exemplos de 3 classes diferentes;Dê 5 exemplos de 3 classes diferentes;Qual Qual éé a relaa relaçção que existe entre ão que existe entre classe e objecto?classe e objecto?Para cada classe dada em 1, liste 3 Para cada classe dada em 1, liste 3 atributos, 2 matributos, 2 méétodos e mostre 3 todos e mostre 3 objectos;objectos;Declare a classe Declare a classe RectanguloRectangulo em JAVA, em JAVA, com seus atributos e mcom seus atributos e méétodos;todos;Crie 2 objectos da classe Crie 2 objectos da classe RectanguloRectangulo e e implemente os mimplemente os méétodos nele contidos.todos nele contidos.

Page 12: Aula 3 -_fundamentos_sobre_aoo

EstadoEstado

EstadoEstado = conjunto de valores = conjunto de valores dos atributos e o dos atributos e o statusstatus das das operaoperaçções que o objecto ões que o objecto executou.executou.

Um mUm méétodo que o objecto todo que o objecto executa ou a mudanexecuta ou a mudançça de valor a de valor de algum atributo, de algum atributo, automaticamente muda o seu automaticamente muda o seu estado anterior.estado anterior.

Page 13: Aula 3 -_fundamentos_sobre_aoo

SintaxeSintaxe

ÉÉ conveniente que mconveniente que méétodos todos sejam representados pelo nome sejam representados pelo nome do mdo méétodo seguido de abre e todo seguido de abre e fecha parênteses. fecha parênteses.

Exemplo: Exemplo: inscreverEstudante(inscreverEstudante() )

Page 14: Aula 3 -_fundamentos_sobre_aoo

AbstracAbstracççãoão

AbstracAbstracççãoão éé o princo princíípio de ignorar pio de ignorar os aspectos de um assunto não os aspectos de um assunto não relevante para o proprelevante para o propóósito em sito em questão, tornando possquestão, tornando possíível uma vel uma concentraconcentraçção maior nos assuntos ão maior nos assuntos principais [principais [CoodCood, 1991]. , 1991].

Consiste na selecConsiste na selecçção que o ão que o analista faz de alguns aspectos, analista faz de alguns aspectos, ignorando outros. ignorando outros.

Page 15: Aula 3 -_fundamentos_sobre_aoo

Tipos de AbstracTipos de Abstracççãoão

Existem duas formas de abstracExistem duas formas de abstracçção:ão:

AbstracAbstracçção de Procedimentosão de ProcedimentosAbstracAbstracçção de Dados.ão de Dados.

Page 16: Aula 3 -_fundamentos_sobre_aoo

AbstracAbstracçção de Procedimentosão de Procedimentos

Consiste em considerar um Consiste em considerar um procedimento com uma operaprocedimento com uma operaçção ão bem definida como algo bem definida como algo úúnico, nico, mesmo que utilize outros mesmo que utilize outros procedimentos internos. procedimentos internos.

Usamos abstracUsamos abstracçção de ão de procedimentos quando uma funprocedimentos quando uma funçção ão dividedivide--se em outras se em outras subsub--funfunççõesões, , que por sua vez decompõemque por sua vez decompõem--se em se em outras funoutras funçções.ões.

Page 17: Aula 3 -_fundamentos_sobre_aoo

AbstracAbstracçção de Dados ão de Dados

Consiste em definir um tipo de Consiste em definir um tipo de dado conforme as operadado conforme as operaçções ões aplicaplicááveis aos objectos deste veis aos objectos deste tipo. tipo.

PorPoréém, estes objectos sm, estes objectos sóópodem serpodem sermodificados e observados modificados e observados atravatravéés destas operas destas operaçções.ões.

Page 18: Aula 3 -_fundamentos_sobre_aoo

AbstracAbstracçção de Dadosão de Dados

A manipulaA manipulaçção de dados ão de dados éérealizada apenas atravrealizada apenas atravéés de s de mméétodos .todos .Um exemplo Um exemplo éé classificar uma classificar uma lista a partir das lista a partir das operaoperaççõesõesaplicadas a ela, como inseraplicadas a ela, como inserçção ão e remoe remoçção. Qualquer objecto ão. Qualquer objecto do tipo do tipo listalista ssóó pode sofrer pode sofrer modificamodificaçções atravões atravéés dessas s dessas operaoperaçções.ões.

Page 19: Aula 3 -_fundamentos_sobre_aoo

EncapsulamentoEncapsulamento

O O encapsulamento encapsulamento de informade informaçção ão éé o o processo de processo de ““esconder/ocultaresconder/ocultar”” os os detalhes (detalhes (dadosdados) de concep) de concepçção e ão e implementaimplementaçção e oferecer uma interface ão e oferecer uma interface comum aos objectos (comum aos objectos (mméétodostodos).).

O objecto comunicaO objecto comunica--se com o exterior se com o exterior (com outros objectos) atrav(com outros objectos) atravéés de um s de um conjunto de operaconjunto de operaçções que constituem a ões que constituem a interface do objecto. interface do objecto.

Page 20: Aula 3 -_fundamentos_sobre_aoo

EncapsulamentoEncapsulamentoÉÉ permitido ao usupermitido ao usuáário ver apenas rio ver apenas os dados necessos dados necessáários, todo o resto rios, todo o resto éémantido escondido, atravmantido escondido, atravéés de s de especificadoresespecificadores de acesso de acesso ((publicpublic, , private, pprivate, protectedrotected). ). A utilizaA utilizaçção de encapsulamento ão de encapsulamento tambtambéém favorece a m favorece a reusabilidadereusabilidade e e manutenmanutençção do cão do cóódigo.digo.Trabalho:Trabalho: Exemplifique o Exemplifique o encapsulamento recorrendo a vida encapsulamento recorrendo a vida prpráática.tica.

Page 21: Aula 3 -_fundamentos_sobre_aoo

HeranHeranççaa

AtravAtravéés da s da heranheranççaa uma uma determinada subclasse herda determinada subclasse herda todos os atributos e mtodos os atributos e méétodos da todos da superclassesuperclasse..

Permite a um analista especificar Permite a um analista especificar serviserviçços e atributos comuns uma os e atributos comuns uma ssóó vez, assim como especializar e vez, assim como especializar e estender estes atributos e estender estes atributos e serviserviçços em casos especos em casos especííficos.ficos.

Page 22: Aula 3 -_fundamentos_sobre_aoo

HeranHeranççaa

HeranHerançça a éé a criaa criaçção de novas ão de novas classes, chamadas classes classes, chamadas classes derivadasderivadas, a partir de classes j, a partir de classes jááexistentes, as existentes, as classesclasses--basebase..

Alguns dos benefAlguns dos benefíícios da utilizacios da utilizaçção ão de herande herançça a éé a reutilizaa reutilizaçção do ão do ccóódigo da classe base, aldigo da classe base, aléém da m da possibilidade de implementapossibilidade de implementaçção de ão de classes abstractas genclasses abstractas genééricas.ricas.

Page 23: Aula 3 -_fundamentos_sobre_aoo

HeranHeranççaa

Uma classe derivada (ou subclasse) Uma classe derivada (ou subclasse) pode realizar todas as funpode realizar todas as funçções que a ões que a classeclasse--basebase (ou superclasse) (ou superclasse) realizaria. A subclasse herda todos os realizaria. A subclasse herda todos os mméétodos ptodos púúblicosblicos da superclasse, da superclasse, mas não possui acesso a nenhum mas não possui acesso a nenhum mméétodo privadotodo privado de sua clde sua classeasse--basebase. .

AlAléém disso, uma subclasse pode m disso, uma subclasse pode acrescentar mais alguns macrescentar mais alguns méétodos ou todos ou atributos atributos ààqueles herdados da queles herdados da superclassesuperclasse, possuindo , possuindo caractercaracteríísticas particulares em sticas particulares em relarelaçção ão àà classeclasse--basebase..

Page 24: Aula 3 -_fundamentos_sobre_aoo

PolimorfismoPolimorfismo

Polimorfismo Polimorfismo éé um conceito usado um conceito usado em linguagens de programaem linguagens de programaçção OO ão OO para denotar a caracterpara denotar a caracteríística de que a stica de que a linguagem suporta a utilizalinguagem suporta a utilizaçção do ão do mesmo identificador (o mesmo nome) mesmo identificador (o mesmo nome) para mpara méétodos de classes diferentes.todos de classes diferentes.

Trabalho:Trabalho: Dê um exemplo concreto Dê um exemplo concreto sobre heransobre herançça.a.

Page 25: Aula 3 -_fundamentos_sobre_aoo

PolimorfismoPolimorfismo

Um conceito no qual um nome Um conceito no qual um nome (vari(variáável) pode denotar objectos vel) pode denotar objectos de muitas subclasses diferentes de muitas subclasses diferentes que são relacionadas por alguma que são relacionadas por alguma superclassesuperclasse comum, assim, comum, assim, qualquer objecto denotado por qualquer objecto denotado por esse nome tem a capacidade de esse nome tem a capacidade de responder a algum conjunto responder a algum conjunto comum de operacomum de operaçções de mões de modosodosdiferentes [diferentes [BoochBooch, 2000]., 2000].

Page 26: Aula 3 -_fundamentos_sobre_aoo

PolimorfismoPolimorfismo

Polimorfismo caracteriza a criaPolimorfismo caracteriza a criaçção de ão de funfunçções com um mesmo nome, mas ões com um mesmo nome, mas ccóódigos diferentes, facilitando a digos diferentes, facilitando a extensão de sistemas.extensão de sistemas.Um tipo de polimorfismo Um tipo de polimorfismo éé a a redefiniredefiniçção de mão de méétodos para uma todos para uma classe derivada. Para que isso classe derivada. Para que isso aconteaconteçça, o ma, o méétodo deve possuir o todo deve possuir o mesmo nome, tipo de retorno e mesmo nome, tipo de retorno e argumentos do margumentos do méétodo sobrescrito.todo sobrescrito.Trabalho: Trabalho: Dê um exemplo, da vida Dê um exemplo, da vida prpráática, sobre Polimorfismo.tica, sobre Polimorfismo.

Page 27: Aula 3 -_fundamentos_sobre_aoo

Bibliografia Bibliografia

Bennett, S. et all (2002) Bennett, S. et all (2002) objectobject--oriented oriented systems analysis and design using systems analysis and design using umluml, U.S., Mc , U.S., Mc GrawGraw--Hill EducationHill EducationBezerra, E. (2003), Bezerra, E. (2003), PrincPrincíípios de Anpios de Anáálise e Projecto lise e Projecto de Sistemas com UMLde Sistemas com UML, Rio de Janeiro, Editora , Rio de Janeiro, Editora CampusCampus LtdaLtdaBitencourtBitencourt, T. (2004) , T. (2004) Conceitos de ProgramaConceitos de Programaçção ão Orientada a Orientada a ObjetosObjetos, , httphttp://://www.guj.com.brwww.guj.com.br, , consultado em 15/02/05consultado em 15/02/05Eriksson, H. e Eriksson, H. e PenkerPenker, M. (2000), , M. (2000), Business Business Modeling with UML: Business Patterns at workModeling with UML: Business Patterns at work, , SuSuééciacia, Wiley Computer Publishing, Wiley Computer PublishingNunes, M. e Nunes, M. e OO´́NeillNeill (2001), (2001), Fundamental de UMLFundamental de UML, , Lisboa, FCA Lisboa, FCA -- Editora de InformEditora de InformááticaticaSeixasSeixas, R. , R. ProgramaProgramaçção Orientada a ão Orientada a ObjetosObjetoshttp://w3.impa.brhttp://w3.impa.br, , consultadoconsultado em 18/02/05em 18/02/05

Page 28: Aula 3 -_fundamentos_sobre_aoo

TPCTPC1.1. Usando a sua capacidade de Usando a sua capacidade de

abstracabstracçção, monte uma hierarquia de ão, monte uma hierarquia de classes, com no mclasses, com no míínimo 3 nnimo 3 nííveis e 6 veis e 6 classes. Para cada classe identifique classes. Para cada classe identifique 3 estados e três m3 estados e três méétodos;todos;

2.2. Escreva a Classe Pessoa em JAVA, Escreva a Classe Pessoa em JAVA, com atributos nome, idade, e que com atributos nome, idade, e que implementa os mimplementa os méétodos: pessoa, todos: pessoa, setNome, getNome, setIdade, setNome, getNome, setIdade, getIdade, getIdade, printPessoaprintPessoa, p, printAdultorintAdulto, , pprintNaoAdultorintNaoAdulto;;

3.3. Crie objectos da classe Pessoa e Crie objectos da classe Pessoa e execute os mexecute os méétodos criados.todos criados.