Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more ➡
Download
Standard view
Full view
of .
Add note
Save to My Library
Sync to mobile
Look up keyword
Like this
1Activity
×
0 of .
Results for:
No results containing your search query
P. 1
POODelphi

POODelphi

Ratings: (0)|Views: 152|Likes:
Published by Felipe Mozer

More info:

Published by: Felipe Mozer on Sep 25, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See More
See less

08/23/2013

pdf

text

original

 
Programação Orientada a Objetos (com Delphi/Object Pascal)CEFET/PA Centro Federal de Educação Tecnológica do Pará Set/2003Curso Superior de Tecnologia em Informática Prof. Cláudio Roberto Martins
1
 PARTE I
Programação Orientada a Objetos(com exemplos em Delphi)
Por Cláudio Roberto Martinsclaudio@cinbesa.com.br
S
UMÁRIO
 
1.
 
P
ROGRAMAÇÃO
O
RIENTADA A
O
BJETOS COM
O
BJECT
P
ASCAL
.........2
 1.1 C
LASSES E
O
BJETOS
...........................................................................................21.1.1 Classes........................................................................................................21.1.2 Objetos........................................................................................................31.2 D
ECLARANDO
C
ONSTRUTORES
...........................................................................31.3 O
CULTANDO INFORMAÇÕES
...............................................................................41.3.1 Operadores de visibilidade...........................................................................41.3.2 Property (propriedade).................................................................................51.4 H
ERANÇA
..........................................................................................................61.4.1 Criando Subclasses......................................................................................61.4.2 Herança e Compatibilidade de Tipo.............................................................61.5 P
OLIMORFISMO
..................................................................................................71.5.1 Métodos Virtuais e Dinâmicos.....................................................................81.5.2 Classes e Métodos Abstratos.......................................................................91.5.3 Informação de Tipos em Tempo de Execução..............................................91.6 S
OBRECARGA DE
O
PERADORES
.........................................................................101.7 T
ÓPICOS
A
VANÇADOS
......................................................................................101.7.1 Self............................................................................................................101.7.2 Métodos de Classe.....................................................................................111.7.3 Ponteiros de Método e Tipos Procedurais..................................................111.8 M
ANIPULANDO
E
XCEÇÕES
...............................................................................121.9 A B
IBLIOTECA DE
C
OMPONENTES
V
ISUAIS
.......................................................13
2.
 
B
IBLIOGRAFIA
...................................................................................13
 
3.
 
E
XERCÍCIOS
......................................................................................14
 
4.
 
A
NEXO
1 – R
ESUMO DA
L
INGUAGEM
O
BJECT
P
ASCAL
(D
ELPHI
).....15
 
 
Programação Orientada a Objetos (com Delphi/Object Pascal)CEFET/PA Centro Federal de Educação Tecnológica do Pará Set/2003Curso Superior de Tecnologia em Informática Prof. Cláudio Roberto Martins
2
 
1. P
ROGRAMAÇÃO
O
RIENTADA A
O
BJETOS COM
O
BJECT
P
ASCAL
O assunto apresentado neste tópico é discutir os conceitos teóricos da orientação a objetos(OO) em uma linguagem de programação, neste caso, com Object Pascal, que é a linguagembase do ambiente Delphi. O Object Pascal permite uma abordagem orientada a objetos, que sebaseia em três conceitos fundamentais: classes, herança e polimorfismo. Também são vistascaracterísticas específicas do Delphi quando se está trabalhando com OO.
1.1 C 
LASSES E 
BJETOS 
Classe
– Tipo de dados definido pelo programador, que possui um estado, uma representaçãoe algumas operações ou comportamentos. Uma classe tem alguns dados internos (atributos) ealgumas operações (métodos), na forma de procedimentos ou funções. Uma classe descrevecaracterísticas genéricas e o comportamento de uma série de objetos semelhantes. Classes sãousadas pelo programador para organizar o código-fonte e pelo compilador para gerar oaplicativo.
Objeto
– É uma instância de uma classe, ou seja, é uma variável (dinâmica) do tipo definidopela classe. Objetos são entidades reais, que quando o programa está em execução, ocupamparte da memória para sua representação interna.
1.1.1 Classes
Uma classe é declarada através do uso da palavra reservada
class,
conforme o exemplo aseguir.
TypeMinhaClasse = classEnd; // fim da definição da classe
Essa classe não é útil, pois não tem definições de atributos nem métodos. Um exemplo maisinteressante é mostrado a seguir.
TypeData = classMes, Dia, Ano: Integer;Procedure AjustaValores(m,d,a: Integer);Function AnoBis: Boolean;End; // fim da definição da classe
Os métodos da classe precisam ser implementados, indicando que fazem parte da classe. Paraesta finalidade, o Object Pascal adota a notação de pontos, conforme exemplo a seguir.
Procedure Data.AjustaValores(m,d,a: Integer);BeginMes := m;Dia := d;Ano := a;End;// na
implementation
(continua)
 
Programação Orientada a Objetos (com Delphi/Object Pascal)CEFET/PA Centro Federal de Educação Tecnológica do Pará Set/2003Curso Superior de Tecnologia em Informática Prof. Cláudio Roberto Martins
3
function TData.AnoBis : boolean;beginif (ano mod 4 <> 0) thenAnoBis := falseelseif (ano mod 100 <> 0) thenAnoBis := trueelseif (ano mod 400 <> 0) thenAnoBis := Falseelse AnoBis := True;end;
1.1.2
Objetos
 
Agora que temos uma classe definida, para usá-la devemos criar uma instância de um objeto.Assim como qualquer outro tipo de dados definido pelo programador, devemos criar umvariável do tipo da classe definida. Porém, nos modelos de objetos do Object Pascal, umavariável do tipo de uma classe é apenas um referência, ou indicador, para a localização dememória em que o objeto será armazenado.As instâncias de objetos definidos pelo programador devem ser criadas manualmente atravésda chamada do método
Create
, que é um
construtor
(procedimento especial usado paraalocar memória para novos objetos e inicializá-los). Assim como se deve instanciar, tambémse deve dispor de um objeto, e isso é feito chamando-se o método
Free
.Os métodos
Create
e
Free
, correspondem ao
construtor
e
destrutor
da classe TObject doObject Pascal. Todos os objetos criados no Delphi são herdados automaticamente desta classe,por isso usamos esses métodos sem declará-los. A determinação de sub-classes e herançasserá discutida posteriormente. Um exemplo de instanciação e uso da classe definida émostrado a seguir.
TypeHoje: Data;BeginHoje := Data.Create;Hoje.Dia := 7;Hoje.Mes := 3;Hoje.Ano := 2002;//ouHoje.AjustaValores(7,3,2002);Hoje.Free;End;
CUIDADO
: Um objeto só pode ser utilizado depois da sua instanciação (
Create
), e antes dasua desalocação (
 Free
), senão ocorrerá uma exceção no seu aplicativo.
1.2 D 
ECLARANDO 
ONSTRUTORES 
Para instanciar um objeto a partir de uma classe, chamamos o método
Create
, porém é muitocomum ser necessário realizar alguma inicialização antes de usá-lo. Como esse objetivo, oObject Pascal permite a definição de construtores para as classes definidas pelo usuário. Damesma forma, pode-se definir destrutores, caso seja necessário realizar alguma limpeza derecursos antes do objeto ser destruído. Construtores são procedimentos declarados com apalavra-chave
constructor 
, e destrutores declarados com a palavra-chave
destructor 
, conforme

You're Reading a Free Preview

Download
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->