Înțelegerea metodelor clasei Delphi

Î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).

Metode de clasă vs. metode de obiect

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).

Experimentând cu propriile metode de clasă

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);
începe
AboutBox: = TAboutBox.Create (nul);
încerca
AboutBox.ShowModal;
in cele din urma
AboutBox.Release;
Sfârșit;
Sfârșit;
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:
procedura TfrMain.mnuInfoClick (Expeditor: TObject);
începe
TAboutBox.ShowYourself;
Sfârșit;
Linia de mai sus numește metoda „ShowYourself” din clasa TAboutBox. „ShowYourself” trebuie marcat cu cuvântul cheie „clasă„:
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;

Lucruri de păstrat în minte

  • Definiția unei metode de clasă trebuie să includă clasa de cuvinte rezervată înainte de procedura sau cuvântul cheie funcțional care începe definiția.
  • Formularul AboutBox nu este creat automat (Opțiuni de proiect).
  • Puneți unitatea AboutBox la clauza de utilizare a formularului principal.
  • Nu uitați să declarați procedura în interfața (publică) a unității AboutBox.