En Delphi, un método es un procedimiento o función que realiza una operación en un objeto. Un método de clase es un método que opera en una referencia de clase en lugar de una referencia de objeto.
Si lee entre líneas, encontrará que los métodos de clase son accesibles incluso cuando no ha creado una instancia de la clase (el objeto).
Cada vez que crea un componente Delphi dinámicamente, utiliza un método de clase: el Constructor.
El constructor Crear es un método de clase, a diferencia de prácticamente todos los demás métodos que encontrará en la programación de Delphi, que son métodos de objeto. Un método de clase es un método de la clase y, de manera adecuada, un método de objeto es un método que puede ser llamado por una instancia de la clase. Esto se ilustra mejor con un ejemplo, con clases y objetos resaltados en rojo para mayor claridad:
myCheckbox: = TCheckbox.Create (nil);
Aquí, la llamada a Crear está precedida por el nombre de la clase y un punto ("TCheckbox"). Es un método de la clase, comúnmente conocido como constructor. Este es el mecanismo por el cual se crean las instancias de una clase. El resultado es una instancia de la clase TCheckbox. Estas instancias se llaman objetos. Contraste la línea de código anterior con lo siguiente:
myCheckbox.Repaint;
Aquí, se llama al método Repaint del objeto TCheckbox (heredado de TWinControl). La llamada a Repaint está precedida por la variable del objeto y un punto ("myCheckbox")..
Los métodos de clase se pueden llamar sin una instancia de la clase (por ejemplo, "TCheckbox.Create"). Los métodos de clase también se pueden llamar directamente desde un objeto (por ejemplo, "myCheckbox.ClassName"). Sin embargo, los métodos de objeto solo pueden ser invocados por una instancia de una clase (por ejemplo, "myCheckbox.Repaint").
Detrás de escena, el constructor Crear está asignando memoria para el objeto (y está realizando cualquier inicialización adicional según lo especificado por TCheckbox o sus antepasados).
Piense en AboutBox (un formulario personalizado "Acerca de esta aplicación"). El siguiente código usa algo como:
procedimiento TfrMain.mnuInfoClick (remitente: TObject);Esto, por supuesto, es una muy buena manera de hacer el trabajo, pero solo para hacer que el código sea más fácil de leer (y administrar), sería mucho más eficiente cambiarlo a:
empezar
AboutBox: = TAboutBox.Create (nil);
tratar
AboutBox.ShowModal;
finalmente
AboutBox.Release;
final;
final;
procedimiento TfrMain.mnuInfoClick (remitente: TObject);La línea anterior llama al método de clase "ShowYourself" de la clase TAboutBox. El "ShowYourself" debe estar marcado con la palabra clave "clase":
empezar
TAboutBox.ShowYourself;
final;
procedimiento de clase TAboutBox.ShowYourself;
empezar
AboutBox: = TAboutBox.Create (nil);
tratar
AboutBox.ShowModal;
finalmente
AboutBox.Release;
final;
final;