Sei sulla pagina 1di 17

Classes e Objetos (Delphi) - RAD Studio https://translate.googleusercontent.com/translate...

http://docwiki.embarcadero.com/RADStudio/Sydney/en/Classes_and_Objects_(Delphi)

Detectar idioma Português

RAD Studio

Classes e Objetos
(Delphi)
Texto original

Ir para o
Class Types

Sugerir uma tradução melhor

objetos

Este tópico aborda o seguinte


material:

Sintaxe de declaração de
classes
Herança e escopo
Visibilidade dos alunos
Declarações de
encaminhamento e classes
1 of 17 02/07/2020 18:20
Classes e Objetos (Delphi) - RAD Studio https://translate.googleusercontent.com/translate...

mutuamente dependentes

Tipos de classe
Uma classe, ou tipo de classe,
define uma estrutura que
consiste em campos, métodos e
propriedades. Instâncias de um
tipo de classe são chamadas
objetos. Os campos, métodos e
propriedades de uma classe são
chamados de componentes ou
membros.

Um campo é essencialmente
uma variável que faz parte de
um objeto. Como os campos
de um registro, os campos
das classes representam
itens de dados que existem
em cada instância da classe.
2 of 17 02/07/2020 18:20
Classes e Objetos (Delphi) - RAD Studio https://translate.googleusercontent.com/translate...

Um método é um
procedimento ou função
associada a uma classe. A
maioria dos métodos opera
em objetos, ou seja,
instâncias de uma classe.
Alguns métodos (chamados
métodos de classe) operam
nos próprios tipos de classe.
Uma propriedade é uma
interface para dados
associados a um objeto
(geralmente armazenados em
um campo). As propriedades
têm especificadores de
acesso, que determinam
como seus dados são lidos e
modificados. De outras partes
de um programa fora do

3 of 17 02/07/2020 18:20
Classes e Objetos (Delphi) - RAD Studio https://translate.googleusercontent.com/translate...

próprio objeto, uma


propriedade aparece na
maioria dos aspectos como
um campo.

Os objetos são blocos de


memória alocados
dinamicamente cuja estrutura é
determinada pelo tipo de classe.
Cada objeto possui uma cópia
exclusiva de cada campo
definido na classe, mas todas
as instâncias de uma classe
compartilham os mesmos
métodos. Os objetos são
criados e destruídos por
métodos especiais chamados
construtores e destruidores.

Uma variável de um tipo de

4 of 17 02/07/2020 18:20
Classes e Objetos (Delphi) - RAD Studio https://translate.googleusercontent.com/translate...

classe é na verdade um ponteiro


que faz referência a um objeto.
Portanto, mais de uma variável
pode se referir ao mesmo
objeto. Como outros ponteiros,
as variáveis do tipo classe
podem conter o valor nulo . Mas
você não precisa desreferir
explicitamente uma variável do
tipo classe para acessar o
objeto para o qual ela aponta.
Por exemplo,
SomeObject.Size :=
100 atribui o valor 100 à
Size propriedade do objeto
referenciado por
SomeObject ; você não
escreveria isso como
SomeObject^.Size :=

5 of 17 02/07/2020 18:20
Classes e Objetos (Delphi) - RAD Studio https://translate.googleusercontent.com/translate...

100 .

Um tipo de classe deve ser


declarado e receber um nome
antes de poder ser instanciado.
(Você não pode definir um tipo
de classe em uma declaração
de variável.) Declarar classes
apenas no escopo mais externo
de um programa ou unidade,
não em uma declaração de
procedimento ou função.

Uma declaração de tipo de


classe tem o seguinte formato:

tipo
className =
classe [ resumo |

6 of 17 02/07/2020 18:20
Classes e Objetos (Delphi) - RAD Studio https://translate.googleusercontent.com/translate...

selada ] (
ancestorClass )
digite

nestedTypeDeclaratio
n
const

nestedConstDeclarati
on
MemberList
final ;

Elementos obrigatórios da
declaração do tipo de classe

className é qualquer
identificador válido.
memberList declara

7 of 17 02/07/2020 18:20
Classes e Objetos (Delphi) - RAD Studio https://translate.googleusercontent.com/translate...

membros da classe: campos,


métodos e propriedades.

Elementos opcionais da
declaração do tipo de classe

abstract . Uma classe


inteira pode ser declarada
abstrata, mesmo que não
contenha nenhum método
virtual abstrato .
sealed . Uma classe
selada não pode ser
estendida por herança.
ancestorClass . A nova
classe herda diretamente da
classe System.TObject
predefinida, caso você o
omita (ancestorClass). Se
você incluir (ancestorClass) e

