Spec-Zone .ru
спецификации, руководства, описания, API
След: Изучение Языка Java
Урок: Классы и Объекты
Раздел: Вложенные Классы
Внутренний Пример Класса
Домашняя страница > Изучение Языка Java > Классы и Объекты

Внутренний Пример Класса

Чтобы видеть внутренний class в использовании, сначала давайте рассматривать массив. В следующем примере мы создадим массив, заполним его целочисленными значениями и затем выведем только значения даже индексов массива в порядке возрастания.

DataStructure class ниже состоит из:


public class DataStructure {
    // create an array
    private final static int SIZE = 15;
    private int[] arrayOfInts = new int[SIZE];
    
    public DataStructure() {
        // fill the array with ascending integer values
        for (int i = 0; i < SIZE; i++) {
            arrayOfInts[i] = i;
        }
    }
    
    public void printEven() {
        // print out values of even indices of the array
        InnerEvenIterator iterator = this.new InnerEvenIterator();
        while (iterator.hasNext()) {
            System.out.println(iterator.getNext() + " ");
        }
    }
    
    // inner class implements the Iterator pattern
    private class InnerEvenIterator {
        // start stepping through the array from the beginning
        private int next = 0;
        
        public boolean hasNext() {
            // check if a current element is the last in the array
            return (next <= SIZE - 1);
        }
        
        public int getNext() {
            // record a value of an even index of the array
            int retValue = arrayOfInts[next];
            //get the next even element
            next += 2;
            return retValue;
        }
    }
    
    public static void main(String s[]) {
        // fill the array with integer values and print out only
        // values of even indices
        DataStructure ds = new DataStructure();
        ds.printEven();
    }
}

Вывод:

0 2 4 6 8 10 12 14 

Отметьте что InnerEvenIterator class обращается непосредственно к arrayOfInts переменная экземпляра DataStructure объект.

Внутренние классы могут использоваться, чтобы реализовать классы помощника как один показанный в примере выше. Если Вы запланируете обработку событий пользовательского интерфейса, то Вы должны будете знать, как использовать внутренние классы, потому что механизм обработки событий делает широкое применение из них.

Локальные и Анонимные Внутренние Классы

Есть два дополнительных типа внутренних классов. Можно объявить внутренний class в пределах тела метода. Такой class известен как локальный внутренний class. Можно также объявить внутренний class в пределах тела метода, не называя это. Эти классы известны как анонимные внутренние классы. Вы встретитесь с такими классами в усовершенствованном программировании Java.

Модификаторы

Можно использовать те же самые модификаторы для внутренних классов, которые Вы используете для других элементов внешнего class. Например, можно использовать спецификаторы доступа — private, public, и protected — ограничить доступ к внутренним классам, как Вы делаете к другим элементам class.


Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Вложенные Классы
Следующая страница: Сводка Вложенных Классов