Exemple de clase de programe create

Clasă particularizată

Listing 11.12. Clasă ConvertAmount

În clasă, sunt declarate rețele protejate care conțin numele numerelor, iar două metode sunt metoda publică Convert. la care este transferat numărul convertit și numerele protejate NumToString. Cum se realizează conversia unui număr într-un șir este de înțeles din codul metodei.






Pentru a utiliza clasa, trebuie să creați un obiect și să îl apelați metoda Convert:

Colecția de clase

Ce sunt colecțiile? O colecție este un instrument pentru îmbinarea obiectelor în grupuri. De exemplu, un obiect Form acceptă o colecție de obiecte de control Controls și dispune de metode adecvate pentru adăugarea sau eliminarea elementelor noi din colecție. Puteți să vă referiți la orice element din colecția Controale după indexul său, de exemplu:

Proprietatea ControlCount a formularului conține o valoare egală cu numărul de obiecte din colecție. La scoaterea unui obiect din colecția, indiferent de poziția sa în cadrul colecției, valoarea proprietății ControlCount este decrementat cu unul, și codurile tuturor obiectelor din colecția pentru următorul obiect detașabil, de asemenea, redus cu unul.
Colecțiile vă permit să organizați o abordare orientată pe obiecte pentru stocarea datelor. În plus, spre deosebire de arrays, colecțiile nu necesită re-alocarea dimensiunilor în cazul adăugării sau eliminării elementelor.
În Visual FoxPro, clasa de bază Collection este utilizată pentru a crea colecții. Într-un obiect de instanță din această clasă, puteți stoca nu numai obiecte, ci și date de orice alt tip: numeric, caracter, logic și chiar și matrice. Fiecare element al colecției poate fi accesat atât prin indexul său, cât și prin cheia - șirul, ca și indicele, care identifică în mod unic acest element. Spre deosebire de arrays, puteți adăuga elemente noi în colecție, plasându-le între elementele existente.

Pentru a crea un obiect de instanță al clasei Colecție, puteți utiliza funcțiile CREATEOBJECT () sau NEWOBJECT (), de exemplu:

Proprietatea Count conține numărul de elemente din colecție. Este doar pentru citire:

Proprietatea KeySort specifică în ce secvență Visual FoxPro enumeră elementele de colectare din buclă FOR EACH.

Tabelul 11.13. Valorile proprietăților KeySort pentru clasa Collection

Listing 11.13. Aplicând proprietatea KeySort a unui obiect Colecție

Proprietățile rămase ale clasei Collection sunt comune tuturor clasei de bază Visual FoxPro; dacă este necesar, veți găsi descrierea acestora în documentația de ajutor.

Din toate metodele clasei, vom examina aici metodele Add, Item, GetKey și Remove. Restul metodelor de clasă pot fi găsite în documentația de ajutor.

Metoda adaugă un nou element colecției. Aici este sintaxa sa:







Parametrul eItem este o expresie de orice tip care adaugă un element colecției.
Parametrul opțional cKey specifică cheia - un șir de caractere care va identifica obiectul. Cheile trebuie să fie unice, adică nu este permisă utilizarea a două caractere de caractere identice ca chei pentru mai multe obiecte de colectare.
Parametrii opțional eBefore și eAfter determină poziția elementului de adăugat la colecție. parametru EBefore specifică cheia, la care trebuie adăugat un element este plasat, și opțiunea eAfter - cheie după care trebuie să fie plasat elementul adăugat. Puteți specifica ambii parametri simultan sau unul dintre aceștia; dacă omiteți parametrul eBefore. atunci locul său ar trebui să fie indicat în lista parametrilor cu virgulă:

Listele 11.14 indică utilizarea metodei Adăugare.

Listing 11.14. Aplicarea metodei Add a unui obiect Colecție

Ca urmare a acestui cod, veți obține următoarea listă:

Rose Flower1
Flori de orhidee 2
Bellflower Flower3

De ce este rezultatul produs în această ordine? Într-adevăr, după adăugarea liniei "Orhidee" în colecție, indicele acestui element are o valoare egală cu una. Dar când a fost adăugat elementul următor, a fost indicat ca acesta să fie plasat în fața elementului cu tasta "Flower2". Astfel, elementul "Rose" a obținut valoarea indicelui egal cu unul, iar indicele elementului "Orchid" a devenit egal cu două. Când se adaugă următorul element (linia "Bell"), poziția sa nu este specificată explicit, deci acest element a fost adăugat la sfârșitul colecției.

remarcă
Dacă doriți să utilizați parametrul cKey pentru cel puțin un element din colecție, atunci trebuie să utilizați acest parametru pentru toate elementele colecției; Dacă această cerință este încălcată, apare o eroare de execuție.

Item Metoda

Metoda vă permite să vă referiți la elementul colecției prin indexul său. Aici este sintaxa sa:

unde eIndex poate fi fie o valoare numerică a indexului elementului, fie un nume de cheie. Un exemplu de metodă este prezentat în Lista 11.15.

Listing 11.15. Aplicarea metodei elementului din obiectul Colecție

Ultimele patru linii de cod arată opțiunile pentru accesarea unui element de colecție. Toți aceștia returnează același rezultat.

Metoda GetKey

Metoda permite obținerea valorii cheii prin indexul elementului colecției sau prin valoarea cheii. Dacă elementul cu indexul (sau cheia) specificat nu se află în colecție, metoda revine la zero. Iată sintaxa acestei metode:

În tabel. 11.14 afișează valorile returnate de metodă.

Tabelul 11.14. Valorile returnate de metoda GetKey

Metoda de eliminare

Metoda șterge elementul din colecție. Aici este sintaxa sa:

Parametrul eIndex poate fi fie o valoare numerică a indexului elementului, fie un nume de cheie. Dacă eliminați un element din colecție, valoarea proprietății Count este decrementată cu una; indicele pentru toate elementele situate în colecție după elementul care este șters este de asemenea diminuat cu unul.

cerere

Utilizarea colecțiilor vă va permite să rezolvați o mulțime de probleme care apar atunci când stocați date în matrice. Ușurința de utilizare și abordarea orientată-obiect sunt factorii determinanți în favoarea utilizării colecțiilor.
Fișa 11.16 prezintă un exemplu de cod din documentația de ajutor, care arată modul de utilizare a colecției pentru a stoca referințele la elementele de control ale obiectelor.

Listing 11.16. Exemplu de utilizare a colecției de demonstrații

Class Empty

Clasa Empty este utilizată pentru a crea obiecte destinate stocării datelor. Spre deosebire de clasele anterioare, această clasă nu poate fi utilizată ca clasă parentală atunci când se creează clase personalizate. Nu conține proprietăți sau metode; Puteți adăuga proprietăți noi obiectelor din această clasă utilizând funcția ADDPROPERTY (). Puteți elimina o proprietate adăugată acestui obiect folosind funcția REMOVEPROPERTY (). O instanță a unei clase Empty poate fi creată cu comanda SCATTER ... NAME:







Trimiteți-le prietenilor: