Princípios de Orientação a Objetos

Propaganda
Orientação a Objetos:
Encapsulamento e
Classificação
Alcides Calsavara
1
Sistema Orientado a Objetos
 Um
sistema orientado a objetos é uma
coleção de objetos que interagem entre
si.
 Um objeto interage com outro através
de uma mensagem que causa um
estímulo.
2
Interação entre Objetos
3
Objeto
 Um
objeto possui um comportamento
e um estado :
– o comportamento é forma como reage a
estímulos
– o estado modifica-se de acordo com o
comportamento
4
Comportamento e Estado
5
Encapsulamento
 Separação
dos aspectos externos de
um objeto dos seus detalhes internos
de implementação
 O estado de um objeto somente é
acessível a partir da implementação de
seu comportamento
6
Guarantia de Encapsulamento
7
Comportamento
O
comportamento de um objeto é
definido por um conjunto de métodos
 Um estímulo causa a execução de um
método
 Um estímulo pode ser uma invocação
explícita de um método ou um evento
relevante para o objeto
8
Execução de Métodos
invocação
evento
e
m()
m()
m()
9
Estado
O
estado de um objeto é composto por
um conjunto de valores de atributos
10
Classe
 Uma
classe descreve um conjunto de
objetos: as instâncias da classe
 Uma classe descreve o comportamento
e a composição do estado de todos os
seus objetos
 Cada classe deve ter um nome distinto
11
Classes e Objetos
12
Tipos
 Um
tipo pode ser primitivo ou uma
classe
 Uma classe é um tipo abstrato de
dados (ADT)
13
Tipos Primitivos
 Os
tipos primitivos incluem:
– números inteiros: byte, short, int, long
– números reais: float, double
– valores lógicos: boolean
– caracteres: char
14
Classes de Bibliotecas
 Exemplos:
– String
– Applet
– Button
– System
15
Método
 Cada
método possui uma assinatura,
um tipo de retorno (primitivo ou classe)
e uma implementação
 A assinatura de um método é composta
por um nome e uma lista de parâmetros
 Cada parâmetro tem um nome e um
tipo (primitivo ou classe)
16
Atributo
 Cada
atributo tem um nome e um tipo
(primitivo ou classe)
 Um objeto que possui um atributo cujo
tipo é uma classe é um objeto
composto, pois contém outro objeto
17
Atributos em
Classes e Objetos
A
boolean b
int k
B
int x
String s
x =10
b=true
k=7
s=
char[] v
v=Paris
String
18
Visibilidade e
Encapsulamento
 Um
atributo deve preferencialmente ser
qualificado como privado (private)
 Um método pode ser tanto qualificado
como privado como público (public)
 O conjunto de métodos públicos de
uma classe define a sua inteface
19
Estrutura de uma Classe
 Uma
classe contém um conjunto de
atributos e um conjunto de métodos
– os atributos devem ter nomes distintos
– os métodos devem ter assinaturas distintas
 Cada
objeto possui um conjunto próprio
de valores dos atributos e o conjunto de
métodos da classe
20
Classe e Encapsulamento
 Os
valores dos atributos de um objeto
somente são acessíveis a partir dos
seus métodos
21
Criação de Objetos
 Método
construtor
– toda classe tem um ou mais métodos
construtores
– um método construtor tem o mesmo nome
da classe e não tem retorno
 Operador
new
– a criação de um novo objeto se dá com a
invocação de um método construtor
através do operador new
22
Objeto e Referência
 Todo
objeto é criado dinamicamente
pelo operador new e tem a classe (tipo)
especificada após esse operador
 Um objeto pode ser referenciado e ter
seus métodos invocados
 Um objeto é eliminado quando não
mais é referenciado
23
Classe com Múltiplos
Construtores
 Cada
construtor deve ter uma
assinatura própria
 Um construtor pode invocar outro
através do operador this
 O operador this também pode ser
usado para resolver ambigüidade
quando há coincidência de nomes entre
parâmetro e atributo
24
Qualificador static
 Em
um atributo: indica que o atributo
tem uma única ocorrência para todas as
instâncias da classe
 Em um método: indica que o método
pode ser invocado indendentemente de
uma instância da classe
– um método static acessa apenas atributos
static
25
Qualificador final
em atributos
O
qualificador final em um atributo
indica que este tem um valor constante
26
Finalização de um atributo Exemplo
class Geometria
{
public static final float PI = 3.1416;
private final String PROMPT =
"Geom>";
...
}
27
Download