Java'da anonim sınıflar nedir ve nerelerde kullanılabilirler?
sobes.tech yapay zeka
AI'dan gelen yanıt
Java'da anonim sınıflar, isimleri olmayan yerel sınıflardır. Aynı anda tanımlanıp oluşturulurlar. Genellikle, bir arayüzün tek seferlik bir uygulaması veya soyut veya normal bir sınıfın genişletilmesi gerektiğinde kullanılırlar.
Anonim sınıfların kullanımı:
-
GUI'de olay işleyicileri: Genellikle düğmelere tıklama veya diğer kullanıcı eylemleri için işleyiciler oluşturmak amacıyla kullanılırlar.
// Swing ActionListener ile örnek JButton button = new JButton("Bana tıkla"); button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.out.println("Düğmeye basıldı!"); } }); -
Tek soyut yöntemi olan arayüzlerin (SAM arayüzleri) uygulaması: Lambda ifadeleri ortaya çıkmadan önce, bu tür arayüzler için işlevsellik uygulamanın ana yoluydu.
// Runnable ile örnek new Thread(new Runnable() { @Override public void run() { System.out.println("İş parçacığı başlatıldı"); } }).start(); -
"Hızlı" nesne oluşturma: Var olan bir sınıfın davranışını değiştiren nesneleri hızlıca oluşturmak gerektiğinde, ayrı bir isimlendirilmiş sınıf oluşturmaya gerek kalmadan.
// Soyut sınıfı genişleten örnek AbstractList<String> cityList = new AbstractList<String>() { private String[] cities = {"Moskova", "St. Petersburg"}; @Override public String get(int index) { return cities[index]; } @Override public int size() { return cities.length; } }; System.out.println(cityList.get(0)); // Çıktı: Moskova
Anonim sınıflar, tanımlandıkları alan içinde final veya etkili final olan yerel değişkenlere erişebilirler. Statik üyeleri olamazlar ve soyut veya final olamazlar.