A végrehajtási sorrendjét a konstruktőrök

A folyamat létrehozásának célja terjeszteni osztályú virtuális gép memóriát tárolni annak minden területen, beleértve azokat, amelyek örökölt egy alap osztályt, és az utóbbi kap kezdeti alapértelmezett beállítások, amelyek megfelelnek a fajta (O (nulla) - az összes numerikus típusok, hamis - a logikai '\ uOOOO' - a char, és null - objektum hivatkozások). Továbbá az eljárás lehet osztani az alábbi három szakaszból áll:

1) hívja az alap osztály kivitelező;

2) hozzárendelése kiindulási értékeit mezők az objektum által végző inicializálás és megfelelő kifejezések blokkokat;

3) a következő utasítások szerint a kivitelező szervezetben.

Először végeztek explicit vagy implicit utalást az alap osztály konstruktora. Ha végzett egy kifejezett felszólítás a kivitelező a származtatott osztályban a ezt a hivatkozást, mint egy lánc hívásokat a konstruktőrök ennek az osztálynak fut, amíg az utasítások nem található explicit vagy implicit utalást az alap osztály konstruktora, akkor az ilyen és felhívta. alap osztály konstruktora megfelelően kerül végrehajtásra azonos lépések sorozata - a folyamat folytatódik rekurzív véget, amikor eléri az Object osztály konstruktora, mivel nincs további osztály konstruktőrök hierarchia csúcsán. A kifejezések alatt végzett hívás alap osztály konstruktora nem engedélyezett semmilyen utalást a jelenlétét tagjainak az aktuális objektumot.

Végül, futtassa a Constructor kifejeződése a szervezetben. Ha a jelenlegi kivitelező már kifejezetten felszólított, annak befejezésekor, a vezérlés a szervezet kezdeményező a kivitelező, ahol a további utasításokat hajtják végre. Az eljárást addig ismételjük, amíg amíg a vezérlés visszaáll az „eredeti” osztály kivitelező szervezet származékos termék, melynek neve volt megadva szempontjából új.

Ha az eljárás során az építési egy kivételt dob, akkor a virtuális gép befejezi az új kifejezés, generáló ugyanezt a kivételt, és nem tér vissza a várt tárgy referencia. Mint kifejezés egy kifejezett felszólítás a jelenlegi vagy a bázis osztály konstruktor kell lennie az első a szervezetben kezdeményező a tervező, hogy elkapjon egy kivételt dobott hívja a kivitelező, ez lehetetlen. (Ha a nyelv, amely lehetővé teszi az ilyen, nem lenne valószínűséggel tárgyak létrehozását a rossz kiindulási értékhez képest.)

Az alábbiakban egy példát, amely szemlélteti a különböző szakaszaiban a tervezési folyamat egy származtatott osztály objektum.

védett int xMask = 0x00ff;

védett int fullMask;

Ha a tervezés során tárgy hivatkozott módszer, fontos, hogy gondoljunk a műveletek sorrendjét, és megérteni, hogy mi történik az egyes szakaszában a folyamat. Ebben a helyzetben, ha hívja a módszer, mi mindig foglalkozik egy változata a technika tényleges típusú objektum; jelenlétét a területen az objektum által a kezdeti adatokat ebben az időben nem garantált. Például, ha az 5. lépésben X okozna a kivitelező módszer maszk, hogy használja az aktuális érték mező fullMask, egyenlő 0x00ff, de nem 0xFFFF. És ez így van rendjén, de ugyanazt a maszkot módszer, ha az úgynevezett később, befejezése után a folyamat tervezése és meg kellett volna kapnia érték fullMask egyenlő 0xFFFF.

Nézzük, amellett, hogy elképzelhető, hogy az osztályban már újrafogalmazását eljárás maszk - most ő például valósul meg oly módon, hogy azt közvetlenül felhasználjuk a számítástechnikában a mező értéke yMask. Ha X a tervező maszk módszer, ez talán valóban fellebbezni mindkét változat maszk, kijelentette, hogy, és ezen a ponton természetesen yMask mező tartalmazza a 0 érték helyett a várható 0xff00.

Módszerek, hogy hívja a szakaszában az építés a tervezendő objektum nagyon óvatosan, figyelembe véve, hogy milyen megfontolások általunk megnevezett. A tervezők kell kerülni hívja módszerek, amelyek lehetővé teszik a kihagyást. Ellenkező esetben meg kell egyértelműen szerepel a dokumentációban ilyen módszerek figyelmeztetni aki mer definiálja azokat a potenciális problémák merülhetnek fel.

Feladat 3.2. Írja be a szöveget a fenti osztályok X és Y és adjuk hozzá a kifejezést, hogy változni fog a következő lépés a terület értékeit. Állapítsa meg a fő módszer és futtatni, hogy az eredményeket /

Feladat 3.3. Ha a folyamat építése a tárgy kiderült, hogy nehéz beállítani a számértékek maszkok a kiterjesztett osztály a területen, hogyan leküzdeni ezeket a problémákat?

népszerű

Címkefelhő

információ

Kapcsolódó cikkek