• Buradasın

    Inner ve nested class farkı nedir?

    Yazeka

    Arama sonuçlarına göre oluşturuldu

    Inner (iç) ve nested (iç içe) class kavramları, Java'da benzer ancak farklı anlamlar taşır:
    • Inner class, bir sınıfın içinde tanımlanan ve o sınıfın bir üyesi olan non-static (statik olmayan) bir class türüdür 12. Bu tür bir class, dıştaki sınıfın instance değişkenlerine erişebilir ve dıştaki sınıfın bir nesnesi oluşturulduğunda otomatik olarak oluşturulur 4.
    • Nested class ise, tamamen bağımsız olan ve dıştaki class'tan farklı bir class türüdür 1. Dıştaki class'ın içinde tanımlansa da, kendi başına var olabilir ve dıştaki class'ın üyelerine (fields ve methods) doğrudan erişebilir, hatta bunlar private olsa bile 14.
    5 kaynaktan alınan bilgiyle göre:

    Konuyla ilgili materyaller

    Inner class ne işe yarar?

    Inner class'ın (dahili sınıf) bazı kullanım amaçları: Mantıksal bütünlük: Bir sınıfın varlığı başka bir sınıfa bağlıysa, tek başına var olması mümkün değilse, iç içe sınıflar kullanılabilir. Kodun okunabilirliği: Bir sınıf sadece tek bir sınıf tarafından kullanılacaksa, inner class olarak tanımlamak kodu okumayı kolaylaştırır. Adapter pattern: Çok metod içeren interface'ler için adapter sınıfları yazılabilir. Thread yaratımı: Java'da thread yaratımında kullanılabilir. Inner classlar arka planda static olarak tutulmazlar, bu yüzden bu sınıflara erişebilmek için dış sınıfın bir nesnesinin oluşturulması gerekir.

    Java'da inner class nasıl yapılır?

    Java'da inner class (iç içe sınıf) oluşturmak için aşağıdaki adımlar izlenir: 1. Dış sınıf (outer class) oluşturma: `public class OuterClass { // sınıf tanımları }`. 2. İç sınıf (inner class) tanımlama: `public class OuterClass { class InnerClass { // iç sınıf tanımları } }`. 3. İç sınıf nesnesi oluşturma: Dış sınıf nesnesi oluşturulduktan sonra, iç sınıf nesnesi oluşturulabilir. `OuterClass outer = new OuterClass(); OuterClass.InnerClass inner = outer.new InnerClass();`. Kullanım türleri: Statik iç sınıflar (static inner class): Dış sınıfın nesnesine ihtiyaç duymadan kullanılabilir. Statik olmayan iç sınıflar (non-static inner class): Dış sınıfın hem statik hem de non-static değişkenlerine erişebilir. Yerel iç sınıflar (local inner class): Sadece tanımlandığı metod içinde erişilebilir. Anonim iç sınıflar (anonymous inner class): Tek satırda tanımlanabilir.