Skip to main content

Hvad er en anonym indre klasse?

I objektorienteret computerprogrammering er en anonym indre klasse en klasse, der er erklæret inde i en metode, men ikke navngives.En anonym indre klasse har flere begrænsninger, der gør den anderledes end en normal klasse, herunder en begrænsning af omfanget af de variabler, den kan få adgang til.Der er nogle meget specifikke situationer, hvor brug af en anonym indre klasse kan gøre kildekoden mere læsbar, men det bruges primært til at hjælpe(OOP), at et objekt og dets komponenter på en eller anden måde skal beskyttes og bundet til objektet.Anonyme indre klasser og indre klasser generelt hjælper med at realisere indkapsling for særligt komplekse genstande.I stedet for at skulle skabe en klasse, der er afhængig af en separat ekstern klasse, der binder dem kunstigt og potentielt udsætter nogle af komponenterne, kan en anonym indre klasse binde de to sammen solidt.

På nogle programmeringssprog kan en anonym indre klasseHjælp til at overvinde begrænsningerne i en enkelt arv.Hvis et objekt arver fra en klasse, men derefter har brug for at få adgang til en anden, kan en indre klasse genereres på farten og derefter sendes til de passende håndterere.Denne teknik er almindelig med tilbagekald og begivenhedslyttere.Det eneste alternativ ville være at skabe en hel anden klasse, hvor kun en eller to metoder tilsidesættes.

Anonyme indre klasser har nogle begrænsninger på plads for at forhindre brud på indkapsling og for at håndhæve omfang.Den primære begrænsning er, at en anonym indre klasse ikke kan få adgang til variabler af den metode, hvori den ligger, medmindre disse variabler erklæres som endelige.Dette skyldes, at den indre klasse kunne fortsætte med at fungere ud over livet i klassen og metoden, hvor den hekker.Variablerne i indpakningsklassen ville blive ødelagt, når dens levetid var forbi, så referencerne den indre klasse, der blev afholdt, ville blive øjeblikkeligt ugyldige.Den eneste undtagelse fra dette er en endelig variabel, fordi den vil eksistere ud over forekomsten.

En af de mere specifikke anvendelser til en anonym indre klasse er kodebeskyttelse.Mange OOP -sprog sørger for en mekanisme kaldet refleksion.Reflektion giver et program mulighed for at dissekere en anden klasse og se, hvad dets medlemsvariabler og metoder er, men ikke selve koden.Ved at bruge en anonym indre klasse er indholdet af den indre klasse beskyttet mod refleksion, og den indre funktion i den større klasse kan effektivt skjules.