Vad är en kapslad klass?
I objektorienterad programmering (OOP) är en kapslad klass en klass som helt ingår i en annan klass. En mängd datorspråk har stöd för denna objektorienterade struktur, inklusive C ++ och Java-programmeringsspråket. Om en kapslad klass inte förklaras statisk kan den också kallas en inre klass. En klass kan innehålla valfritt antal inre klasser, och varje inre klass kan också innehålla sina egna inre klasser. Kapslade klasser kan vara mycket användbara, men de kan också göra klassstrukturer komplicerade snabbt, så det är bäst att de används som en del av en noggrann plan så att de inte blir onödigt komplexa.
En kapslad klass är ofta användbar för att kapsla in små grupper av funktioner eller variabler som är användbara för en annan specifik klass. Till exempel, om klass A innehåller en grupp metoder som endast den använder, kan dessa metoder grupperas i inre klass B. Metoder i den inre klassen har tillgång till den yttre klassens variabler och metoder samtidigt som de behåller sina egna variabler eller konstanter vid behov. En kapslad klass kan användas som antingen en funktionell eller organisatorisk konstruktion; även om det är användbart att kapsla in funktionalitet, är det lika användbart som ett organisationsverktyg. Idealisk användning av inre klasser grupperar både relaterad funktionalitet och organiserar kod för enklare läsbarhet och förståelse.
Kommentarer bör göras på en kapslad klass precis som den görs på den yttre klassen; det är lätt för nybörjare att förväxla inre klasser med metoder och glömma detta. När man kommenterar en kapslad klass är det bäst att man tänker det som en toppklass och att kommentera det i enlighet därmed. Kommentarer om inre klass ger också en möjlighet för programmeraren att klargöra den inre klassens funktionalitet och skälen bakom dess organisationssystem. Flera inre klasser kan existera inom en ytterklass, så det är särskilt viktigt för programmeraren att kommentera var och en tydligt.
Om en kapslad klass inte förklaras statisk måste en instans av den yttre klassen skapas uttryckligen innan en instans av den inre klassen skapas. För inre klasser som förklaras statiska är detta inte sant. En statisk kapslad klass kan vanligtvis skapas med färre tangenttryckningar och kan ha ett större omfattning än en enkel inre klass, så statiska kapslade klasser är användbara för att skapa lättillgängliga verktygsmetoder, till exempel fabriker eller enkla självständiga metoder med breda applikationer.
Det är ofta användbart för utvecklare när kapslade klasser beskrivs med hjälp av Unified Modeling Language. Unified Modelling Language kommenterar och illustrerar klassstrukturen och beteendet på ett entydigt sätt, ofta med hjälp av diagram. Kapslade klasser ges oberoende beskrivningar från de yttre klasserna där de bor, så det är mycket enkelt för deras funktionalitet att identifieras och analyseras. Även om det inte krävs att en kapslad klass antecknas på detta sätt, är det ofta bättre för programmerare att fela på sidan för mer detaljerade.