Mis on pesastatud klass?

Objektorienteeritud programmeerimises (OOP) on pesastatud klass klass, mis sisaldub täielikult teises klassis. Seda objektorienteeritud struktuuri toetavad mitmed arvutikeeled, sealhulgas C++ ja Java programmeerimiskeel. Kui pesastatud klassi ei kuulutata staatiliseks, võib seda nimetada ka siseklassiks. Klass võib sisaldada suvalist arvu sisemisi klasse ja iga sisemine klass võib sisaldada ka oma sisemisi klasse. Pesastatud klassid võivad olla väga kasulikud, kuid võivad ka klassistruktuurid kiiresti keeruliseks muuta, mistõttu on parem neid kasutada hoolika plaani osana, et need ei muutuks asjatult keerukaks.

Pesastatud klass on sageli abiks väikeste funktsioonide või muutujate rühmade kapseldamiseks, mis on kasulikud mõnele teisele konkreetsele klassile. Näiteks kui klass A sisaldab meetodite rühma, mida ainult ta kasutab, saab need meetodid rühmitada sisemisse klassi B. Sisemise klassi meetoditel on juurdepääs välimise klassi muutujatele ja meetoditele, säilitades samal ajal vajaduse korral oma muutujad või konstandid. Pesastatud klassi saab kasutada kas funktsionaalse või organisatsioonilise konstruktsioonina; Kuigi funktsionaalsust on kasulik kapseldada, on see sama kasulik ka organisatsioonilise tööriistana. Siseklasside ideaalne kasutamine koondab omavahel seotud funktsionaalsused ja korraldab koodi hõlpsamaks loetavuse ja mõistmise huvides.

Kommenteerimine peaks toimuma pesastatud klassi puhul samamoodi nagu välimise klassi puhul; algajatel on lihtne siseklassid meetoditega segi ajada ja see unustada. Pesastatud klassi kommenteerimisel on kõige parem pidada seda tippklassiks ja seda vastavalt kommenteerida. Siseklassi kommentaarid annavad programmeerijale ka võimaluse selgitada sisemise klassi funktsionaalsust ja selle organisatsioonilise skeemi taga olevat põhjendust. Ühes välisklassis võib eksisteerida mitu sisemist klassi, seega on programmeerija jaoks eriti oluline neid selgelt kommenteerida.

Kui pesastatud klassi ei kuulutata staatiliseks, tuleb enne sisemise klassi eksemplari loomist selgesõnaliselt luua välimise klassi eksemplar. Sisemiste klasside puhul, mis on kuulutatud staatiliseks, pole see tõsi. Staatilise pesastatud klassi saab tavaliselt luua vähemate klahvivajutustega ja sellel võib olla laiem ulatus kui lihtsal sisemisel klassil, seega on staatilised pesastatud klassid kasulikud hõlpsasti juurdepääsetavate utiliitmeetodite (nt tehased või lihtsad iseseisvad meetodid, millel on laiad rakendused) loomiseks.

Arendajatele on sageli abi, kui pesastatud klasse kirjeldatakse ühtse modelleerimiskeele abil. Ühtne modelleerimiskeel märgib ja illustreerib klassi struktuuri ja käitumist üheselt mõistetavalt, kasutades sageli diagramme. Pesastatud klassidele antakse sõltumatud kirjeldused välistest klassidest, milles nad asuvad, nii et nende funktsionaalsust on väga lihtne tuvastada ja analüüsida. Kuigi pesastatud klassile ei nõuta sel viisil märkusi, on sageli parem, kui programmeerijad eksivad suuremate üksikasjade osas.