Bancos de Dados Distribuídos Página 1 Bancos de Dados Distribuídos Alcides Calsavara.
1 Orientação a Objetos: Encapsulamento e Classificação Alcides Calsavara.
Transcript of 1 Orientação a Objetos: Encapsulamento e Classificação Alcides Calsavara.
1
Orientação a Objetos: Encapsulamento e
Classificação
Alcides Calsavara
2
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.
3
Interação entre Objetos
4
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
5
Comportamento e Estado
6
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
7
Guarantia de Encapsulamento
8
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
9
Execução de Métodos
invocação evento
m ( ) e
m ( ) m ( )
10
Estado
O estado de um objeto é composto por um conjunto de valores de atributos
11
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
12
Classes e Objetos
13
Tipos
Um tipo pode ser primitivo ou uma classe
Uma classe é um tipo abstrato de dados (ADT)
14
Tipos Primitivos
Os tipos primitivos incluem:– números inteiros: byte, short, int, long– números reais: float, double– valores lógicos: boolean– caracteres: char
15
Classes de Bibliotecas
Exemplos:– String– Applet– Button– System
16
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)
17
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
18
Atributos em Classes e Objetos
b=truek=7
boolean bint k
int xString s
x =10
v=Pariss=
char[] v
A B
String
19
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
20
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
21
Classe e Encapsulamento
Os valores dos atributos de um objeto somente são acessíveis a partir dos seus métodos
22
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
23
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
24
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
25
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
26
Qualificador finalem atributos
O qualificador final em um atributo indica que este tem um valor constante
27
Finalização de um atributo - Exemplo
class Geometria
{
public static final float PI = 3.1416;
private final String PROMPT = "Geom>";
...
}