Ir para conteúdo
Fórum Script Brasil
  • 0

Qual é a diferença entre classes ?


marcos_regato

Pergunta

2 respostass a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...