Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_k_ekzamenu_po_programmirovaniyu_1_semest....docx
Скачиваний:
20
Добавлен:
05.12.2018
Размер:
116.52 Кб
Скачать
  1. Укажите назначение конструктора класса

В объектно-ориентированном программировании конструктор класса (от англ. constructor, иногда сокращают ctor) — специальный блок инструкций, вызываемый при создании объекта. Конструктор схож с методом, но отличается от метода тем, что не имеет явным образом определённого типа возвращаемых данных, не наследуется, и обычно имеет различные правила для рассматриваемых модификаторов. Конструкторы часто выделяются наличием одинакового имени с именем класса, в котором объявляется. Их задача — инициализировать члены объекта и определить инвариант класса, сообщив в случае некорректности инварианта. Корректно написанный конструктор оставит объект в «правильном» состоянии. Неизменяемые объекты тоже должны быть проинициализированы конструктором.

  1. Что такое «наследование»?

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

  1. Приведите структуру (форму) определения класса

Имя файла должно совпадать с одним из классов определенных в нем. Остальные классы являются локальными. Также позволяется определять вложенные классы.

Методы имеющие такое же имя как и класс называются конструкторами и служат для инициализации класса. В отличие от С++, инициализировать данные можно при их объявлении внутри класса. Для уничтожения объекта может использоваться метод finalize(), хотя на практике его реализовывают редко.

По умолчанию любой класс наследуется от класса Object из пакета java.lang.

  1. Поясните термин «инициализация». Приведите три примера определения полей с инициализацией и без инициализации

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

class Integer { ... public static final int SIZE = 32; ... }

Здесь инициализируется статическое поле SIZE класса Integer.

static List<Character> alphabet;

static alphabet = new ArrayList<Character>();

for (char c='a'; c<='z'; c++) alphabet.add(c); }

Переменная alphabet инициализируется в статическом блоке. Инициализация происходит во время загрузки класса аналогично как и в предыдущем примере.

public class Blog { ... private List<Post> posts = new ArrayList<Post ... }

Инициализация поля posts будет произведена во время конструирования объекта Blog.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]