8 of 17 02/07/2020 18:20
Classes e Objetos (Delphi) - RAD Studio https://translate.googleusercontent.com/translate...

memberList estiver vazio,


poderá omitir end.
nestedTypeDeclaratio
n . Tipos aninhados
apresentam uma maneira de
manter tipos conceitualmente
relacionados juntos e evitar
colisões de nomes.
nestedConstDeclarati
on . As constantes
aninhadas apresentam uma
maneira de manter juntos os
tipos conceitualmente
relacionados e evitar colisões
de nomes.

Uma classe não pode ser


ambos abstract e
sealed . A [abstract |

9 of 17 02/07/2020 18:20
Classes e Objetos (Delphi) - RAD Studio https://translate.googleusercontent.com/translate...

sealed] sintaxe (os [


] colchetes e o | canal entre
eles) é usada para especificar
que apenas uma das palavras
sealed - abstract chave
ou opcionais pode ser usada.
Somente as palavras
sealed - abstract chave
ou são significativas. Os
colchetes e os símbolos dos
tubos devem ser excluídos.

Nota: Delphi permite


instanciar uma classe
declarada abstrata , para
compatibilidade com
versões anteriores, mas esse
recurso não deve mais ser

10 of 17 02/07/2020 18:20
Classes e Objetos (Delphi) - RAD Studio https://translate.googleusercontent.com/translate...

usado.

Os métodos aparecem em uma


declaração de classe como
títulos de função ou
procedimento, sem corpo. A
definição de declarações para
cada método ocorre em outra
parte do programa.

Por exemplo, aqui está a


declaração da
TMemoryStream classe da
Classes unidade:

TMemoryStream =
class (
TCustomMemoryStream

11 of 17 02/07/2020 18:20
Classes e Objetos (Delphi) - RAD Studio https://translate.googleusercontent.com/translate...

)
privada
FCapacity :
Inteiro longo ;
procedimento
SetCapacity (
NewCapacity :
Inteiro longo ) ;
protegido
função Realloc
( var NewCapacity :
Longint ) :
ponteiro ; virtual
;
propriedade
Capacidade :
Inteiro longo ler
FCapacity gravação

12 of 17 02/07/2020 18:20
Classes e Objetos (Delphi) - RAD Studio https://translate.googleusercontent.com/translate...

SetCapacity ;
destruidor público
Destroy ;
override;
procedure Clear;
procedure
LoadFromStream(Strea
m: TStream);
procedure
LoadFromFile(c
const
FileName: string);
procedure
SetSize(c
const
NewSize: Int64);
override;
procedure
SetSize(NewSize:
Longint); override;

13 of 17 02/07/2020 18:20
Classes e Objetos (Delphi) - RAD Studio https://translate.googleusercontent.com/translate...

function
Write(c
const Buffer;
Count: Longint):
Longint; override;
function
Write(c
const Buffer:
TBytes; Offset,
Count: Longint):
Longint; override;
end; // deprecated
'Use TBytesStream';

Classes.TMemoryStream d
escende
Classes.TCustomMemoryS
tream , herdando a maioria de
seus membros. Mas define - ou
redefine - vários métodos e
propriedades, incluindo seu

14 of 17 02/07/2020 18:20
Classes e Objetos (Delphi) - RAD Studio https://translate.googleusercontent.com/translate...

método destruidor Destroy .


Seu construtor Create ,, é
herdado sem alteração de
System.TObject e, portanto,
não é redeclarado. Cada
membro é declarado como
privado , protegido ou público
(esta classe não possui
membros publicados ). Estes
termos são explicados abaixo.

Dada esta declaração, você


pode criar uma instância da
TMemoryStream seguinte
maneira:

var
stream :
TMemoryStream ;

15 of 17 02/07/2020 18:20
Classes e Objetos (Delphi) - RAD Studio https://translate.googleusercontent.com/translate...

begin
stream : =
TMemoryStream .
Criar ;

Herança e Escopo

Visibilidade dos
Membros da Classe

Declarações
avançadas e classes
mutuamente
dependentes

Veja também

16 of 17 02/07/2020 18:20
Classes e Objetos (Delphi) - RAD Studio https://translate.googleusercontent.com/translate...

Retrieved from
"http://docwiki.embarcadero.com
/RADStudio/Sydney
/e/index.php?title=Classes_and_Object
s_(Delphi)&oldid=266493"

17 of 17 02/07/2020 18:20

Potrebbero piacerti anche