Middle
İç sınıflar nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
İç içe sınıf, başka bir sınıfın içinde tanımlanmış olan sınıftır.
Java'da iç içe sınıf türleri:
-
Statik İç İçe Sınıflar (Static Nested Classes):
- Dış sınıfın örneği olmadan erişilebilir.
- Dış sınıfın statik olmayan alanlarına ve metodlarına doğrudan erişemezler.
staticanahtar kelimesi ile tanımlanırlar.
-
İç Sınıflar (Inner Classes):
- Üye iç sınıflar (Member Inner Classes):
- Dış sınıfın üye seviyesinde tanımlanırlar.
- Dış sınıfın tüm üyelerine (özel dahil) erişebilirler.
- Kendilerine ait örneği oluşturmak için dış sınıfın örneğine ihtiyaç duyarlar.
- Yerel iç sınıflar (Local Inner Classes):
- Bir metodun, yapıcının veya başlatma bloğunun içinde tanımlanırlar.
- Sadece bu metodun/blokun içinde görünürler.
- Dış bağlamdaki
finalveya etkilifinalyerel değişkenlere erişebilirler.
- Anonim iç sınıflar (Anonymous Inner Classes):
- İsimsiz sınıflardır.
- Bir arayüzü hemen uygulayan veya bir sınıfı genişleten nesneler oluşturmak için kullanılırlar.
- Bir işlemde tanımlanıp örneklendirilebilirler.
- Üye iç sınıflar (Member Inner Classes):
Statik iç içe sınıf örneği:
class OuterClass {
private static String msg = "Hello from Outer";
static class StaticNestedClass {
public void display() {
// Dış sınıfın statik üyelerine erişebilir
System.out.println(msg);
}
}
}
// Kullanım
// OuterClass.StaticNestedClass nestedObject = new OuterClass.StaticNestedClass();
// nestedObject.display();
Üye iç sınıf örneği:
class OuterClass {
private String msg = "Hello from Outer";
class InnerClass {
public void display() {
// Tüm dış sınıf üyelerine erişebilir
System.out.println(msg);
}
}
}
// Kullanım
// OuterClass outerObject = new OuterClass();
// OuterClass.InnerClass innerObject = outerObject.new InnerClass();
// innerObject.display();
İç içe sınıfların kullanmanın avantajları:
- Gruplama: Mantıksal olarak ilişkili sınıflar gruplanabilir.
- Kapsülleme: İç sınıflar, dış sınıfın özel üyelerine erişebilir, böylece kapsülleme artar.
- Okunabilirlik ve bakım: Yardımcı sınıflar ana sınıfın içinde gizlenir.
- Verimlilik: Daha kompakt ve verimli veri yapıları oluşturmak için kullanılabilirler.