Objektiniame programavime (OOP) įdėta klasė yra klasė, kuri visiškai yra kitoje klasėje. Įvairios kompiuterių kalbos palaiko šią objektinę struktūrą, įskaitant C++ ir Java programavimo kalbą. Jei įdėta klasė nėra paskelbta statine, ji taip pat gali būti vadinama vidine klase. Klasėje gali būti bet koks vidinių klasių skaičius, o kiekvienoje vidinėje klasėje taip pat gali būti savo vidinių klasių. Įdėtos klasės gali būti labai naudingos, tačiau jos taip pat gali greitai sukomplikuoti klasių struktūras, todėl geriausia jas naudoti kaip kruopštaus plano dalį, kad jos netaptų bereikalingai sudėtingos.
Įdėta klasė dažnai yra naudinga norint įtraukti mažas funkcijų ar kintamųjų grupes, kurios yra naudingos kitai konkrečiai klasei. Pavyzdžiui, jei A klasėje yra tik ji naudojamų metodų grupė, šiuos metodus galima sugrupuoti į vidinę klasę B. Vidinės klasės metodai turi prieigą prie išorinės klasės kintamųjų ir metodų, prireikus išlaikant savo kintamuosius arba konstantas. Įdėta klasė gali būti naudojama kaip funkcinė arba organizacinė konstrukcija; Nors naudinga įtraukti funkcionalumą, jis taip pat naudingas kaip organizacinis įrankis. Idealus vidinių klasių naudojimas sugrupuos susijusias funkcijas ir sutvarkys kodą, kad būtų lengviau skaityti ir suprasti.
Komentuoti įdėtoje klasėje taip pat, kaip ir išorinėje klasėje; pradedantiesiems lengva supainioti vidines klases su metodais ir tai pamiršti. Komentuojant įdėtą klasę, geriausia, kad ji būtų laikoma aukščiausio lygio klase ir atitinkamai komentuotų. Vidinės klasės komentarai taip pat suteikia galimybę programuotojui išsiaiškinti vidinės klasės funkcionalumą ir jos organizacinės schemos pagrindimą. Vienoje išorinėje klasėje gali egzistuoti kelios vidinės klasės, todėl programuotojui ypač svarbu kiekvieną aiškiai pakomentuoti.
Jei įdėta klasė nėra paskelbta statine, išorinės klasės egzempliorius turi būti aiškiai sukurtas prieš sukuriant vidinės klasės egzempliorių. Vidinėms klasėms, kurios paskelbtos statinėmis, tai netiesa. Statinė įdėta klasė paprastai gali būti sukurta naudojant mažiau klavišų paspaudimų ir gali turėti platesnę taikymo sritį nei paprasta vidinė klasė, todėl statinės įdėtos klasės yra naudingos kuriant lengvai pasiekiamus naudingumo metodus, pvz., gamyklas arba paprastus savarankiškus metodus su plačiomis programomis.
Kūrėjams dažnai naudinga, kai įdėtos klasės aprašomos naudojant vieningą modeliavimo kalbą. Vieninga modeliavimo kalba anotuoja ir iliustruoja klasės struktūrą ir elgesį vienareikšmiškai, dažnai naudodama diagramas. Įdėtoms klasėms suteikiami nepriklausomi aprašymai nuo išorinių klasių, kuriose jos yra, todėl labai lengva atpažinti ir analizuoti jų funkcionalumą. Nors įdėtos klasės nereikia komentuoti tokiu būdu, programuotojams dažnai geriau klysti dėl išsamesnės informacijos.