Egyéni osztályok létrehozása a hozzáférési szoftver termékekben

Általános meghatározások

Először is, definiáljuk: mi az objektum az objektumorientált programozás megértésében. A legegyszerűbb (mindennapi) megértése a cél - ez a dolog, és csakúgy, mint a külvilág, az objektum tulajdonságait ( „kemény kő”), valamint a műveletek végzik ezeket a tulajdonságokat (lehet törött kő). Majdnem ugyanez igaz a programok világában lévő tárgyakra. Például egy fájlt objektumként, annak mérete vagy neve tulajdonságként kezelhet, és műveletet olvashat vagy írhat. Tehát van egy objektum és vannak tulajdonságok - mi a művelet? Bármely olyan felhasználói eljárás vagy funkció, amely módosítja vagy egyszerűen működik az objektum tulajdonságaival. Például a felvételi mezők inicializálására vagy a mezőértékek megjelenítésére vonatkozó eljárás. Természetes vágyak van arra, hogy az adatokat és a feldolgozás módjait egyetlen egészre összpontosítsák, így egyértelmű, hogy mely eljárásokat tervezik bizonyos adatok kezelésére. Így nagyon közel kerültünk a tárgyorientált programozás központi fogalmaihoz - a kapszulázáshoz és az osztályhoz.

Kapszulázás és osztályok

Az objektumorientált programozás (OOP) jelenleg a legnépszerűbb programozási módszertan, ami a strukturált programozás fejlesztése. Az OOP központi felépítése a kapszulázás, vagyis a program strukturálása speciális modulokká, amelyek kombinálják az adatokat és a feldolgozási eljárásokat, valamint a modul belső adatainak feldolgozása csak az ehhez szükséges eljárások szerint történik. A VBA-ban egy osztálymodul nevét vagy egyszerűen egy osztályt fogadunk el. Minden osztálynak van egy belső része, amelyet megvalósításnak neveznek, és egy külső felületet, amelyet egy interfésznek hívnak.
Az ilyen típusú osztály egy új adattípus, amely lehetővé teszi új típusú változók létrehozását az ilyen típusú objektumokhoz (néha egy osztály példányainak is nevezik). Az objektum olyan elemekből áll, amelyek lehetnek megfelelő adatok, vagyis bizonyos adattípusok értékei vagy olyan funkciók, amelyek végrehajtják az adatelemek műveleteit. Elemek - az adatokat class tulajdonságoknak nevezik, az elemeket osztálytípusoknak nevezik. Ez a leírás sablonként szolgál az adott program specifikus példányaihoz (objektumokhoz), saját nevükhöz.

beágyazás

A beágyazás mechanizmusa nagyon kényelmes és természetes. Az osztályok egy családtagja meg tudja adni néhány alapvető tulajdonságot és módszert, és a szülői gyökerekkel (tulajdonságokkal és módszerekkel) rendelkező számos leszármazottja sajátos, magasan specializált tulajdonságokat és módszereket hoz magával.

öröklés

A beágyazás mellett létezik egy másik mód arra, hogy meglévő osztályokat használj új osztályok létrehozásakor, ez az öröklés. Az örökléskor meg kell adni, hogy az A. osztály alapján létrehozott B osztály az A. osztály összes (és néhány) módját és tulajdonságát tartalmazza. Saját módszereit és tulajdonságait is. A beágyazás és az öröklés közötti különbség csak szintaktikai. Amikor beágyazáskor a VBA-ban egy beágyazott osztály módszerét vagy tulajdonságait használjuk, akkor ennek az osztálynak a mezőnevét használjuk. A C és a C ++ jellemzőinek öröklése esetén a szülőosztály tulajdonának vagy módjának neve közvetlenül használható.

Osztály létrehozása

