Izpratne par Delphi klases metodēm

Jauns vīrietis izmanto savu klēpjdatoru, lai mēģinātu atrisināt problēmu ar kodu

Getty Images/Emīlija Manevska





In Delfos , metode ir procedūra vai funkcija, kas veic darbību ar objektu. Klases metode ir metode, kas darbojas uz klases atsauci, nevis uz objekta atsauci.

Ja lasāt starp rindiņām, jūs atklāsiet, ka klases metodes ir pieejamas pat tad, ja neesat izveidojis klases (objekta) gadījumu.



Klases metodes pret objektu metodēm

Katru reizi, kad veidojat aDelphi komponents dinamiski, jūs izmantojat klases metodi: Konstruktors .

Konstruktors Izveidot ir klases metode pretstatā praktiski visām citām metodēm, ar kurām jūs saskaraties Delphi programmēšanā, kas ir objektu metodes. Klases metode ir klases metode, un objekta metode ir metode, kuru var izsaukt klases gadījums. To vislabāk ilustrē piemērs, kur skaidrības labad klases un objekti ir iezīmēti sarkanā krāsā:



|_+_|

Šeit pirms izsaukuma Izveidot ir klases nosaukums un punkts ('TCcheckbox.'). Tā ir klases metode, ko parasti sauc par konstruktoru. Šis ir mehānisms, ar kuru tiek izveidoti klases gadījumi. Rezultāts ir TCheckbox klases gadījums. Šos gadījumus sauc par objektiem. Pretstatā iepriekšējai koda rindai ar šādu:

|_+_|

Šeit tiek izsaukta TCheckbox objekta pārkrāsošanas metode (kas mantota no TWinControl). Pirms pārkrāsošanas izsaukuma ir objekta mainīgais un punkts (“myCheckbox.”).

Klases metodes var izsaukt bez klases gadījuma (piemēram, 'TCheckbox.Create'). Klases metodes var izsaukt arī tieši no objekta (piem., 'myCheckbox.ClassName'). Tomēr objektu metodes var izsaukt tikai klases gadījums (piemēram, 'myCheckbox.Repaint').

Aizkulisēs ir Izveidot konstruktors atmiņas piešķiršana objektam (un veicot jebkādu papildu inicializāciju, kā norādījis TCheckbox vai tā senči).



Eksperimentējiet ar savām klases metodēm

Padomājiet par AboutBox (pielāgotu veidlapu 'Par šo pieteikumu'). Šis kods izmanto kaut ko līdzīgu:

|_+_|Tas, protams, ir ļoti jauks veids, kā veikt šo darbu, taču, lai kods būtu vieglāk lasāms (un pārvaldāms), daudz efektīvāk būtu to mainīt uz:
|_+_|Iepriekšējā rindiņa izsauc TAboutBox klases 'ShowYourself' klases metodi. 'Parādīt sevi' ir jāatzīmē ar atslēgvārdu ' klasē ':
klases procedūra TAboutBox.ShowYourself; 
sākt
AboutBox:= TAboutBox.Create(nil) ;
mēģināt
AboutBox.ShowModal;
beidzot
AboutBox.Release;
beigas;
beigas;



Kas jāpatur prātā

  • Klases metodes definīcijā ir jāiekļauj rezervētā vārda klase pirms procedūras vai funkcijas atslēgvārda, kas sāk definīciju.
  • Veidlapa AboutBox netiek automātiski izveidota (projekta opcijas).
  • Ievietojiet AboutBox vienību galvenās veidlapas izmantošanas klauzulā.
  • Neaizmirstiet paziņot procedūru AboutBox vienības saskarnes (publiskā) daļā.