Junior — Middle
Kāda ir atšķirība starp iekšējo klasi un iekļauto klasi programmēšanā?
sobes.tech AI
Atbilde no AI
Java (un Android) Iegremdētā klase ir jebkura klase, kas deklarēta citas klases iekšienē. Iegremdētās klases ir divu veidu:
- Statiska iegrimda klase (static nested class) — deklarēta ar
staticmodifikatoru. Tai tieši nepieļauj piekļuvi ārējās klases nestatiskajiem locekļiem. - Iekšējā klase (inner class) — klase bez
staticmodifikatora. Tā ir saistīta ar ārējās klases instanci un piekļūst tās nestatiskajiem laukiem un metodēm.
Piemērs:
class Outer {
private int outerField = 10;
static class StaticNested {
void print() {
// Nav iespējams tieši piekļūt outerField
System.out.println("Statiska iekšējā klase");
}
}
class Inner {
void print() {
// Var piekļūt outerField
System.out.println("Iekšējā klase, outerField = " + outerField);
}
}
}
Galvenā atšķirība ir tā, ka iekšējā klase ir saistīta ar ārējās klases objektu un var piekļūt tās nestatiskajiem locekļiem, bet statiskā iekšējā klase — nē.