Szintaktikailag osztályok VBA formájában kibocsátott speciális modulok osztályok (class neve - ez a modul neve), ahol a deklarációs részbe beleillik a tulajdonságok (változók) az osztály, és akkor van egy módszer leírása (eljárások) az osztály. Szintaktikailag a tulajdonságok és módszerek leírása gyakorlatilag megegyezik a rendes változók és eljárások leírásával. A különbségeket vagy az adott felhasználási módot külön-külön tárgyalja. Az Access osztályú modul létrehozásához a következő műveleteket kell végrehajtania az adatbázisablakban:

Insert - Class Module - "Class name"

Meg kell választani egy nevet az osztály számára, amely könnyen felismerhető lesz, és tükrözi az objektumok objektumainak objektumaira vonatkozó információkat.

Osztályos eljárások

Az Access-ban az összes osztály eljárásai három csoportra oszthatók:

  1. eljárások - módszerek
  2. eljárások - tulajdonságok
  3. eljárások - események replikálása

Eljárások - módszerek

Eljárások - Tulajdonságok

Mint tudják, a VBA osztályának meghatározása két részből áll: végrehajtás és felület. Az egyik legnehezebb feladat a programozók számára - kezdő OOP, hogy melyik az osztály tagjai a teendő zárt (amely tartalmazza a végrehajtási szakasz), és amely éppen ellenkezőleg, nyitott (belefoglalni az interfész rész). Az általános szabály az, akkor feltételezhető, hogy minél kisebb a programot tudunk a végrehajtását az osztály, annál jobb, hogy van, kívánatos, hogy elrejtse kulcsszó Private minél több végrehajtási fejezetében az osztály tulajdonságait, és a tulajdonságokat az special Public - .. szervezésére szolgáló módszerek class interface.
Az információk elrejtése (beágyazás) elrejti a funkciók, az osztály vagy a program végrehajtásának részleteit. Az információ eltitkolásának körülményei között a programozó a funkciókat és az osztályokat a fekete dobozokkal működik. Más szavakkal, ha egy függvényt valamilyen értékre adunk egy bemeneti paraméter formájában, akkor a programozó csak az eredményt kapja meg, amely e funkció kimenetén fog megjelenni. Információ elrejtése az osztály végrehajtási részében, és a funkcionális interfészen keresztül történő elérése növeli a program megbízhatóságát. Kétféleképpen hozhat létre tulajdonságokat:

  1. Egyszerűbb egy olyan változóosztály modul létrehozása, amely a Nyilvános kulcsszóban szerepel a leírásban. Így az objektum felhasználója képes lesz beállítani és megkapni az ebben a változóban tárolt értéket. (Más szóval, az ingatlan mind olvasásra, mind írásban elérhető). A változó nevét a programban használt tulajdonság neve határozza meg, ezért az osztálynevekhez hasonlóan a változók tartalmát tükröző neveket kell használnia. Habár a közös tulajdonságok meghatározása a legegyszerűbb módszerekkel történik, számos hátránya van:

A létrehozott osztálynak nincs módja meghatározni, hogy a külső folyamat megváltoztatta-e az ingatlan értékét. Ez negatív szerepet játszhat abban az esetben, ha az értékeket egy bizonyos intervallumra kell korlátozni, vagy egy műveletet végrehajtani kell az érték módosításakor.

Nem szabhat korlátozást az ingatlanértékekre és más adatok érvényesítésére. Például érdemes korlátozni egy személy életkorát képviselő tulajdonság értékét pozitív valós számokra.

