Mis on anonüümsed klassid?

Anonüümsed klassid on klassid, millele klassi programmeerija ei anna nime. Neid kasutatakse tavaliselt siis, kui klassile nime panemine pole vajalik, näiteks kui klass on midagi muud kui mõne teise kõrgema superklassi nõutav alamhulk. Anonüümsete klasside programmeerimise eeliseks on see, et need annavad programmeerijale võimaluse oma koodi sujuvamaks muuta, eriti juhtudel, kui anonüümsed klassid mahuvad mitmesse superklassi. Suureks puuduseks on see, et anonüümsed klassid ei saa määratleda konstruktoreid ega muuta privaatseid, kaitstud või staatilisi, kuna nime puudumine välistab need võimalused.

Arvutiprogrammeerimises on klass üldistatud objekt, mis võib esineda mis tahes arvul konkreetsetel juhtudel. Sarnaselt sellele, et mõiste “lennuk” hõlmab laias laastus igat tüüpi ühe mootoriga lennukeid, kahe mootoriga lennukeid, sõjalennukeid ja reisilaevu, on “klass” arvutuslikus mõttes objekti üldine eksemplar. See pole midagi muud kui mall, mida saab vastavalt vajadusele täita, et see vastaks programmeerijate või lõppkasutaja vajadustele. Näiteks klassi “jalgratas” loomine hõlmaks tõenäoliselt jalgratta parameetreid; teisisõnu rehvi suurus ja tüüp, käikude arv, konkreetne ratta mark ja mudel jne.

Programmeerijad kasutavad tavaliselt anonüümseid klasse superklasside alamhulkadena, mis on klassid, mis on koostatud mitmest oma klassist. Jätkates eelmist näidet klassiga “jalgratas”, võib selle anonüümne alamklass olla “rehvid”, mis sisaldab teavet rehvi suuruse, kaubamärgi jms kohta.

Selle eeliseks on see, et anonüümne “rehvide” klass sobib sama hästi nii “jalgrataste” kui ka “autode” superklassiga. Luues selle anonüümse klassina, saab programmeerija oma tööd vajadusel lihtsamini taaskasutada. See säästab aega ja kulusid ning muudab koodi palju lihtsamini mõistetavaks.

Puuduseks on see, et ilma nimeta ei saa anonüümsed klassid kasutada nimega klassidega samu funktsioone. Näiteks ei saa neid pidada era-, kaitstud või piiratud klassideks. Lisaks ei saa nad kasutada konstruktoreid, mis on alamprogrammid, kui klass esimest korda ilmub, mis initsialiseerib klassi vaikeparameetritega. Paindlikkuse puudumine on loomulik kompromiss anonüümse klassi lihtsusele.