Académique Documents
Professionnel Documents
Culture Documents
Acessores dão acesso aos dados internos de um A maioria das linguagens OO suporta três
objeto. Entretanto, os acessores ocultam o fato de níveis de acesso:
os dados estarem em uma variável, em uma Público – Garante o acesso a todos os objetos.
combinação de variáveis ou serem calculados. Os Protegido – Garante o acesso à instância, ou seja,
acessores permitem que você mude ou recupere o para aquele objeto, e para todas as subclasses.
valor e têm ‘efeitos colaterias’ sobre o estado Privado – Garante o acesso apenas para a
interno. instância, ou seja, para aquele objeto.
complexa. Além do domínio, a definição de tipo Um pacote é um objeto cujo único propósito é
inclui quais operações são válidas no tipo e quais conter outro objeto ou primitiva. Um pacote
são os seus resultados. fornecerá qualquer número de métodos para obter
e manipular o valor possuído.
OBS: Lembre-se que adicionar uma nova classe
em seu sistema é o mesmo que criar um novo Variáveis de Classe - são variáveis que
Tipo. pertencem à classe e não a uma instância
específica, são compartilhadas entre todoas as
Um objeto de primeira classe é aquele que instâncias da classe.
pode ser usado exatamente da mesma maneira que
um tipo interno. Métodos de Classe são métodos que pertencem
à classe e não a uma instância específica. A
Um objeto de segunda classe è um tipo de operação executada pelo método não é dependente
objeto que você pode definir, mas não do estado de qualquer instância.
necessariamente usar, como faria com um tipo
interno. HERANÇA
3
Programação Orientada a Objeto – Anthony Sintes
Prof.: Alex Oliveira
Sobrepor é o processo de uma filha pegar um Especialização é o processo de uma classe filha
método que aparece na progenitora e reescrevê-lo ser projetada em termos de como ela é diferente de
para mudar o comportamento do método. A sua progenitora. Quando tudo estiver dito e feito, a
sopreposição de um método é conhecida como definição de classe filha incluirá apenas os
Redefinição de um método. elementos que a tornem diferente de sua
progenitora.
Ao considerarmos a sobreposição de um
método ou atributo, é importante perceber que nem Ancestral é uma classe que aparece na
todos os métodos e atributos estão disponíveis para hierarquia de classe antes da progenitora.
sua filha sobrepor. A maioria das linguagens
orientadas a objetos tem alguma noção de controle Descendente é toda classe que aparece depois
de acesso. Esses níveis de acesso caem em três dela na hierarquia de classes.
categorias:
Privado – um nível de acesso que restringe o Classe Raiz (T ambém conhecida como Classe
acesso apenas à classe. Base) é a classe superior da hierarquia de herança.
Protegido: um nível de acesso que restringe o
acesso à classe e às filhas. Classe Folha é uma classe sem filhas.
Público: um nível de acesso que permite o acesso a
todos e a qualquer um. OBS: é importante notar que as descendentes
refletirão as alterações feitas nas ancestrais.
Os métodos e atributos protegidos são aqueles
aos quais você deseja que apenas as subclasses Herança Múltipla – p ermite que um objeto
tenham acesso. O nível privado impede que herde diretamente de mais de uma classe.
4
Programação Orientada a Objeto – Anthony Sintes
Prof.: Alex Oliveira
Um Subtipo é um tipo que estende outro tipo A Sobrecarga t ambém conhecida como
através da herança. polimorfismo Ad-Hoc, permite que você use o
mesmo nome de método para muitos métodos
Método declarado, mas não implementado, é diferentes. Cada método diferem apenas no
chamado de Método Abstrato. Somente classes número e no tipo de seus parâmetros.
abstratas podem ter métodos abstratos.
Conversão e Sobrecarga f reqüentemente
POLIMORFISMO andam lado a lado. A conversão também pode
fazer com que um método pareça como se fosse
Ter muitas formas. Em termos de programação, polimórfico. A coversão ocorre quando um
muitas formas significa que um único nome pode argumento de um tipo é convertido para o tipo
representar um código diferente, selecionado por esperado.
algum mecanismo automático, assim o
polimorfismo permite que um único nome Para se ter um Polimorfismo eficaz é preciso ter
expresse muitos comportamentos diferentes. encapsulamento e herança eficientes.
As linguagens podem ser Polimórficas (c om
polimorfismo) ou Monomórficas (sem UML (Unified Modeling Language)
polimorfismo).
Linguagem de modelagem padrão, que consiste
Variável Polimórfica é uma variável que pode em várias notações gráficas que você pode usar
conter muitos tipos diferentes. para descrever a arquitetura inteira de seu
software.
Polimorfismo de Inclusão ou Puro p ermite que Notação gráfica utilizada para descrever a
você trate objetos relacionados genericamente. arquitetura inteira de seu software, incluindo
Torna mais fácil adicionar novos subtipos em um várias regras para distinguir entre desenhos
programa, pois não será preciso adicionar um corretos e incorretos, são regras que determinam a
método especificamente para esse novo tipo. UML como uma linguagem de modelagem;
Fornece um vocabulário comum que os
Polimorfismo Paramétrico permite que você desenvolvedores podem usar para transmitir seus
crie métodos e tipos genéricos. Assim como o projetos.
Polimorfismo de inclusão, os métodos e tipos
genéricos permitem que você codifique algo uma OBS: Linguagem de modelagem é diferente de
vez e faça isso trabalhar com muitos tipos processo de metodologia.
diferentes de argumentos.
Permite que você programe métodos genéricos Uma metodologia ou processo define um
retirando a referência de declarações de tipo de procedimento para projetar o software. As
parâmetro até o momento da execução. linguagens de modelagem capturam esse projeto
graficamente, ou seja, freqüentemente contém uma
A Sobreposição é um tipo importante de linguagem de modelagem.
polimorfismo.
Os métodos abstratos são freqüentemente OBS: UML não é única, mas é a padrão.
referidos como métodos Adiados, pois você retarda Documentação também é útil para alguém que não
a definição para classes descendentes. conheça a linguagem de implementação.
5
Programação Orientada a Objeto – Anthony Sintes
Prof.: Alex Oliveira
A UML fornece uma notação para transmitir que Relacionamento Todo/Parte descreve o
uma classe é abstrata, escrita em itálico. relacionamento entre objetos onde um objeto
contém outro.
Modelando um Relacionamento de Classe OBS: Pares significa que um objeto não é mais
importante do que o outro.
Um relacionamento descreve como as classes
interagem entre si. Na UML, um relacionamento é Você usa agregação quando o objetivo de seu
uma conexão entre dois ou mais elementos da modelo for descrever a estrutura de um
notação. relacionamento de pares.
Três tipos de alto nível de relacionamentos de
objetos: Dependência, Associação, Generalização. Composição não é um relacionamento entre pares.
Os objetos não são independentes uns dos outros.
Dependência – é o relacionamento mais simples Ao contrário da agregação, uma composição não
entre objetos. A dependência indica que um objeto modela relacionamentos Todo/Parte de pares.
6
Programação Orientada a Objeto – Anthony Sintes
Prof.: Alex Oliveira
Sistemas
Generelização – Indica um relacionamento entre o
geral e o específico, ou seja, a herança. Se existe È o termo da AOO para um conjunto de
esse relacionamento, se sabe que pode substituir objetos que interagem.
uma classe filha pela progenitora. Requisitos
Etapas: Análise de Requisitos, Projeto, É tudo que interage com o sistema. Pode
Implementação, teste. ser um usuário humano ou outro sistema de
Neste processo existe a realização etapa por etapa, computador.
mas sem volta para uma etapa anterior para
especializar. Variante
Condições posteriores são os resultados de um de como elas vão interagir e obter suas
caso de uso.b informações.
Usando os termos do modo de construção,
Diagramas de Caso de Uso você usa o POO para criar as cópias heliográficas
de seu programa.
Diagrama de Interação – Ajudam a Os objetos freqüentemente delegarão
modelar os relacionamentos entra casos de uso. trabalho para outros objetos. Através de seu
Ajudam também a capturar as interações entre os projeto, você precisa identificar essas
vários atores participantes do sistema, e divide-se colaborações.
em:
Um objeto delega trabalho para colabores.
Diagrama de Seqüência – Demonstra arelação Colaboração é o relacionamento onde os
entre usuários do sistema. objetos interagem para realizar o mesmo
Diagrama de Colaboração – Chama a atenção para propósito.
a seqüência de eventos com o passar do tempo.
Cartão CRC é uma maneira de distribuir
Diagramas de Atividades responsabilidades e colaborações é através do uso
de cartões CRC (Classe responsabilidade
Ajudam a modelar processos que podem Colaboração)
ser executados em paralelo. Esses cartões ajudam a definir o propósito
de um objeto, chamando a atenção para as
Modelos de Domínio responsabilidades do objeto.
Ao desenvolver os cartões CRC, é preciso
Lista os objetos que você precisa para garantir que cada classe tenha apenas duas ou três
modelar corretamente o sistema. responsabilidades principais. Se você tiver mais
responsabilidades, deverão dividir a classe em
duas ou mais classes separadas.
POO (Projeto Orientado a objetos)
Ponto de Interação é qualquer lugar onde
POO é o processo de construir o modelo de objeto um objeto use outro.
de uma solução. Dito de outra maneira, POO é o Um Agente faz a mediação entre dois ou
processo de dividir uma solução nem vários mais objetos para atingir algum objetivo.
objetos constituintes.
O modelo de objeto é o projeto dos objetos
que aparecem na solução de um problema. O Reutilizações de Projeto utilizando padrões de
modelo final de objeto pode conter muitos objetos projeto
não encontrados no domínio. O modelo de objeto
descreverá as várias responsabilidades, Um padrão de Projeto é um conceito de
relacionamentos e estrutura do objeto. projeto reutilizável. Este consiste em quatro
O processo de POO o ajuda a descobrir elementos:
como você vai implementar a análise que
completou durante a AOO. Principalmente, o O nome do Padrão – Identifica exclusivamente
modelo de objeto que conterá as classes principais cada padrão do projeto.
do objeto, suas responsabilidades e uma definição O Problema
8
Programação Orientada a Objeto – Anthony Sintes
Prof.: Alex Oliveira
10
Programação Orientada a Objeto – Anthony Sintes
Prof.: Alex Oliveira
11
Programação Orientada a Objeto – Anthony Sintes
Prof.: Alex Oliveira
12