Java anonim iç sınıfı, adı olmayan ve kendisi için yalnızca tek bir nesnenin oluşturulduğu bir iç sınıftır. Anonim bir iç sınıf, bir sınıfın veya arayüzün aşırı yükleme yöntemleri gibi belirli 'ekstralara' sahip bir nesnenin örneğini oluştururken, aslında bir sınıfı alt sınıflamak zorunda kalmadan yararlı olabilir.
Basit bir ifadeyle, adı olmayan bir sınıf, Java'da anonim iç sınıf olarak bilinir. Bir sınıf veya arayüz yöntemini geçersiz kılmanız gerekiyorsa kullanılmalıdır. Java Anonim iç sınıfı iki şekilde oluşturulabilir:
- Sınıf (soyut veya somut olabilir).
- Arayüz
Sınıfı kullanan Java anonim iç sınıf örneği
TestAnonymousInner.java
abstract class Person{ abstract void eat(); } class TestAnonymousInner{ public static void main(String args[]){ Person p=new Person(){ void eat(){System.out.println('nice fruits');} }; p.eat(); } }Şimdi Test Edin
Çıktı:
nice fruits
Verilen kodun dahili çalışması
Person p=new Person(){ void eat(){System.out.println('nice fruits');} };
- Bir sınıf oluşturulur, ancak adı, Person sınıfını genişleten ve eat() yönteminin uygulanmasını sağlayan derleyici tarafından belirlenir.
- Kişi tipinin bir referans değişkeni olan 'p' ile anılan Anonymous sınıfının bir nesnesi oluşturulur.
Derleyici tarafından oluşturulan dahili sınıf
import java.io.PrintStream; static class TestAnonymousInner extends Person { TestAnonymousInner(){} void eat() { System.out.println('nice fruits'); } }
Arayüzü kullanan Java anonim iç sınıf örneği
interface Eatable{ void eat(); } class TestAnnonymousInner1{ public static void main(String args[]){ Eatable e=new Eatable(){ public void eat(){System.out.println('nice fruits');} }; e.eat(); } }Şimdi Test Edin
Çıktı:
Java'nın adlandırma kuralı
nice fruits
Verilen kodun dahili çalışması
Bu kodun arkasında iki ana görevi gerçekleştirir:
Eatable p=new Eatable(){ void eat(){System.out.println('nice fruits');} };
- Bir sınıf oluşturulur, ancak adı Eatable arayüzünü uygulayan ve eat() yönteminin uygulanmasını sağlayan derleyici tarafından belirlenir.
- Anonim sınıfın bir nesnesi, Eatable türünün bir referans değişkeni olan 'p' ile anılan bir nesne oluşturulur.
Derleyici tarafından oluşturulan dahili sınıf
import java.io.PrintStream; static class TestAnonymousInner1 implements Eatable { TestAnonymousInner1(){} void eat(){System.out.println('nice fruits');} }