Vad är anonyma klasser?

Anonyma klasser är klasser som inte tilldelas ett namn av den som programmerar klassen. De används vanligtvis när det är onödigt att namnge klassen, till exempel när klassen inte är mer än en obligatorisk delmängd av en annan högre superklass. Fördelen med att programmera anonyma klasser är att de ger programmeraren en chans att effektivisera sin kod, speciellt i fall där de anonyma klasserna passar in i flera superklasser. En stor nackdel är att anonyma klasser inte kan definiera konstruktörer eller göras privata, skyddade eller statiska, eftersom avsaknaden av ett namn eliminerar dessa möjligheter.

I datorprogrammering är en klass ett generaliserat objekt som kan förekomma i valfritt antal specifika instanser. Ungefär som termen ”flygplan” i stort sett täcker alla typer av enmotoriga plan, tvåmotoriga plan, militära flygplan och passagerarfarkoster, är en ”klass” i datortermer en generisk förekomst av ett objekt. Det är inget annat än en mall som kan fyllas i efter behov för att passa programmerarnas eller slutanvändarens behov. Att till exempel skapa en klass som heter ”cykel” skulle sannolikt innehålla parametrarna för en cykel; med andra ord, däckstorlek och typ, antalet växlar, det specifika märket och modellen på cykeln och så vidare.

Programmerare använder vanligtvis anonyma klasser som delmängder av superklasser, som är klasser konstruerade av flera egna klasser. Om vi ​​fortsätter med det föregående exemplet med klassen ”cykel”, kan en anonym underklass av det vara ”däck”, som innehåller information om däckstorlek, märke och så vidare.

Fördelen med att göra detta är att den anonyma klassen av ”däck” lika väl kan passa in i en superklass av ”cyklar” eller en superklass av ”bilar”. Genom att skapa den som en anonym klass kan programmeraren lättare återanvända sitt arbete vid behov. Detta sparar tid och kostnader och gör koden mycket lättare att förstå.

En nackdel är att utan ett namn kan anonyma klasser inte använda samma funktionalitet som namngivna klasser. Till exempel kan de inte anses vara privata, skyddade eller begränsade klasser. Dessutom kan de inte använda konstruktorer, som är subrutiner när klassen först dyker upp som initierar klassen med standardparametrar. Denna brist på flexibilitet är den naturliga avvägningen för enkelheten hos en anonym klass.