Buscar

Aula 6 Conceitos OO

Prévia do material em texto

Prof. Ramon Pontes
Paradigma Orientado a ObjetosParadigma Orientado a Objetos
1
Paradigma Orientado a Objetos
Paradigma Tradicional x Orientado a Objetos 
Conceitos Básicos
 Abstração
 Encapsulamento
 Classes
 Objetos
 Relação Classe x Objetos
 Atributos
 Métodos
 Herança
 Polimorfismo
 Modularidade
Referências
Programação Orientada a ObjetosProgramação Orientada a Objetos
2
 A ideia é:
- Solucionar problemas existentes no desenvolvimento de 
Softwares Complexos com baixo custo de 
desenvolvimento e manutenção
- O Mundo Real é formado por objetos que se interagem
Programação Orientada a ObjetosProgramação Orientada a Objetos
3
Paradigma Orientado a Objetos
Paradigma Tradicional x Orientado a Objetos 
Conceitos Básicos
 Abstração
 Encapsulamento
 Classes
 Objetos
 Relação Classe x Objetos
 Atributos
 Métodos
 Herança
 Polimorfismo
 Modularidade
Referências
Programação Orientada a ObjetosProgramação Orientada a Objetos
4
Paradigma Tradicional x Orientado a Objetos
Procedure A
Procedure B
Procedure C
Dados
Dados
Métodos
Dados
Métodos
Dados
Métodos
Objeto A Objeto B
Objeto CDados
Programação Orientada a ObjetosProgramação Orientada a Objetos
5
Programação Orientada a ObjetosProgramação Orientada a Objetos
Paradigma Tradicional x Orientado a Objetos
6
Paradigma Orientado a Objetos
Paradigma Tradicional x Orientado a Objetos 
Conceitos Básicos
 Abstração
 Encapsulamento
 Classes
 Objetos
 Relação Classe x Objetos
 Atributos
 Métodos
 Herança
 Polimorfismo
 Modularidade
Referências
Programação Orientada a ObjetosProgramação Orientada a Objetos
7
 É o processo de identificação dos objetos e seus 
relacionamentos
 Permite ao analista se concentrar no que um objeto é ou no 
que um objeto faz.
 Não se preocupa como o objeto vai fazer
 É um processo de generalização onde o objetivo é manter 
informações relevantes
Conceitos Básicos – Abstração 
Programação Orientada a ObjetosProgramação Orientada a Objetos
8
Conceitos Básicos – Abstração 
public class Cachorro{
 String nome;
 String raca;
}
public class Carro{
 String marca;
 String placa;
}
public class Casa{
 int qtComodos;
 double valor;
 String endereco;
}
Programação Orientada a ObjetosProgramação Orientada a Objetos
9
Conceitos Básicos – Abstração 
Programação Orientada a ObjetosProgramação Orientada a Objetos
10
Conceitos Básicos – Abstração 
Programação Orientada a ObjetosProgramação Orientada a Objetos
11
Conceitos Básicos – Abstração 
Carro
Casa
Cachorro
Programação Orientada a ObjetosProgramação Orientada a Objetos
12
Conceitos Básicos – Encapsulamento 
 A maioria dos objetos que utilizamos são encapsulados.
- Exemplo: Sua máquina fotográfica.
- Ela tem um conjunto de teclas que lhe permite 
manipular os atributos do objeto máquina fotográfica 
que são do seu interesse.
• Ligar
• Desligar
• Zoom
• Brilho/Contraste
• Flash
• Resolução
Programação Orientada a ObjetosProgramação Orientada a Objetos
13
Conceitos Básicos – Encapsulamento 
 Porém…
- Você sabe que o funcionamento de uma máquina digital é 
extremamente complexa e que ao mudar um atributo 
desses que citamos, uma série de informações são 
processadas.
• Circuitos Integrados
• Capacitores
• Resistores
Programação Orientada a ObjetosProgramação Orientada a Objetos
14
Conceitos Básicos – Encapsulamento 
 Como definir encapsulamento diante desse exemplo???
 O encapsulamento separa o que é visível, ou seja, o que é 
público do que é oculto, ou seja, privado/protegido
- Outro exemplo: No seu computador o que importa é:
• Monitor
• Teclado
• DVD
• WebCam
• Mouse
• Gabinete
Programação Orientada a ObjetosProgramação Orientada a Objetos
15
Conceitos Básicos – Encapsulamento 
 Para análise orientada a objetos, encapsulamento é o ato de 
esconder do usuário informações que não são do seu 
interesse
 Geralmente não interessa a quem usa o objeto conhecer os 
detalhes da implementação.
 A classe comporta-se como uma caixa-preta
- Não é necessário conhecer como funciona internamente.
Programação Orientada a ObjetosProgramação Orientada a Objetos
16
Conceitos Básicos – Encapsulamento 
 Vantagem
- Na necessidade de se modificar um programa existente
- Pressman (2002): Reduz a propagação de efeitos 
colaterais quando ocorrem modificações
- Parga (2006): como consequência do encapsulamento 
temos uma diminuição considerável do nível de 
acoplamento entre as classes que fazem parte do sistema
Programação Orientada a ObjetosProgramação Orientada a Objetos
17
Conceitos Básicos – Classe 
 Descreve um grupo de objetos com os mesmos atributos e 
comportamentos, além dos mesmos relacionamentos com 
outros objetos.
- Animais: Aves, Mamíferos, Répteis…
- Relógio: Digital, Analógicos
 Descreve a forma do objeto
 É um molde para criação de um objeto. É a receita…
 Tipo definido pelo usuário
Programação Orientada a ObjetosProgramação Orientada a Objetos
18
Conceitos Básicos – Classe 
 Exemplo:
