Você está na página 1de 27

Delphi Classes

LP2

Delphi

Classes
Objetos
Herana
Encapsulamento
Polimorfismo
DELPHI e a POO
Qualificadores de Acesso
Construtores e Destrutores
Implementao de Classes

Prof. Humberto Villela

POO
A Programao Orientada a Objetos baseia-se na definio de
objetos ou classes do mundo real.

Um Objeto uma entidade, ou modelo da vida real.


Uma Classe um modelo a partir do qual os objetos so criados.

Para ser definida como orientada a objetos uma linguagem


de programao deve suportar, no mnimo, as seguintes
caractersticas:

Herana: uma classe-objeto pode herdar caractersticas de outra classeobjeto visando a reutilizao de cdigo.

Encapsulamento: uma classe-objeto


implementao de outra classe-objeto.

Polimorfismo: uma classe-objeto deve discernir, dentre mtodos


homnimos, o que deve ser executado, ou seja, a capacidade de objetos
diferentes reagirem segundo a sua funo a uma ordem padro

no

pode

ver

detalhes

de

Classes so moldes ou abstraes de


objetos.
Uma classe descreve um conjunto de objetos
semelhantes, sendo definida por seus
Atributos e Mtodos.

Atributos: so os dados ou informaes do estado de


um objeto.
Ex.: Cor, tamanho, etc.
Mtodos: so as operaes efetuadas pelos objetos.

REPRESENTAO DE UMA CLASSE


Nome da Classe
Atributos
Mtodos

Objetos so modelos que representam


entidades do mundo real. Objetos so
instncias de uma classe, ou seja, quando
se define uma classe preenchendo-se o
seu estado (Atributos) e implementando
seu comportamento (Mtodos).

Ex.: Janela um objeto de: um carro, uma


casa, um software.
6

REPRESENTAO DE UM OBJETO
Nome do Objeto
Atributos
Mtodos

Herana a capacidade das classes-objetos


de compartilhar atributos e mtodos.
Na herana a classe filha herda as
caractersticas da classe pai ( superclasse).

Super Classe
Atributos
Mtodos

Classe 1

Classe 2

Atributos

Atributos

Mtodos

Mtodos

Encapsulamento

a capacidade das
classes-objetos de se comunicarem
com outras classes-objetos atravs de
sua interface, independente de sua
implementao interna.

Interface

a forma como a classeobjeto se relaciona com as demais


classes-objetos do sistema.
10

Objeto 1

Objeto 2
Mensagens

Atributos

Atributos

11

Polimorfismo a capacidade de uma classeobjeto


responder
da
maneira
mais
apropriada para a sua classe.

Com o polimorfismo no necessrio saber


exatamente qual o tipo do objeto para o
qual se est enviando uma mensagem,
bastando saber apenas que a mensagem faz
parte do protocolo de sua classe.

Qual o principal objetivo do polimorfismo?


12

Sintaxe para se definir uma classe no DELPHI


type
classe = class(superclasse)
[atributos]
[mtodos]
end;

atributos: seguem as regras das declaraes de


variveis.
mtodos: seguem as regras das declaraes de
subprogramas (function e procedure).
13

classe
TObject.

me

denominada

definio de uma classe deve ser


feita na rea de interface de uma
UNIT.

Definio

da classe TPessoa seria:


14

type
TPessoa = class (TObject)
Nome : string;
Endereo : string;
procedure AtualizarDados (Nome, Endereo :
string);
end;

A definio no est completa, pois devese definir o qualificador de acesso


permitido para cada atributo ou mtodo.
15

Private: as declaraes feitas nesta rea


no podem ser acessadas por outras
classes-objetos.

Protected: as declaraes feitas nesta


rea s podem ser acessadas pelas classes
filhas da classe-objeto.

Public: as declaraes feitas nesta rea


podem ser acessadas por qualquer outra
classe-objeto.
16

classe = class(superclasse)
private
{declaraes privativas}
protected
{declaraes protegidas}
public
{declaraes pblicas}
end;

type
TPessoa = class (TObject)
private
Nome : string;
Endereo : string;
public
procedure AtualizarDados (Nome,
Endereo : string);
end;
Como nome e endereo sero alterados se esto
como private?
18

Uma classe-objeto em DELPHI precisa


ser criada ou destruda atravs de:
Construtores e Destrutores.

Quando uma nova classe definida em


DELPHI necessrio declarar construtores.

Um construtor permite criar a instncia de


uma classe, ou seja, um objeto.
Convenciona-se chamar um construtor pelo
nome de Create.

Um construtor denotado pela palavra


Constructor.
20

Ao contrrio dos construtores, os


destrutores so utilizados para liberar a
instncia da classe.

Ao destrutor convenciona-se o nome de


Destroy.

Um destrutor denotado pela palavra


Destructor.

21

type
TPessoa = class (TObject)
private
Nome : string;
Endereco : string;
public
procedure AtualizarDados
(Nome, Endereco : string);
protected
constructor Create;
destructor Destroy;
end;
22

A implementao das Classes deve


ser na rea de implemetation de
uma Unit seguindo as regras normais
do Turbo Pascal.

23

unit Pessoas;
interface
type
TPessoa = class(TObject)
protected
Nome
: string;
Endereco : string;
constructor Create;
destructor Destroy;
public
procedure AtualizarDados (Nome : string; Endereco : string);
end;
implementation
constructor TPessoa.Create;
begin
inherited Create;
Nome := ;
Endereco := ;
end;
destructor TPessoa.Destroy;
begin
inherited Destroy;
end;
procedure TPessoa.AtualizarDados (Nome : string; Endereco : string);
begin
Self.Nome := Nome;
Self.Endereco := Endereco;
end;
end.

Documento do
Micros oft Word

CONSTRUCTOR

CREATE
No constructor Create podem ser
omitidos as inicializaes dos
atributos. Eles devem aparecer
apenas quando deseja-se inicializar
um atributo com um determinado
valor.

25

A clusula inherited, no constructor


Create, indica que o mtodo Create
foi herdado da classe-me (no caso,
TObject).

26

clusula self, na procedure


AtualizarDados, indica que o atributo
referenciado o da classe, e no a
varivel passada como parmetro.

27