Sobes.tech
Junior

Java-da anonim siniflər nədir və harada tətbiq oluna bilər?

sobes.tech Süni İntellekt

AI-dan cavab

Java-da anonim sinflar, adı olmayan yerli sinflardır. Eyni zamanda elan edilir və yaradılırlar. Adətən, bir interfeys üçün tək istifadəlik tətbiq və ya abstrakt və ya adi sinfin genişləndirilməsi lazım olduqda istifadə olunur.

Anonim sinfların tətbiqləri:

  • GUI-də hadisə emalçıları: Tez-tez düymələrə və ya digər istifadəçi fəaliyyətlərinə klik emalçıları yaratmaq üçün istifadə olunur.

    // Swing ActionListener ilə nümunə
    JButton button = new JButton("Mənə kliklə");
    button.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            System.out.println("Düymə basıldı!");
        }
    });
    
  • Bir abstrakt metod ilə interfeyslərin tətbiqi (SAM interfeyslər): Lambda ifadələri ortaya çıxmazdan əvvəl, bu cür interfeyslər üçün funksionallıq tətbiq etmək üçün əsas üsul idi.

    // Runnable ilə nümunə
    new Thread(new Runnable() {
        @Override
        public void run() {
            System.out.println("İş parçacı işə salındı");
        }
    }).start();
    
  • "İş vaxtı" obyektlərin yaradılması: Mövcud sinifə dəyişdirilmiş davranış ilə sürətlə obyekt yaratmaq lazım olduqda, ayrıca adlandırılmış sinf yaratmağa ehtiyac olmadan.

    // Abstrakt sinfi genişləndirmə nümunəsi
    AbstractList<String> cityList = new AbstractList<String>() {
        private String[] cities = {"Moskva", "Sankt-Peterburq"};
    
        @Override
        public String get(int index) {
            return cities[index];
        }
    
        @Override
        public int size() {
            return cities.length;
        }
    };
    System.out.println(cityList.get(0)); // Çıxış: Moskva
    

Anonim sinflar, elan olunduğu yerdə final və ya effektiv final olan yerli dəyişənlərə giriş edə bilər. Onlar statik üzvlərə malik ola bilməz və abstract və ya final ola bilməzlər.