Kaj so anonimni razredi?

Anonimni razredi so razredi, ki jim oseba, ki programira razred, ne dodeli imena. Običajno se uporabljajo, ko poimenovanje razreda ni potrebno, na primer, ko razred ni nič drugega kot zahtevana podmnožica drugega višjega nadrazreda. Prednost programiranja anonimnih razredov je v tem, da dajejo programerju možnost, da poenostavi svojo kodo, zlasti v primerih, ko se anonimni razredi prilegajo več nadrazredom. Velika pomanjkljivost je, da anonimni razredi ne morejo definirati konstruktorjev ali narediti zasebnih, zaščitenih ali statičnih, saj pomanjkanje imena odpravlja te možnosti.

V računalniškem programiranju je razred posplošen objekt, ki se lahko pojavi v poljubnem številu specifičnih primerov. Podobno kot izraz “letalo” na splošno zajema vse vrste enomotornih letal, dvomotornih letal, vojaških letal in potniških plovil, je “razred” v računalniškem smislu generični primerek predmeta. To ni nič drugega kot predloga, ki jo je mogoče po potrebi izpolniti, da ustreza potrebam programerja ali končnega uporabnika. Na primer, ustvarjanje razreda, imenovanega “bicycle”, bi verjetno vključevalo parametre za kolo; z drugimi besedami, velikost in vrsta pnevmatik, število prestav, posebna znamka in model kolesa itd.

Programerji običajno uporabljajo anonimne razrede kot podmnožice nadrazredov, ki so razredi, zgrajeni iz več lastnih razredov. Če nadaljujemo prejšnji primer z razredom “kolo”, bi lahko bil anonimni podrazred tega “pnevmatike”, ki vsebuje informacije o velikosti pnevmatik, znamki itd.

Prednost tega početja je v tem, da bi se anonimni razred “pnevmatik” lahko enako dobro ujemal z nadrazredom “koles” ali nadrazredom “avtomobilov”. Če ga ustvari kot anonimni razred, lahko programer po potrebi lažje ponovno uporabi svoje delo. To prihrani čas in stroške ter olajša razumevanje kode.

Pomanjkljivost je, da brez imena anonimni razredi ne morejo uporabljati enake funkcionalnosti kot poimenovani razredi. Na primer, ne morejo se šteti za zasebne, zaščitene ali omejene razrede. Poleg tega ne morejo uporabiti konstruktorjev, ki so podprogrami, ko se prvič pojavi razred, ki inicializira razred s privzetimi parametri. To pomanjkanje fleksibilnosti je naravni kompromis za preprostost anonimnega razreda.