Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #21  
Antiguo 07-12-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola roman.
Cita:
Empezado por roman Ver Mensaje
Claro Mario, pero a lo que nos referimos dec y yo es a que en el ejemplo que puso, ecfisa olvidó poner class en la declaración de los métodos. Sirve si no se hace referencia a variables de la clase pero no es lo que "debe" hacerse.

No tenemos nada en contra de los métodos de clase

// Saludos
En realidad no fué un olvido, quise poner en relieve precisamente la curiosidad que Delphi permite utilizar "métodos de objeto" sin haber creado una instancia de la clase.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #22  
Antiguo 07-12-2014
Avatar de BDWONG
BDWONG BDWONG is offline
Miembro
NULL
 
Registrado: nov 2013
Posts: 113
Poder: 11
BDWONG Va por buen camino
ecfisa haber si entendi entoces un metodo de clase es una referencia encambio un metodo de objeto seria como llamar directamente a un metodo enconcreto

y por ultimo tu recomiendas el uso de alguno de los dos o dependiendo la ocacion ves si los utilizas
Responder Con Cita
  #23  
Antiguo 07-12-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola BDWONG

Los métodos de clase se accionan sobre una referencia de clase y los métodos de objeto sobre una instancia de la clase, te pongo un código que ejemplifica a ambos:
Código Delphi [-]
...
type
  TForm2 = class(TForm)
  private
  public
    class procedure Mostrar(const aCaption: string); // método de clase
    procedure foo;                                   // método de objeto (o instancia)
  end;

var
  Form2: TForm2;

implementation

class procedure TForm2.Mostrar(const aCaption: string);
begin
  if not Assigned(Form2) then
    Form2:= TForm2.Create(nil);
  Form2.Caption:= aCaption;
  Form2.Show;
end;

procedure TForm2.foo;
var
  x: Integer;
begin
  x:= 5 + 4;
  ShowMessage(IntToStr(x));
end;

Llamada ejemplo:
Código Delphi [-]
...
procedure TForm1.Button1Click(Sender: TObject);
begin
  TForm2.Mostrar('Un título'); // método de clase, se invoca desde la clase
  Form2.foo;                   // método de objeto, se invoca desde la instancia(objeto)   
end;
También te podría interesar ampliar con estos artículos:
Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #24  
Antiguo 07-12-2014
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Cita:
Empezado por mamcx Ver Mensaje
No hay razon para decir que es "anormal" usar class methods. La idea de que solo es OO si se usan clases/objetos es solo un subproducto de que desafortunadamente la OO que se hizo popular es la deficiente implementación de C++/Java.
Totalmente de acuerdo. De hecho, hay muy pocos lenguajes que, siendo absolutamente estrictos en la definición, sean orientados a objetos (Small-Talk y poco más).

Por cierto (aunque sé que llego tarde...), hay un método que usamos mucho sin crear el objeto: El método Create.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #25  
Antiguo 08-12-2014
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Sí Ñuño, el constructor Create, y con la misma frecuencia el método de clase NewInstance.
Responder Con Cita
  #26  
Antiguo 10-12-2014
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por ecfisa Ver Mensaje
En realidad no fué un olvido, quise poner en relieve precisamente la curiosidad que Delphi permite utilizar "métodos de objeto" sin haber creado una instancia de la clase.
De todas formas, no es lo correcto. Y los despistados, lean bien el hilo para saber que lo que se discute no es si los métodos de clase son buenos o no

// Saludos
Responder Con Cita
  #27  
Antiguo 25-12-2014
Eason Eason is offline
Registrado
NULL
 
Registrado: dic 2014
Posts: 2
Poder: 0
Eason Va por buen camino
Si,los class methods se usan regularmente de la forma exacta que se describe.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Un momento, ¿no sería mejor comenzar con Python 3.x? Al González Python 4 05-04-2011 16:30:43
Liberar un objeto Com marcosl OOP 1 25-10-2007 00:10:19
Liberar el foco de un objeto Velia Varios 4 18-11-2005 01:08:08
Liberar un objeto xerkan Servers 1 28-10-2003 17:29:10


La franja horaria es GMT +2. Ahora son las 12:48:48.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi