Osztályok és objektumok Object Pascal

Cím a munka: Osztályok és objektumok Object Pascal

Szakterület: Informatika, kibernetika és programozás

Leírás: Osztályok és objektumok osztályba Object Pascal nevű speciális típusú tartalmazó mezőket, módszerek és tulajdonságait. Mint bármely más típusú osztály csak létrehozni konkrét esetekben a végrehajtás, amelyek úgynevezett tárgyakat. Jobbra, majd.

Fájl mérete: 82.5 KB

Job letöltve: 50 fő.

Osztályba a Object Pascal nevezik speciális típusú tartalmazó mezőket, módszerek és tulajdonságait. Mint bármely más típusú osztály csak létrehozni konkrét esetekben a végrehajtás, amelyek úgynevezett tárgyakat. Azonnal tisztázni, hogy a prekurzor Object Pascal - Turbo Pascal objektum típusok hívják, van egy csomó közös Object Pascal osztályok. ? Azonban figyelemre méltó fejlesztés is történt az objektum modell Object Pascal, kénytelen a fejlesztők, hogy vezessenek be a nyelven jelölést objektum egy speciális kifejezés - osztály, kölcsönzött, mellesleg, a C ++. A kompatibilitás a korábban kidolgozott szoftver rendszer Turbo Pascal Objektumokkal 7.0 Object Pascal tárolt objektum típusú objektum, amely támogatja a „régi” objektum modell. Be? Mivel minden jellemzője ennek a modellnek állnak osztályok, nem vesszük figyelembe azt, és „felszabadítsák” kifejezés kerülő tárgyak kizárólag jelölésére külön eq? Zemplyara osztály megvalósítása.

Egy fontos különbség más típusú osztályok, hogy Ob? Beruházásokba osztályok mindig osztják a kupac, így az objektum változó valójában egy mutató egy di? Trodynamic memória területet. ? Azonban, ellentétben a többi vezető-lei, hivatkozással a tartalmát a tárgy, ne használja a karakter „*” a neve, a tárgy:

MyClass ^ .Field: = 0; // hiba. Meg kell írva a következő:

FOGALMAK

Osztályok - egy különleges „találmány” programozók leegyszerűsítése komplex fejlesztési programok és a minőségük javítására ?. A darazsak? Nove alapján osztályokba három alapelvre, amelyek úgynevezett? Vayutsya tokozás, az öröklés és a polimorfizmus.

beágyazás

Encapsulation egy erőteljes eszköz a megosztás Prep? VYM munkaprogram munkadarabok. Delphi Class Library - valójában egy sor „építőkövei” által létrehozott Borland Misty programokat építeni a programok ?.

öröklés

A származtatott osztály automatikusan örökli a mezőket, módszerek és tulajdonságait a szülő, és tudnak hozzá újakat. Tehát? Idő, az elv öröklés lehetővé teszi a fokozatos megteremtése komplex osztályok és fejlesszék saját osztálykönyvtáraknak.

Az öröklődés elve alapján létrehozását eredményezi az osztályok egy elágazó fa, fokozatosan burjánzó váltásakor TObject utódainak. Minden leszármazottja kiegészíti a po? Türer új, és továbbítja azt az ő leszármazottai.

Például, ábra. Az 1. ábra egy kis darab fa Delphi osztályok. Class TPersistent gazdagítja a képességeit a ro turer TObject :? Ő „tudja”, hogyan kell menteni az adatokat egy fájlt, és kérni őket belőle, aminek eredményeként meg tudja csinálni, és minden leszármazottai. A TComponent osztály, viszont képes kapcsolatba lépni a fejlesztő környezet, és elküldi azt az én leszármazottai. TControl nemcsak képes együttműködni fájlok és szerzői környezetet, de még mindig tudja, hogyan kell létrehozni és fenntartani a képernyőn látható kép? Nia és ő leszármazottja TWinControl létrehozhat Windows ablakok, stb

Osztályok és objektumok Object Pascal

Ábra. 1. töredéke fa osztályok Object Pascal

polimorfizmus

Polimorfizmus - az ingatlan osztályok megoldani hasonló problémákat abban az értelemben, különböző módon. Ennek része a Object Pascal viselkedési? Skie tulajdonságait az osztály által meghatározott sor alakuló Meto? Sorokban. Az algoritmus egy eljárás egy leszármazott osztály, a programozó adhat azoknak leszármazottai hiányoznak Ro? Türer speciális tulajdonságokkal. Ha módosítani módszer alkalmazásához szükséges, hogy blokkolja azt a leszármazottja, azaz állapítsa meg a gyermek a névadó IU? Todd és végrehajtja a szükséges intézkedéseket is. Ennek eredményeként, a szülő objektum és a másolati objektum fog működni két hasonló módszert, különböző algoritmikus keret, és ezáltal kölcsönöz különböző objektumok tulajdonságait. Ez az úgynevezett polimor? -Isomorphism tárgyakat.

A Object Pascal polimorfizmus elérni nem csak a fent leírt mechanizmus öröklési és szülő átfedés módszerek, hanem a virtualizáció (lásd. Alább), amely lehetővé teszi a szülő Meto? 'Ll kapcsolja a módszerek utódaik.

Fields nevezzük adatokat zárt az osztályban. Fields lehet bármilyen típusú, beleértve - osztályok, például:

Minden objektum egy egyedi sor területen, de gyakori, hogy minden tárgy az ebbe az osztályba sor módszerek és tulajdonságait. Funda? Tal elve tokozás hozzáférést igényel mezők csak a módszerek és tulajdonságok az osztály. Azonban, Object Pascal különbség? Meggyűrődött hozzáférési mezők és közvetlenül. Erre a célra az összetevő mezők nevét, amely tartalmazza a nevét, a tárgyat, mint egy pre rögzítés:

aObject.aStrField: = 'string';

Leszármazott osztály kap minden mezőt őseik és lehet akár? Tölti el őket vele, de ő nem írhatja felül és törölheti őket. Tehát az alsó az osztály, annál több adatot kapunk rendjét tárgyak a fa hierarchiában.

Körülzárt egy osztály az eljárások és függvények nevezett módszereket. Nyilvánították őket ugyanúgy, mint a rendszeres rutin:

myfunc függvény (APAR: Integer): egész;

Hozzáférés a módszerek egy osztály, valamint a mezők segítségével lehetséges összetett nevek:

Mint már említettük, osztály módszerek átfednek az? Tomko. Például:

Utódai a két osztály végezhet hasonló eljárás DoWork név szerint. de általában másként csinálnám. Az ilyen szubsztitúciós módszerek úgynevezett statikus, mert Ez hajtja végre a fordító.

Tegyük fel például, a szülő osztály módszerek megjelenítése és elrejtése: rendre mutató valamit a képernyőn, vagy elrejti az ő? Mapping. használja a Draw módszer logikus lehetőség, hogy hozzon létre egy kép:

eljárás Draw (IsShow: logikai érték); virtuális;

eljárás Draw (IsShow: logikai érték); felülbírálhatja;

Végrehajtási módszerek megjelenítése és elrejtése: nagyon egyszerű:

Döntetlen módszerek a szülő és a gyermek különböző implementációk és különböző képeket. Ennek eredményeként, a szülő módszereket mutat és elrejtése fog rejteni vagy bizonyos képeket függően konkrét megvalósítására a Draw eljárás bármely leszármazottja. Dinamikus kötődés teljes mértékben hajtsák végre polimorfizmus osztályok.

Dinamikusan átfedő módszerek gyakran tehetünk semmit. Ezek a módszerek az úgynevezett absztrakt, szükség van rájuk, hogy átfedésben az utódokban. A programozó letilthatja meghívunk egy absztrakt módszer, állapítsa meg az irányelv elvont. Például:

eljárás Draw (IsShow: logikai érték); virtuális; elvont;

eljárás Draw (IsShow: logikai érték); felülbírálhatja;

aVisualObject.Show; // Hiba! Fellebbezés absztrakt módszer

aVisualChild.Show; // egészségkárosodást. Döntetlen módszer az osztályban

A hívást nem átfedi egy absztrakt módszer okoz hibát ne? IRS teljesítményét. Persze, jól szabott program elméleti módszerek nem hívott. Osztályba tartalmazó absztrakt módszereket nevezzük absztrakt. Az ilyen osztályok? Encapsulate általános tulajdonságait utódaik nem elméleti, hanem absztrakt osztályok objektumok nem fognak létrejönni, vagy használt? Biztos. Ahhoz, hogy a absztrakt osztályok a Delphi osztály könyvtár tartalmaz egy osztály-leszármazottai, amelyek átfedik ab? Ha absztrakt módszerek szülő.

Constructor létrehozása (Érték: Egész szám);

Bármely területén a tárgy, valamint osztály módszerek működnek a területeken csak akkor hívható le, miután a tárgy a moslék? Schyu hívja a kivitelező, mert tervezők terjeszteni a tárgy a halom, és nem igazán az objektumban lévő mutatót.

MyObject.IntField: = 0; // Hiba! Az objektum nem jön létre a tervező!

MyObject: = TMyClass.Create; // Meg kell, mint ez: létrehozni egy objektumot

MyObject.IntField: = 0; // és fordítsa az ő területén.

MyObect.Free; // elpusztítani kívánt objektumokat

A legtöbb tervező végre bizonyos tevékenységek nem? Szükségessége megfelelő működését a létesítmény. Ezért konstrukciók? Re leszármazott osztály először hívja a kivitelező a po? Türer, majd végezze el a további műveleteket. Calling bármely átlapolt superclass módszerrel érhető el a fenntartott szó öröklött (öröklött).

Constructor TMyClass.Create (Érték: Egész szám);

// lehetséges megvalósítása a kivitelező

Örökölt létrehozása; // hívás örökölt konstruktor

IntField: = Érték // Az általunk forgalmazott további intézkedéseket

Egyes módszerek nélkül hívható létrehozása és kezdeményező objektumot. Ezek a módszerek az úgynevezett osztály módszerek, ezek be a fenntartott szó osztály ?:

osztálymetódusként GetClassName: String;

működni GetField: egész;

eljárás SetField (Érték: Egész szám);

Az ingatlan IntegerValue Integer olvasni GetField levelet SetField;

A programmal összefüggésben ingatlan viselkedik, mint egy normál területen. Például írhatnánk ilyen nyilatkozatok:

AClass: = TaClass.Create;

mielőtt a területen, vagy ingatlan!>

aClass.Destroy; // rész törlendő objektumot

Sőt, lehetséges, és ezt a feladatot üzemeltetője:

A különbség az üzemeltető és a kezelő

Azt, hogy mikor hozzáférni a tulajdonhoz automatikusan csatlakozik SetField módszer, amely megvalósítható spe? Tsifichnye lépéseket.

Példa: Tekintsük a következő nyilatkozatot

Képaláírás Label tulajdonsága a komponens SetText módszer, amely nem csak tárolja a karakterláncot egy belső változó, hanem végzi a rajz a címke az új szöveget.

Ha nincs szükség különleges intézkedésekre, ha olvasása vagy írása tulajdonságok neve helyett a megfelelő módszer, akkor adja meg a mező nevét:

eljárás SetField (Érték: Egész szám);

Az ingatlan IntegerValue Integer olvasni IntFiled levelet SetField;

Ha szeretné a pályát, hogy csak a chte? Niya, vagy csak a rend kedvéért kell csökkenteni, ennek megfelelően része az írás vagy olvasás. Általánosságban elmondható, hogy az ingatlan nem lehet egy kapcsolat? Vatsya területén. Tény, hogy leírja egy vagy két módszer, hogy valamilyen műveletet végeznek az adatokon az ugyanolyan típusú, mint az ingatlan.

Az újonnan létrehozott osztály tartalmaz négy részre meghatározott? Fissile fenntartott szavak közzé (bejelentett), saját (személyes), védett (védett), és az állami (rendelkezésre áll). Az egyes szakaszokon belül a mező határozza meg az első, majd - a módszerek és tulajdonságok.

A következő kódrészlet szemlélteti a körét.

Felhasználás Controls, űrlapok

Buttonl: TButton; // Ez a rész szolgálja Delphi

// Elemei mindenki számára elérhető

privát // Ez a rész áll rendelkezésre a készülék egység1

eljárás setValue (Érték: Egész szám);

működni getValue: egész;

közzé // Ez a rész áll bármely modul

Az ingatlan IntField: olvasni getValue levelet setValue;

védett // Ez a rész áll rendelkezésre class-leszármazottak

nyilvános // Ez a rész áll bármely modul

Kapcsolódó cikkek