26 июн. 2015 г.

Классы. Часть 10 – инициализация полей класса.

Мы уже видели как можно присваивать значения полям класса. Но чтобы подвести итог перечислим их:

  • Инициализация значениями по умолчанию
  • Инициализация при объявлении поля
  • Инициализация через конструктор
  • Инициализация в инициализационном блоке

Первые три способа мы уже видели, теперь рассмотрим четвертый.

Инициализационный блок выполняется каждый раз, когда создается объект данного класса. Он выполняется до вызова любого из конструкторов класса. Для инициализации статических полей класса, можно использовать статические инициализационные блоки.

Ну и теперь примеры…

N0034

N0035

Вывод у программы следующий:

N0036

Инициализационные блоки выполняются в порядке их следования в объявлении класса.

В этой программе продемонстрированы все четыре способа инициализации полей.

9 комментариев:

  1. разве меин будет в начале? сначало статический блок

    ОтветитьУдалить
  2. Ответы
    1. строка "В начале метода меин" она не может быть первой.

      Удалить
  3. Как это не может :) Если она есть :) Запустите программу и проверьте. Все работает.

    ОтветитьУдалить
  4. Ну или объясните почему она не может там быть, и вопреки всем правилам она там все же есть :)

    ОтветитьУдалить
    Ответы
    1. ахах) у мя стат блок был в мейне а не в отдельном классе, Спасибо за урок! И еще вопрос а вы сейчас в каком напралении работаете?

      Удалить
  5. Классные статьи, одни из лучших, которые я видел
    В этом блоке все статьи, которые есть от автора или есть ещё? Хотелось бы в подобном стиле почитать про лямбда, паттерны, GUI и много чего ещё

    ОтветитьУдалить
  6. Все статьи мои. Продолжение блога конечно планируется. В ближайшие недели появятся еще статьи. Некоторые статьи уже появились, просто задним числом :) так как логически они должны быть там где должны быть.
    Например вот эта статья http://pr0java.blogspot.ru/2015/05/blog-post_97.html

    ОтветитьУдалить