Jump to content
Fórum Script Brasil
  • 0

Qual é a diferença entre classes ?


marcos_regato

Question

2 answers to this question

Recommended Posts

  • 0

Olha vale esperar uma resposta com mais firmeza

Mas pelo o que eu compreendi de quando estava estudando é que no final não faz diferenças, pois todas as classes herdam da classe objeto.

Link to comment
Share on other sites

  • 0

Qual é a diferença entre "class Teste(object)" e "class Test:" ?

Classes são como moldes a partir dos quais criamos objetos. Uma classe representa a definição de quais métodos e variáveis de uma instância terá um objeto.

Uma classe não é um objeto em si, é a descrição de como serão os objetos de um determinado tipo quando instanciados a partir da especificação da classe.

Os objetos reais são obtidos instanciando-se classes predefinidas. Você pode instanciar muitos objetos de uma determinada classe, da mesma forma como pode criar diversos bolos a partir de uma receita.

Em Object Pascal, classes são consideradas como tipos de dados compostos e assim definidas. A declaração de uma classe é muito parecida com a declaração de um record onde troca-se a palavra record pela palavra class.

É importante chamar a atenção de que o emprego da letra "T" no inicio do nome classe é apenas uma convenção e não obrigatório.

Costuma-se prefixar um "T" ao nome de qualquer tipo definido pelo usuário

exemplo: Declaração de uma classe bem simples

type
   TPoint = class(TObject)
public
   X: float;   ///  variáveis de instância
   Y: float;
end;

Como mencionado, esta declaração define apenas o molde a partir do qual os verdadeiros objetos serão criados.

Existem situações onde a existência de um construtor é fundamental. Um bom exemplo disso é quando o objeto que está sendo instanciado precisa, por sua vez, instanciar outros objetos.

exemplo:

type
   TRectangle = class
private
   PointA: TPoint;
   PointB: TPoint;
public
   construtor Create;
   { métodos entrariam aqui }
end;

construtor TRectangle.Create;
begin
   inherited Create;
   PointA := TPoint.Create;
   PointB := TPoint.Create;
end;

Nesse exemplo, a presença de um construtor é de vital importância para garantir que dois objetos TPoint serão instanciados sempre que um objeto da classe TRectangle for instanciado.

Caso os objetos não sejam instanciados, quando forem utilizados em outros métodos, dão origem a erros de execução.

A utilização de um objeto não instanciado é na maioria das vezes o caminho mais rápido para se conseguir um erro do windows, o GPF ( General Protection Fault ).

OBS: Esta definição vale para o Pascal, mas não é muito diferente do Python

voce pode pesquisar mais sobre isso nesse link

http://translate.google.com.br/translate?hl=pt-BR&sl=en&u=https://docs.python.org/2/tutorial/classes.html&prev=search

abraço

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.1k
    • Total Posts
      652k
×
×
  • Create New...