Junior
İç içe sınıflar nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
İç içe sınıflar, başka bir sınıfın içinde tanımlanan sınıflardır. İki ana türe ayrılırlar: statik iç içe sınıflar (sınıfın statik üyeleri) ve iç sınıflar (statik olmayan üyeler).
Statik iç içe sınıflar:
- Dış sınıfla ilişkilidir, örneğin örneğiyle değil.
- Sadece dış sınıfın statik üyelerine erişebilirler.
- Dış sınıf örneği olmadan oluşturulabilirler.
İç sınıflar:
- Dış sınıfın bir örneğiyle ilişkilidirler.
- Dış sınıfın tüm üyelerine (statik ve statik olmayanlar) erişebilirler, private dahil.
- Oluşturulmak için dış sınıfın bir örneğine ihtiyaç duyarlar.
Kullanım örnekleri:
- Gruplama: Mantıksal olarak ilişkili sınıflar, kodun okunabilirliğini ve organizasyonunu artırmak için bir araya getirilebilir.
- Kapsülleme: İç sınıflar, dış sınıfın özel üyelerine erişebilir, böylece uygulama detaylarını kapsüller.
- Olay dinleyicileri (Java): Genellikle anonim iç sınıflar oluşturmak için kullanılır.
- Yardımcı sınıflar: Sadece dış sınıf tarafından kullanılan küçük sınıflar.
// Statik iç içe sınıf örneği
class OuterClass {
static int outerStaticField = 1;
int outerInstanceField = 2;
static class StaticNestedClass {
void display() {
System.out.println("Dış statik alan: " + outerStaticField);
// outerInstanceField'a doğrudan erişilemez
}
}
}
// İç sınıf örneği
class AnotherOuterClass {
int outerField = 10;
class InnerClass {
void display() {
System.out.println("Dış alan: " + outerField); // Dış sınıf alanına erişim
}
}
}
Karşılaştırma Tablosu:
| Özellik | Statik iç içe sınıf | İç sınıf |
|---|---|---|
| İlişki | Dış sınıfla | Dış sınıfın bir örneğiyle |
| Dış üyeler erişimi | Sadece statik | Tüm üyeler (private dahil) |
| Örnek gerektirir | Hayır | Evet |
| Statik üyeler içerebilir | Evet | Hayır (sadece sabitler) |