Middle
İç içe sınıfların hangi türleri vardır?
sobes.tech yapay zeka
AI'dan gelen yanıt
Statik iç içe sınıflar ve iç sınıflar (statik olmayan iç içe sınıflar).
-
Statik iç içe sınıflar:
staticanahtar kelimesi ile bildirilirler.- Yalnızca dış sınıfın statik üyelerine (alanlar ve metodlar) erişebilirler, özel üyeler dahil.
- Dış sınıfın statik olmayan üyelerine doğrudan erişimleri yoktur.
- Dış sınıf örneği olmadan örneklenebilirler.
class Outer { private static int staticVar = 10; private int instanceVar = 20; static class StaticNested { void display() { System.out.println("Statik değişken: " + staticVar); // System.out.println("İş instance değişken: " + instanceVar); // Derleme hatası } } } -
İç sınıflar (statik olmayan iç içe sınıflar):
staticanahtar kelimesi olmadan bildirilirler.- Tüm üyelerine (statik ve statik olmayanlar) erişim hakkına sahiptirler, özel üyeler dahil.
- Sadece son sabitler hariç statik üyeler (alanlar veya metodlar) içeremezler.
- Oluşumları için dış sınıfın örneğine ihtiyaç duyarlar.
class Outer { private static int staticVar = 10; private int instanceVar = 20; class Inner { void display() { System.out.println("Statik değişken: " + staticVar); System.out.println("İş instance değişken: " + instanceVar); } } } -
Yerel sınıflar:
- Metodlar, yapıcılar veya başlatma blokları içinde bildirilirler.
- Tüm final ve effectively final yerel değişkenlere ve tanımlandıkları dış sınıfın üyelerine erişebilirler.
- Görünürlükleri, bildirildikleri blokla sınırlıdır.
class Outer { void myMethod() { final int localVar = 5; // Effectively final class LocalInner { void display() { System.out.println("Yerel değişken: " + localVar); } } LocalInner local = new LocalInner(); local.display(); } } -
Anonim sınıflar:
- İsimsiz yerel sınıflar.
- Aynı anda oluşturulup örneklendirilebilirler.
- Sıkça arayüz uygulamaları veya sınıf genişletmeleri yapmak için kullanılırlar.
interface MyInterface { void doSomething(); } class Outer { void myMethod() { MyInterface anon = new MyInterface() { @Override public void doSomething() { System.out.println("İsimsiz şekilde bir şeyler yapılıyor."); } }; anon.doSomething(); } }
Statik iç içe sınıflar ile iç sınıflar arasındaki temel farklar:
| Özellik | Statik iç içe sınıf | İç sınıf |
|---|---|---|
| Anahtar kelime | static |
Yok |
| Üyelere erişim | Yalnızca dış sınıfın statik üyelerine | Tüm dış sınıf üyelerine erişebilir |
| Örnek oluşturma | Dış sınıf örneği olmadan | Dış sınıf örneği gereklidir |
| Statik üyeler | İçerebilir | İçeremez (sadece sabitler hariç) |