Ați văzut că obiectele Pascal demonstrează unele caracteristici ale paradigmei orientate pe obiecte. Ei implementează încapsularea, ascunderea datelor și moștenirea, dar au limitările lor. De exemplu, obiectele Pascal nu participă la polimorfism. Astfel, clasele sunt utilizate pe scară largă pentru a implementa un comportament corect orientat spre obiect într-un program, în special software bazat pe o interfață grafică.
O clasă este definită aproape în același mod ca un obiect, dar este un pointer către un obiect, nu la obiect în sine. Din punct de vedere tehnic, aceasta înseamnă că clasa este alocată pe heapul programului, în timp ce obiectul este alocat pe stivă. Cu alte cuvinte, atunci când declarați o variabilă de tip obiect, va ocupa cât mai mult spațiu în stivă decât mărimea obiectului, dar când declarați o variabilă de tip de clasă, va avea întotdeauna dimensiunea indicelui din stivă. Datele din clasă vor fi în grabă.
Definiția clasei Pascal
Este demn de remarcat următoarele puncte importante -
Definițiile de clasă trebuie să se încadreze în tipul de declarație a părții de program numai.
Clasa este definită folosind clasa de cuvinte cheie.
Câmpurile elementelor de date care există în fiecare instanță a clasei.
Metodele sunt declarate în definiția clasei.
Există un constructor predefinit numit Creatie în clasa Root. Fiecare clasă abstractă și fiecare clasă concretă este descendentă a rădăcinii, astfel încât toate clasele să aibă cel puțin un constructor.
Există un distrugător predefinit numit Distruge în clasa rădăcină. Fiecare clasă abstractă și fiecare clasă concretă este descendentă a rădăcinii, astfel încât toate clasele să aibă cel puțin un distrugător.
Definirea dreptunghiului de clasă, care are două elemente de date întregi de lungime și lățime de tip și unele funcții ale membrilor, manipulează membrii acestor date și o procedură pentru a desena un dreptunghi.
Să scriem un program complet care creează o instanță a clasei dreptunghiului și desenează un dreptunghi. Acesta este același exemplu pe care l-am folosit când discutăm obiecte Pascal. Veți găsi că ambele programe sunt aproape identice, cu următoarele excepții -
Va trebui să includeți directive pentru utilizarea clasei.
Va trebui să includeți: directive pentru utilizarea constructorilor.
Iată un exemplu complet -
Când codul de mai sus este compilat și executat, acesta produce următorul rezultat:
Vizibilitatea membrilor clasei
Vizibilitatea indică disponibilitatea membrilor clasei. Membrii clasei Pascal au cinci tipuri de vizibilitate -