Отправляет email-рассылки с помощью сервиса Sendsay

Программирование в среде Java

  Все выпуски  

Программирование в среде Java


Служба Рассылок Subscribe.Ru проекта Citycat.Ru

            Наследование классов. Модификаторы final, static
                           (продолжение).

  Предположим что мы проектируем некий базовый класс и по каким либо
  причинам хотим чтобы какой-то метод этого класса не мог быть
  переопределен в наследуемых классах. Java предоставляет такую
  возможность путем добавления аттрибута final перед описанием метода.

   Пример:

  class A {
        int a;

        final int geta () {
              return a;
        }
  }

  Этот же аттрибут может быть применен к данным. Поля с аттрибутом final
  являются константами, т.е. не могут быть изменены по ходу выполнения
  программы.

  class modern {
        final int YearWasWritten = 2001;
  }

  Имейте в виду что понятие константы здесь существует в классе, т.е.
  константа появляется в момент создания экземпляра класса и является
  частью экземпляра, ее нет ни до создания экземпляра ни после его удаления.

  Давайте теперь представим ситуацию когда нам нужно предоставить какие-то
  данные или методы, которые мы не хотим связывать ни с одним объектом.
  Для этих целей в Java есть аттрибут static. Поля и методы объявленные
  с аттрибутом static нызываются статическими (поля и методы класса).
  Статические поля и методы определяются в момент объявления класса, для
  обращения к ним не обязательно создавать экземпляр класса, к ним
  можно обращаться по имени класса, они едины для всех экземпляров своего
  класса.

    Пример:

  class Cards {
        static SPADES   = 1;
        static CLUBS    = 2;
        static DIAMONDS = 3;
        static HEARTS   = 4;
  }

  Cards MyCards;

  Здесь я объявил класс Cards и его экземпляр MyCards. К статическим полям
  класса Cards (а я объявил только такие)
  можно обратиться как Cards.SPADES так и MyCards.SPADES и т.п., в обоих
  случаях мы обращаемся к одним и тем же данным. Изменение статических полей
  соответственно приводит к изменению данных во всех экземплярах класса.
  Если для класса Cards желательно чтобы SPADES, CLUBS, DIAMONDS, HEARTS
  представляли константы можно добавить аттрибут final.
  class NewCards {
        final static SPADES   = 1;
        final static CLUBS    = 2;
        final static DIAMONDS = 3;
        final static HEARTS   = 4;
  }

  Конструкция final static-это достаточно типичный способ объявления
  констант в языке Java.

http://subscribe.ru/
E-mail: ask@subscribe.ru

В избранное