Sobes.tech
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.
    • static anahtar 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 final veya etkili final yerel 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.

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.