Page 95 - 6253
P. 95

new Outer();

                     }

                    }

                    Запустивши програму на виконання отримаємо наступний результат:

                    Значення outer_x: 0

                    Значення outer_x: 1

                    Значення outer_x: 2

                    Значення outer_x: 3

                    Значення outer_x: 4

                    Такі класи зустрічаються досить рідко і мають велику кількість обмежень: 1)

            вони  видимі  тільки  у  межах  блоку,  в  якому  оголошені;  2)  вони  не  можуть  бути

            оголошені з модифікаторами private, public, protected або static; 3) вони не можуть

            мати статичних членів, окрім констант оголошених як static final.


                    Анонімні внутрішні класи

                    Працюючи з локальними внутрішніми класами, можна використати ще одну


            їх цікаву властивість. Якщо необхідно створити один єдиний екземпляр цього класу,
            то  його  ім’я  можна  опустити.  Такий  клас  називається  безіменним  або  анонімним


            внутрішнім класом.
                    Будь-які  параметри,  необхідні  для  створення  об'єкту  анонімного  класу,


            задаються в круглих дужках, що йдуть за іменем супертипу. В загальному випадку

            синтаксис оголошення анонімного класу виглядає наступним чином:

                    new Супертип(список_параметрів)

                    {

                     // тіло класу

                    };

                    Супертип – це ім’я інтерфейсу, який реалізує анонімний клас, або ім’я класу

            від  якого  він  наслідує.  Розглянемо  програму,  що  демонструє  використання

            анонімного класу.

                    // Використання анонімного класу

                    abstract class Outer {


                                                              94
   90   91   92   93   94   95   96   97   98   99   100