Conceitos de Orientação a Objetos
Abstração de dados
Objetos
Classes
Abstração de dados
Uma abstração descreve as características
essenciais de uma entidade que a distingüe
de todos os outros tipos de entidades.
Tipo Abstrato de Dados (TAD) proporciona
uma abstração sobre uma estrutura de
dados em termos de uma interface bem
definida.
Abstração de dados
Vantagens de TADs são:
Código e estrutura de dados estarem armazenados
num mesmo lugar, cria um programa bem
estruturado, legível e facilmente modificável.
Ocultamento da informação proporciona um nível de
proteção contra acessos inesperados à estrutura de
dados.
A noção de tipos abstratos de dados
influenciou fortemente o modelo de objetos.
Objetos
Um objeto é uma entidade que possui um
estado que pode ser alterado ao longo do seu
tempo de vida.
O estado de um objeto pode ser alterado por
outro através do envio de mensagens.
O envio de uma mensagem por um objeto
implica na execução de uma operação
correspondente da interface pública do objeto
receptor.
Objetos
I
N
T
E
R
F
A
C
E
Métodos
Dados
Objetos
Interface
pública
Estado
privado
Objetos
Um objeto possui:
Um estado
Um comportamento bem definido (formado pelo
conjunto de operações da sua interface pública)
Uma identidade única (propriedade que o
distingüe de outros objetos)
Classes
Classe é a descrição de um molde que
especifica as propriedades e o
comportamento para um conjunto de
objetos similares.
Todo objeto é instância de apenas uma
classe.
Atributos e operações são parte da
definição de uma classe.
Classes
Classe
Atributos
Operações
Objetos
Documento
autor
dataDeChegada
imprimir( )
editar( )
d1: Documento
d2: Documento
Classes
Operação
Operação
Método
Método
Atributos
Operação
Método
Operação
Método
Declaração de uma classe Java
class Documento {
private int dataDeChegada = 0;
private String autor;
public int devolveData( );
public String devolveAutor( );
public imprimir( );
public editar( );
}
Métodos em Java
int devolveData()
{
return dataDeChegada;
}
Criação de objetos em Java
Documento d1;
d1 = new Documento();
d1.imprimir();