Skip to main content

Mi az a névtelen belső osztály?

Az objektum-orientált számítógépes programozásban egy névtelen belső osztály egy olyan osztály, amelyet egy módszer belsejében deklarálnak, de nem nevezett.Az anonim belső osztálynak számos korlátozása van, amelyek különböznek a normál osztálytól, ideértve a hozzáférhető változók korlátozását is.Vannak olyan nagyon specifikus helyzetek, amelyekben egy névtelen belső osztály használata a forráskódot olvashatóbbá teheti, de elsősorban a beágyazás végrehajtásának elősegítésére szolgál, ahol a különálló osztályok generálása bonyolíthatja azt.(OOP), hogy egy objektumnak és alkotóelemeinek valamilyen módon védve kell lennie, és az objektumhoz kötődni kell.Az anonim belső osztályok és általában a belső osztályok segítenek a különösen összetett tárgyak kapszulázásának megvalósításában.Ahelyett, hogy olyan osztályt kellene létrehoznunk, amely különálló külsőre támaszkodik, mesterségesen köti össze őket, és néhány összetevő egy részét feltárja, egy névtelen belső osztály szilárdan összekapcsolhatja a kettőt.Segítsen leküzdeni az egyetlen öröklés korlátozásait.Ha egy objektum az egyik osztályból örököl, de a másikhoz hozzá kell férnie, akkor egy belső osztály generálható menet közben, majd átadhatja a megfelelő kezelőnek.Ez a technika gyakori a visszahívásokkal és az eseményhallgatókkal.Az egyetlen alternatíva egy teljes második osztály létrehozása, amelyben csak egy vagy két módszert felülbírálnak.Az elsődleges korlátozás az, hogy egy névtelen belső osztály csak akkor férhet hozzá annak a módszernek a változóihoz, amelyben lakik, kivéve, ha ezeket a változókat véglegesnek nyilvánítják.Ennek oka az, hogy a belső osztály továbbra is működhet azon az osztályon, amelyben fészkel.A csomagolási osztály változóit megsemmisítik, amint az élete véget ért, tehát a belső osztály referenciái azonnal érvénytelenek lesznek.Az egyetlen kivétel ez alól a végső változó, mivel a példányon túl is létezik.

A névtelen belső osztály egyik konkrétabb felhasználása a kódvédelem.Számos OOP nyelv biztosítja a reflexiónak nevezett mechanizmust.A reflexió lehetővé teszi egy program számára, hogy boncoljon egy másik osztályt, és megnézze, mi a tagváltozó és módszer, de nem maga a kód.Anonim belső osztály használatával a belső osztály tartalma védi a reflexiótól, és a nagyobb osztály belső működése hatékonyan elrejthető.