Часть 2 Flashcards

1
Q
  1. Зачем нужен оператор instanceof
A

Оператор instanceof возвращает true, если объект является экземпляром класса или его потомком.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q
  1. Зачем нужны и какие бывают блоки инициализации
A

это код в скобках вне методов и конструкторов
выполняется перед конструктором если блоков инициализации несколько то они выполняются по порядку
Бывают так же статические блоки инициализации (их код выполняется при первой загрузке класса когда создаешь первую переменную)
Блоки инициализации можно использовать в анонимных классах (и те и те)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q
  1. Каков порядок вызова конструкторов и блоков инициализации двух классов потомка и его предка
A

статик блок предка
статик блок потомка
обычный блок предка
обычный блок потомка
конструктор предка
конструктор потомка

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q
  1. Где и для чего используется модификатор abstract
A

При создании абстрактного класса
Это класс объект которого нельзя создать. Он нужен чтобы от него наследовали.

При создании абстрактного метода (может быть только в абстрактном классе). Это метод без реализации.

Интерфейсы и их методы скрытно абстрактные так что можно это не писать.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q
  1. Можно ли объявить метод абстрактным и статическим одновременно
A

Нет ты бальной больной
иллигал комбынэйшн оф модифаерс
abstract говорит что в другом классе реализуем
static говорит что метод доступен только по имени класса

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q
  1. Что означает ключевое слово static
A

что метод или поле класса принадлежит классу а не объекту

ссылаться можно только на статические методы и переменные
нельзя использовать .this и .super

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q
  1. К каким конструкциям Java применим модификатор static
A
  • К методу.
  • К внутреннему классу.
  • К полю.
  • К импортируемым классам (с 5-ой java). Например,import static org.junit.Assert.assertThat;
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q
  1. Что будет, если в static блоке кода возникнет исключительная ситуация
A

Не скомпилируется

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q
  1. Можно ли перегрузить static метод
A

Перегрузить можно, но переопределить нельзя.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q
  1. Что такое статический класс, какие особенности его использования
A

вложенный класс можно объявить статическим
- может обращаться только к статическим полям обёртывающего класса (в том числе и к приватным)(Доступ к нестатическим полям обрамляющего класса может быть осуществлен только через ссылку на экземпляр обрамляющего объекта)
-

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q
  1. Какие особенности инициализации final static переменных
A

Переменные должны быть инициализированы во время объявления или в static блоке.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q
  1. Как влияет модификатор static на класс метод поле
A

Модификатор static говорит о том, что метод или поле класса принадлежат не объекту, а классу.

Внутри static метода нельзя вызвать не статический метод по имени класса.

Про static класс смотрите ответ выше.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q
  1. О чем говорит ключевое слово final
A

Может быть применено к полям, методам или классам

  • Для класса. Класс помеченный при помощиfinalне может иметь наследников.
  • Для метода. Метод помеченный при помощиfinalне может быть переопределен в классах наследниках.
  • Для поля. Поле помеченное при помощи словаfinalне может изменить свое значение после инициализации (инициализируется либо при описании, либо в конструкторе, статическом или динамическом блоке).
  • Значение локальных переменных, а так же параметров метода помеченных при помощи словаfinalне могут быть изменены после присвоения.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q
  1. Дайте определение понятию “интерфейс”
A

Ключевое словоinterfaceиспользуется для создания полностью абстрактных классов. Создатель интерфейса определяет имена методов, списки аргументов и типы возвращаемых значений, но не тела методов.

Наличие словаinterfaceозначает, что именно так должны выглядеть все классы, которые реализуют данный интерфейс. Таким образом, любой код, использующий конкретный интерфейс, знает только то, какие методы вызываются для этого интерфейса, но не более того.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q
  1. Какие модификаторы по умолчанию имеют поля и методы интерфейсов
A

Интерфейс может содержать поля, но они автоматически являются статическими (static) и неизменными (final).
Все методы и переменные неявно объявляются как public.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q
  1. Почему нельзя объявить метод интерфейса с модификатором final или static
A

final нельзя потому что он ещё нереализован

static можно прописать методу если ты хочешь реализовать его в интерфейсе но не делай так