În Delphi, o metodă este o procedură sau o funcție care efectuează o operație pe un obiect. O metodă de clasă este o metodă care operează pe o referință de clasă în loc de o referință de obiect.
Dacă citiți între linii, veți vedea că metodele clasei sunt accesibile chiar și atunci când nu ați creat o instanță a clasei (obiectul).
De fiecare dată când creați o componentă Delphi în mod dinamic, utilizați o metodă de clasă: Constructorul.
Creatorul constructor este o metodă de clasă, spre deosebire de practic toate celelalte metode pe care le întâlniți în programarea Delphi, care sunt metode obiect. O metodă de clasă este o metodă a clasei și, în mod adecvat, o metodă obiect este o metodă care poate fi numită de o instanță a clasei. Acest lucru este ilustrat cel mai bine printr-un exemplu, cu clase și obiecte evidențiate în roșu pentru claritate:
myCheckbox: = TCheckbox.Create (nil);
Aici, apelul la Creare este precedat de numele clasei și de o perioadă („TCheckbox.”). Este o metodă a clasei, cunoscută în mod obișnuit ca constructor. Acesta este mecanismul prin care sunt create instanțele unei clase. Rezultatul este o instanță a clasei TCheckbox. Aceste cazuri sunt numite obiecte. Contrastați linia anterioară de cod cu următoarele:
myCheckbox.Repaint;
Aici, se numește metoda Repaint a obiectului TCheckbox (moștenit de la TWinControl). Apelul la Repaint este precedat de variabila obiect și de o perioadă („myCheckbox.”).
Metodele de clasă pot fi apelate fără o instanță a clasei (de exemplu, "TCheckbox.Create"). Metodele de clasă pot fi, de asemenea, apelate direct de la un obiect (de exemplu, "myCheckbox.ClassName"). Cu toate acestea, metodele obiect pot fi apelate doar printr-o instanță a unei clase (de exemplu, "myCheckbox.Repaint").
În spatele scenei, constructorul Create alocă memorie pentru obiect (și execută orice inițializare suplimentară, după cum este specificat de TCheckbox sau de strămoșii săi).
Gândiți-vă la AboutBox (un formular personalizat „Despre această aplicație”). Următorul cod folosește ceva de genul:
procedura TfrMain.mnuInfoClick (Expeditor: TObject);Acesta este, desigur, un mod foarte frumos de a face treaba, dar doar pentru a face codul mai ușor de citit (și de gestionat), ar fi mult mai eficient să îl schimbați în:
începe
AboutBox: = TAboutBox.Create (nul);
încerca
AboutBox.ShowModal;
in cele din urma
AboutBox.Release;
Sfârșit;
Sfârșit;
procedura TfrMain.mnuInfoClick (Expeditor: TObject);Linia de mai sus numește metoda „ShowYourself” din clasa TAboutBox. „ShowYourself” trebuie marcat cu cuvântul cheie „clasă„:
începe
TAboutBox.ShowYourself;
Sfârșit;
procedura de clasă TAboutBox.ShowYourself;
începe
AboutBox: = TAboutBox.Create (nul);
încerca
AboutBox.ShowModal;
in cele din urma
AboutBox.Release;
Sfârșit;
Sfârșit;