Java Inner Class Nedir?

sametklou

Java Inner Class Nedir?

Java'da inner class, bir başka sınıfın içinde tanımlanan ve dış sınıfın alanlarına erişim yeteneğine sahip olan sınıflardır. Inner class'lar, dış sınıfın alanlarına ve yöntemlerine kolayca erişebilirler ve bu sayede daha modüler ve okunabilir kodlar oluşturabilirler.

Inner class'lar genellikle dış sınıfın özelliklerine özel bir hizmet veya işlev sağlamak için kullanılır. Bu şekilde, kodunuzu daha organize etmek ve bakımını daha kolay hale getirmek için inner class'ları kullanabilirsiniz.

Java Inner Class Türleri

Java'da inner class, dört farklı türde olabilir:

  1. Member Inner Class: Dış sınıfın alanlarına ve yöntemlerine erişebilen en yaygın türdür.
  2. Local Inner Class: Bir yöntemin içinde tanımlanır ve sadece o yöntem içinde erişilebilir.
  3. Anonymous Inner Class: İsimsiz ve ad hoc olarak tanımlanan inner class'tır.
  4. Static Nested Class: Static anahtar kelimesi ile tanımlanan inner class'tır ve dış sınıfın alanlarına erişim yeteneğine sahiptir.

Java Inner Class Örnekleri

Member Inner Class Örneği

public class Outer {
    private int outerField;

    class Inner {
        public void display() {
            System.out.println("Outer Field: " + outerField);
        }
    }
}

public class Main {
    public static void main(String[] args) {
        Outer outer = new Outer();
        Outer.Inner inner = outer.new Inner();
        inner.display();
    }
}

Bu örnekte, Inner sınıfı Outer sınıfının içinde tanımlanmıştır ve outerField alanına erişebilir.

Local Inner Class Örneği

public class Outer {
    public void display() {
        class Inner {
            public void show() {
                System.out.println("Local Inner Class");
            }
        }

        Inner inner = new Inner();
        inner.show();
    }
}

Bu örnekte, Inner sınıfı display yönteminin içinde tanımlanmıştır ve sadece bu yöntem içinde erişilebilir.

Java Inner Class'larını çeşitli senaryolarda kullanarak, kodunuzu daha iyi organize edebilir ve okunabilirliği artırabilirsiniz. Inner class'lar hakkında daha fazla bilgi için Java Inner Class Dokümantasyonu adresini ziyaret edebilirsiniz.