Nem hozható létre csak olvasható tulajdonságok. A programok gyakran olyan helyzetekben vannak, ahol vissza kell adni egy tulajdonság értéket anélkül, hogy hozzárendelnék, különösen akkor, ha az ilyen értékek más adatokon alapulnak.

  • Annak érdekében, hogy megbirkózzon ezekkel a hiányosságokkal, használnia kell a második módot egy tulajdonság létrehozásához, nevezetesen egy ingatlan létrehozásához a Tulajdonság eljárással. csak három van: Property Let, Property Set, Property Get. Tekintsük őket részletesebben:

    Tulajdonság Let egy írási eljárás, amely lehetővé teszi egy tulajdonság új értékének hozzárendelését

    [] [Statikus] Tulajdonságnév megadása ([paraméterek listája] érték)
    [BlokOperatorov1]
    [Exit Property]
    [BlokOperatorov2]
    End Property

    A Propertyproperty neve az eljárás megváltoztatására szolgáló eljárás neve. Egyébként kívánatos, hogy a név mindhárom eljárásban megismételhető legyen, ha ugyanazt a tulajdonságot kezelik.

    A Paraméterlista az eljárásban szereplő további paraméterek listája. A paraméterlista szintaxisa pontosan ugyanaz, mint a rendes eljárásban szereplő lista. Ne feledje, hogy mind a három, ugyanannak a névvel rendelkező eljárásnak azonos paraméterlista kell lennie.

    érték a legfontosabb kötelező paraméter, amelynek értéke átkerül az ingatlannak.

    Következőként a Block Operators. amelyben a tényleges érték értékének hozzárendelését szeretné hozzárendelni.

    [] [Statikus] Tulajdonság Get NameProcedure tulajdonságai
    ([Paraméterek listája]) Adatok típusa
    [blockOperators 1]
    [nameProcedure properties = kifejezés]
    [Exit Property]
    [blockOperators 2]
    End Property

    Amint láthatja, a Property Get funkció egy funkció, és a funkciók szintaktikai szabályai működnek. Emlékezz csak egy dologra: a funkció által visszaadott érték típusának meg kell egyeznie a kifejezés érték típusával.

    Egy osztály példányának létrehozása

    Miután meghatározta egy osztályt, megadva több tulajdonságot és módszert, használhatja a VBA programban. De ehhez először létre kell hoznia az osztály új példányát. Nem lehet egyszerűen csak utalhat változók vagy hív egy osztály modul eljárás, tehát úgy, ahogyan egy szabványos modul: VBA ad fordítási hiba „Sub-eljárás vagy függvény nem található”, mivel az lehetőséget találni egy eljárás a globális névtérben nem létezik. Az eljárás "rejtett" marad, amíg létrehoz egy új példányt az osztályból, és ezt csak az instantiált osztálypéldány módszerének nevezheti. Az osztály egy új példányának létrehozásához meg kell adnia egy olyan objektumváltozót, amely az osztály létrehozott példányára való hivatkozást tartalmazza. Az egyéni osztályok hivatkozására használt változók esetében ugyanazok a szabályok érvényesek, mint a VBA objektumokra vagy alkalmazásokra utaló változók esetében. Leírhatók a fenntartott szavak Dim segítségével. Private. Nyilvános és globális. A következő lépés az objektum új példányának létrehozása és a változó mentése. Ehhez használja a Set operátorral együtt az Új kulcsszót.

    Hozzon létre egy példányt az osztályból. A Felhasználói osztály neve. a tmpuser osztály példánynevét.

    Dim tmpuser mint felhasználó
    Állítsa be a tmpuser = Új felhasználót

    Ne feledje, hogy ebben a példában az adattípus a korábban definiált osztály neve. Bár ez a szintaxis tűnhet redundánsnak, az új kulcsot az objektum új példányának létrehozásához az Új kulcsszóban kell megadnia a Szolgáltató kezelőben. Ha ezt nem teszed meg, akkor a VBA végrehajtja a 91-es végrehajtási hibát ("Nincs objektumváltozó vagy változó blokkolva"), amikor valamilyen tulajdonságot vagy módszert próbál alkalmazni erre az osztályra. Az objektum új példányának létrehozásához az objektumváltozó egyszerű leírása a Dim utasítással nem elég.

    Egy osztály implicit instantiálása

    Dim tmpuser új felhasználóként

    Kapcsolódó cikkek