Programação Orientada a ObjetosProgramação Orientada a Objetos
19
Conceitos Básicos – Objetos 
 Cada objeto pertence a uma classe que define suas 
características e seu comportamento
- Classe: Molde
- Objeto: Concretização
Programação Orientada a ObjetosProgramação Orientada a Objetos
20
Conceitos Básicos – Objetos
 Os objetos podem estar relacionados entre si ou com outros 
objetos
 Exemplo:
- Um carro pertençe a uma pessoa
Programação Orientada a ObjetosProgramação Orientada a Objetos
21
Conceitos Básicos – Relação Classe x Objetos
 Todo objeto é a concretização de uma classe. Ou seja, é uma 
instância de uma classe
 Cada instância tem valores específicos para seus atributos 
diferenciando-as.
 Exemplo:
Programação Orientada a ObjetosProgramação Orientada a Objetos
22
Conceitos Básicos – Relação Classe x Objetos
Classe
Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
23
Conceitos Básicos – Atributos 
 Os atributos são utilizados para diferenciar os objetos e para 
identificar o estado do objeto
 Os atributos definem:
- Propriedades e características de um objeto
- Estado do Objeto
 Exemplo:
- Um carro tem uma marca e uma placa
Programação Orientada a ObjetosProgramação Orientada a Objetos
24
Conceitos Básicos – Métodos 
 Os métodos estão relacionados com o comportamento dos 
objetos.
 Exemplo:
- Todo carro pode ligar
- Todo carro pode andar
- Todo carro pode freiar
Programação Orientada a ObjetosProgramação Orientada a Objetos
25
Conceitos Básicos – Métodos 
 Na análise orientada a objeto, as funções, operações e os 
comportamentos dos objetos são descritos pelos métodos, os 
quais também servem para manipular e alterar os atributos do 
objeto (alteram o estado do objeto)
 Também é correto afirmar que um método é uma operação 
realizada sobre um objeto e é descrito por uma classe. Um 
método é a implementação de uma operação.
 Elementos: 
- Nome
- Retorno
- Parâmetros
Programação Orientada a ObjetosProgramação Orientada a Objetos
26
Conceitos Básicos – Herança
 É um mecanismo que permite definir uma nova classe 
(subclasse) a partir de uma classe já existente.
 A herança poderá ser utilizada sempre que dois “tipos” 
passarem no teste “é um”
 Possibilita reuso e extensibilidade
 Comportamento: 
- Ao espabeleceruma herança, a subclasse “herda” as 
características comuns de sua superclasse
- A classe filha (subclasse) também poderá definir novos 
métodos e atributos
Programação Orientada a ObjetosProgramação Orientada a Objetos
27
Conceitos Básicos – Herança
superclasse
subclasse
subclasse
subclasse
Programação Orientada a ObjetosProgramação Orientada a Objetos
28
Conceitos Básicos – Tipos de Herança
 Herança Simples
- Quando uma classe herda as propriedades de uma única 
classe pai
- A classe filha (subclasse) também poderá definir novos 
métodos e atributos
 Herança Múltipla
- Quando uma classe herda as propriedades de mais de 
uma única classe pai.
- Ex: muitas vezes dizemos que um menino herdou o jeito 
engraçado do tio e é estudioso como o pai, ou seja, o 
menino herdou características comportamentais de mais 
de uma pessoa.
Obs: Herança múltipla é utilizada em C++. Não é possível utlizar 
em Java
Programação Orientada a ObjetosProgramação Orientada a Objetos
29
Conceitos Básicos – Herança
Programação Orientada a ObjetosProgramação Orientada a Objetos
30
Conceitos Básicos – Polimorfismo
 A palavra polimorfismo significa muitas formas e representa o 
fato de uma determinada característica (por exemplo, a 
potência do motor do veículo) ser diferente para cada filho 
(tipo de veículo). Quem já andou de Volks e de Mercedes 
sabe bem a diferença.
 Para a AOO, polimorfismo é a capacidade de objetos de 
classes diferentes responderem a uma mesma solicitação de 
maneiras diferentes.
Programação Orientada a ObjetosProgramação Orientada a Objetos
31
Conceitos Básicos – Polimorfismo
Programação Orientada a ObjetosProgramação Orientada a Objetos
32
Conceitos Básicos – Modularidade
 É a decomposição de um problema complexo em problemas 
menores e mais simples
 É a idéia de “dividir para conquistar”
 Para Booch (1994), modularidade “é a propriedade de um 
sistema ser decomposto em um conjunto de módulos”
Programação Orientada a ObjetosProgramação Orientada a Objetos
33
Paradigma Orientado a Objetos
Paradigma Tradicional x Orientado a Objetos 
Conceitos Básicos
 Abstração
 Encapsulamento
 Classes
 Objetos
 Relação Classe x Objetos
 Atributos
 Métodos
 Herança
 Polimorfismo
 Modularidade
Referências
Programação Orientada a ObjetosProgramação Orientada a Objetos
34
 Sommerville, I. Software Engineering.
 Kruchten, P. The Rational Unified Process: An Introduction. 2nd 
Ed
 Booch, G. et al. The Unified Modeling Language User Guide.
 Pressman, R. S. (2002). Engenharia de Software. MCGraw Hill, 
Rio de Janeiro, 5 edition.
Referências
Programação Orientada a ObjetosProgramação Orientada a Objetos
35
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20
	Slide 21
	Slide 22
	Slide 23
	Slide 24
	Slide 25
	Slide 26
	Slide 27
	Slide 28
	Slide 29
	Slide 30
	Slide 31
	Slide 32
	Slide 33
	Slide 34
	Slide 35

Outros materiais

Materiais recentes

Perguntas Recentes