class???
Pessoal perdoem minha ignorância mas estou com uma dúvida.
Programo em Delphi a algum tempo e agora estou querendo estudar POO mais a fundo, então em alguns exemplos vejo que declaram procedures ou functions após a palavra Class
class funcaoteste(A:Integer):String;
class Procedure X;
ao invés de simplesmente:
funcaoteste(A:Integer):String;
Procedure X;
Qual a diferença de uma pra outra?
Programo em Delphi a algum tempo e agora estou querendo estudar POO mais a fundo, então em alguns exemplos vejo que declaram procedures ou functions após a palavra Class
class funcaoteste(A:Integer):String;
class Procedure X;
ao invés de simplesmente:
funcaoteste(A:Integer):String;
Procedure X;
Qual a diferença de uma pra outra?
Raziel
Curtidas 0
Respostas
Nextone_br
17/06/2004
Estas são as chamadas funções de classe da orientação a objetos.
Este tipo de função tu podes chamar sem a instância de um objeto, simplesmente pela tua classe, por exemplo:
TUtils = class
...
class procedure GraveLog(sMensagem: string); //Aqui digamos que tenha uma função que grave em um arquivo texto alguma mensagem para log
TPessoa = class
...
...
para usar alguma função da classe TPessoa (que não tem nenhuma função de classe) preciso ter instanciado um objeto TPessoa, porém, se eu quiser usar o método GraveLog da classe TUtils, posso simplesmente fazer o seguinte
TUtils.GraveLog(´Inicio do processamento´)
já na TPessoa teria que ser
oPessoa := TPessoa.Create;
try
oPessoa.metodo
finally
oPessoa.Free;
end;
Este tipo de função tu podes chamar sem a instância de um objeto, simplesmente pela tua classe, por exemplo:
TUtils = class
...
class procedure GraveLog(sMensagem: string); //Aqui digamos que tenha uma função que grave em um arquivo texto alguma mensagem para log
TPessoa = class
...
...
para usar alguma função da classe TPessoa (que não tem nenhuma função de classe) preciso ter instanciado um objeto TPessoa, porém, se eu quiser usar o método GraveLog da classe TUtils, posso simplesmente fazer o seguinte
TUtils.GraveLog(´Inicio do processamento´)
já na TPessoa teria que ser
oPessoa := TPessoa.Create;
try
oPessoa.metodo
finally
oPessoa.Free;
end;
GOSTEI 0
Rômulo Barros
17/06/2004
São essas coisa q eu naão entendoooooo.....
As vezes, fico com vontade de estudar java a fundo.... !!!!! :oops:
As vezes, fico com vontade de estudar java a fundo.... !!!!! :oops:
GOSTEI 0
Tatuweb
17/06/2004
Dê uma olhadinha nos ítens 2 e 4 dessa página. A LatiumSoftware é um boletim conhecido dos programadores Delphi entretanto parece que recentemente pararam de publicar os exceletes artigos que faziam.
:arrow: http://www.latiumsoftware.com/br/pascal/0049.php
Há muitos outros conceitos a serem abordados na POO mas nesse site você encontra uma boa introdução.
:arrow: http://www.latiumsoftware.com/br/pascal/0049.php
Há muitos outros conceitos a serem abordados na POO mas nesse site você encontra uma boa introdução.
GOSTEI 0
Raziel
17/06/2004
Valeu nextone_br, agora entendi. Vejo que OO tem muitas vantagens, torna o código bem mais limpo, o q se pode ver pelo simples exemplo que vc deu, daqui a pouco eu entendo de vez o espirito da coisa :D
GOSTEI 0
Raziel
17/06/2004
Dê uma olhadinha nos ítens 2 e 4 dessa página. A LatiumSoftware é um boletim conhecido dos programadores Delphi entretanto parece que recentemente pararam de publicar os exceletes artigos que faziam.
:arrow: http://www.latiumsoftware.com/br/pascal/0049.php
Há muitos outros conceitos a serem abordados na POO mas nesse site você encontra uma boa introdução.
Verdade, muito bom, eu assinei no começo do ano, mas acho que só recebi uns dois, parece que ta faltando tradutor ou tempo, valeu pela dica, nem me lembrava disso.
GOSTEI 0
Tnaires
17/06/2004
Esse class é o equivalente à palavra-chave ´static´ do Java?
GOSTEI 0