Middle
Mis on sisemised klassid ja kuidas neid programmeerimisel kasutatakse?
sobes.tech AI
Vastus AI-lt
Sisemised klassid on klassid, mis on deklareeritud teise klassi sees. Need võimaldavad loogiliselt grupeerida klasse, mida kasutatakse ainult ühes kohas, suurendavad kapseldamist ja muudavad koodi loetavamaks.
Sisemised klassid on:
- Statilised (Static Nested Classes): neil puudub juurdepääs välise klassi mitte-staatilistele liikmetele. Neid saab luua ilma välise klassi eksemplarita.
- Mittestaatilised (Inner Classes): neil on juurdepääs kõigile välise klassi liikmetele (sh privaatsed). Mittestaatilise siseklassi eksemplari loomine nõuab välise klassi eksemplari.
Kasutus:
- Rakenduse varjamine: Siseklassi saab kasutada abiklassina, mille rakendusdetailid ei tohiks olla väljast kättesaadavad.
- Grupitamine: Loogiliselt seotud klasside ühendamine.
- Tagasikutsed / kuulajad: Sageli kasutatakse anonüümsete siseklasside loomisel, mis rakendavad liideseid või abstraktseid klasse.
- Iteraatorid: Siseklass on mugav iteratsiooni rakendamiseks, kuna tal on juurdepääs kogumi sisesele olekule.
Näide (Java):
class OuterClass {
private int outerField;
// Statiline siseklass
static class StaticNestedClass {
void print() {
// Ei pääse ligi outerField'ile
System.out.println("From StaticNestedClass");
}
}
// Mittestaatiline siseklass (Inner Class)
class InnerClass {
void print() {
// Pääseb ligi outerField'ile
System.out.println("outerField: " + outerField);
}
}
}
// Statilise siseklassi eksemplari loomine
OuterClass.StaticNestedClass staticNested = new OuterClass.StaticNestedClass();
staticNested.print();
// Sisemise klassi eksemplari loomine
OuterClass outer = new OuterClass();
OuterClass.InnerClass inner = outer.new InnerClass();
inner.print();