Hvad er en nestet klasse?
I objektorienteret programmering (OOP) er en indlejret klasse en klasse, der er helt indeholdt i en anden klasse. En række computersprog understøtter denne objektorienterede struktur, herunder C ++ og Java-programmeringssprog. Hvis en indlejret klasse ikke erklæres statisk, kan den også kaldes en indre klasse. En klasse kan indeholde et hvilket som helst antal indre klasser, og hver indre klasse kan også indeholde sine egne klasser. Indlejrede klasser kan være meget nyttige, men de kan også gøre klassestrukturer kompliceret hurtigt, så det er bedst for dem at blive brugt som en del af en omhyggelig plan, så de ikke bliver unødigt komplekse.
En indlejret klasse er ofte nyttigt til at indkapsle små grupper af funktioner eller variabler, der er nyttige til en anden bestemt klasse. Hvis klasse A for eksempel indeholder en gruppe af metoder, som kun den bruger, kan disse metoder grupperes i indre klasse B. Metoder inde i den indre klasse har adgang til den ydre klasses variabler og metoder, mens de opretholder deres egne variabler eller konstanter efter behov. En indlejret klasse kan bruges som enten en funktionel eller organisatorisk konstruktion; mens det er nyttigt at indkapsle funktionalitet, er det lige så nyttigt som et organisatorisk værktøj. Ideel brug af indre klasser vil både gruppere relateret funktionalitet og organisere kode for lettere læsbarhed og forståelse.
Kommentarer skal ske på en indlejret klasse, ligesom det foregår på den ydre klasse; det er let for begyndere at forveksle indre klasser med metoder og glemme dette. Når man kommenterer en indlejret klasse, er det bedst for det at blive betragtet som en topklasse og kommentere den i overensstemmelse hermed. Kommentarer til den indre klasse giver også en mulighed for programmereren til at afklare den indre klasses funktionalitet og rationalet bag dets organisatoriske skema. Der kan findes flere indre klasser inden for en ydre klasse, så det er især vigtigt for programmereren at kommentere hver enkelt.
Hvis en indlejret klasse ikke erklæres statisk, skal der eksplicit oprettes en forekomst af den ydre klasse, før der oprettes en forekomst af den indre klasse. For indre klasser, der erklæres for statiske, er dette ikke sandt. En statisk indlejret klasse kan normalt oprettes med færre tastetryk og kan have et større omfang end en simpel indre klasse, så statiske indlejrede klasser er nyttige til at oprette brugervenlige metoder, der er nemme at få adgang til, såsom fabrikker eller enkle selvstændige metoder med brede applikationer.
Det er ofte nyttigt for udviklere, når indlejrede klasser beskrives ved hjælp af Unified Modelling Language. Unified Modelling Language kommenterer og illustrerer klassestruktur og adfærd på en utvetydig måde, ofte ved hjælp af diagrammer. Indlejrede klasser får uafhængige beskrivelser fra de ydre klasser, de befinder sig i, så det er meget let for deres funktionalitet at blive identificeret og analyseret. Selvom det ikke kræves, at en indlejret klasse annoteres på denne måde, er det ofte bedre for programmerere at fejle på siden med større detaljer.