Sobes.tech
Junior

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.