Példák a létrehozott programosztályokra
Egyéni osztály
11.12. Class ConvertAmount
Az osztályban a számok nevét tartalmazó védett tömbök deklarálásra kerülnek, és két módszer a nyilvános feldolgozás módja. amelyhez a konvertált szám átkerül, és a védett NumToString. A szám egy karakterláncra való konvertálása a metódus kódjából érthető.
Az osztály használatához létre kell hoznia egy objektumot, és hívnia kell az átalakítási módot:
Osztálygyűjtemény
Milyen gyűjtemények? A gyűjtemény eszköze a kapcsolódó objektumok csoportba tömörítése. Például egy Űrlap-objektum támogatja az Ellenőrző-vezérlő objektumok gyűjteményét, és megfelelő módszerek vannak az új elemek gyűjteményből történő hozzáadására vagy eltávolítására. A Controls gyűjtemény bármely elemére hivatkozhat az index alapján, például:
Az űrlap ControlCount tulajdonsága olyan értéket tartalmaz, amely megegyezik a gyűjtemény objektumainak számával. Amikor eltávolítja az objektumot a gyűjtemény, tekintet nélkül a helyén tartja a gyűjtemény, ControlCount tulajdonság értéket eggyel csökkentjük, és a kódok az összes objektum a gyűjtemény a következő eltávolítható tárgyat is eggyel csökken.
A gyűjtemények lehetővé teszik, hogy objektumorientált megközelítést szervezzen az adattárolásra. Ezenkívül, a tömbektől eltérően, a gyűjtemények nem igénylik a dimenziók újratelepítését elemek hozzáadásakor vagy eltávolításakor.
A Visual FoxPro-ban a gyűjtemény alap osztályát gyűjtemények készítéséhez használják. Ebbe az osztályba tartozó objektum objektumában nemcsak objektumokat, hanem más típusú adatokat is tárolhat: numerikus, karakteres, logikai, sőt tömbök. A gyűjtemény minden egyes elemét elérheti mind az indexe, mind a kulcs - a karakterlánc, mint az index, amely egyedileg azonosítja ezt az elemet. A tömbökkel ellentétben új elemeket helyezhet el a gyűjteménybe, és elhelyezheti azokat a meglévő elemek között.
A gyűjteményosztály példány objektumának létrehozásához használhatja a CREATEOBJECT () vagy NEWOBJECT () függvényeket, például:
A Számláló tulajdonság tartalmazza a gyűjteményben szereplő tételek számát. Csak olvasható:
A KeySort tulajdonság határozza meg, hogy a Visual FoxPro melyik sorrendbe sorolja a FOR EACH hurok gyűjtemény elemeit.
11.13. Táblázat. A Collection osztályhoz tartozó KeySort tulajdonságértékek
Lista 11.13. A Collection objektum KeySort tulajdonságának alkalmazása
A Collection osztály többi tulajdonsága közös minden Visual FoxPro alap osztályra; ha szükséges, leírását megtalálja a súgódokumentációban.
Az osztály minden módjáról itt megnézzük az Add, Item, GetKey és Remove metódusokat. A többi osztály módszerei megtalálhatók a súgódokumentációban.
A módszer új elemet ad a gyűjteményhez. Itt van a szintaxisa:
Az eItem paraméter bármilyen típusú kifejezés, amely hozzáad egy elemet a gyűjteményhez.
Az opcionális cKey paraméter megadja a kulcsot - egy karakterláncot, amely azonosítja az objektumot. A kulcsoknak egyedinek kell lenniük, vagyis két azonos karakterláncot nem lehet használni több gyűjteményes objektum kulcsaként.
Az opcionális eBefore és eAfter paraméterek meghatározzák a gyűjteményhez hozzáadandó elem helyét. Az eBefore paraméter megadja azt a kulcsot, amely előtt a hozzáadott elemet el kell helyezni, és az eAfter paraméter a kulcs, amely után a hozzáadott elemet helyezni kell. Mindkét paraméter egyidejűleg vagy egyikével megadható; ha elhagyja az eBefore paramétert. akkor helyét a vesszővel ellátott paraméterek listájában fel kell tüntetni:
A 11.14-es lista a Hozzáadás mód használatát mutatja.
11.14. A Gyűjtemény objektum hozzáadása módszer használatával
Ennek a kódnak az eredményeként a következő listát kapja:
Rose Flower1
Orchidea virág 2
Bellflower Flower3
Miért keletkezett a kimenet ebben a sorrendben? Valóban, miután hozzáadta az "Orchid" sort a gyűjteményhez, ennek az elemnek az indexe megegyezik egy értékkel. De a következő elem hozzáadásakor azt jelezték, hogy az elemet a "Flower2" gombbal kell elhelyezni. Így a "Rose" elem megegyezik az index értékével, és az "Orchid" elem indexe megegyezik kettővel. Amikor hozzáadja a következő elemet (a "Bell" vonalat), pozíciója nincs kifejezetten megadva, ezért ez a elem a gyűjtemény végére került.
megjegyzés
Ha a cKey paramétert a gyűjtemény legalább egy elemére szeretné használni, akkor ezt a paramétert a gyűjtemény összes elemére használnia; Ha ezt a követelményt megsértik, akkor futási idő hiba lép fel.
Elem módszer
A módszer lehetővé teszi, hogy a gyűjtemény elemére mutasson indexével. Itt van a szintaxisa:
ahol az eIndex lehet egy elemindex vagy egy kulcsnév numerikus értéke. A módszer egyik példáját a 11.15.
Lista 11.15. A Gyűjtemény objektum tételmódjának alkalmazása
A kód utolsó négy sorában megtalálhatók a gyűjtemény elemek elérésének lehetőségei. Mindegyik ugyanazt az eredményt adja vissza.
GetKey módszer
A módszer lehetővé teszi a kulcs értékét a gyűjtemény elemének indexével vagy az index értékével a kulcs segítségével. Ha a megadott index (vagy kulcs) elem nincs a gyűjteményben, a módszer nulla értéket ad vissza. Itt van a módszer szintaxisa:
A táblázatban. A 11.14 felsorolja a módszer által visszaküldött értékeket.
11.14. Táblázat. A GetKey módszer által visszaadott értékek
Az eltávolítási módszer
A módszer törli az elemet a gyűjteményből. Itt van a szintaxisa:
Az eIndex paraméter lehet egy elemindex vagy egy kulcsnév numerikus értéke. Ha eltávolít egy elemet a gyűjteményből, akkor a számláló tulajdonság értéke egyenként csökken; a törölni kívánt elem után a gyűjteményben található valamennyi elem indexeit egyenként is csökkenti.
kérelem
A gyűjtemények segítségével számos olyan probléma megoldható, amelyek az adatok tárolása során keletkeznek. A gyűjtemények használatának előnyei a könnyű használat és az objektumorientált megközelítés.
A 11.16-os lista bemutatja a súgódokumentációból egy mintakódot, amely bemutatja, hogyan kell a gyűjteményt felhasználni az objektumok - az űrlap-vezérlőelemek hivatkozásainak tárolására.
Lista 11.16. Demo-gyűjteményhasználati példa
Osztály üres
Az Üres kategória az adattárolásra szánt objektumok létrehozásához használható. A korábbi osztályokkal ellentétben ez az osztály nem használható szülőosztályként saját osztályok létrehozásakor. Nem tartalmaz tulajdonságokat vagy módszereket; Új tulajdonságokat adhat hozzá az osztályhoz tartozó objektumokhoz az ADDPROPERTY () függvény használatával. A REMOVEPROPERTY () függvény segítségével eltávolíthatja az objektumhoz hozzáadott tulajdonságot. Egy Üres osztály egy példánya létrehozható az SCATTER parancs segítségével ... NÉV: