Похожие презентации:
Собеседование Enum
1.
Enum2.
Вопрос 1Может ли Enum наследовать (implement) интерфейс?
3.
Может ли Enum наследовать(implement) интерфейс?
Да, Enum может наследовать интерфейсы.
Это даёт поразительную гибкость в использовании Enum
в качестве специальной реализации в некоторых
случаях.
4.
Вопрос 2Может ли Enum наследовать (extends) класс?
5.
Может ли Enum наследовать(extends) класс?
Нет, не может!
Поскольку Enum уже наследуется от абстрактного класса
java.lang.Enum, понятно, что другой класс наследовать
не удастся, поскольку Java не поддерживает
множественное наследование классов.
Благодаря наследованию от java.lang.Enum, все
перечисления имеют методы ordinal(), values() или
valueOf().
6.
Вопрос 3Можно ли создать Enum без экземпляров объектов?
7.
Можно ли создать Enum безэкземпляров объектов?
Да, вы можете создать Enum без экземпляров, например
создавая утилитарный класс.
public enum MessageUtil{
; // required to avoid compiler error, also signifies no instance
public static boolean isValid() {
throw new UnsupportedOperationException("Not
supported yet.");
}
}
8.
Вопрос 4Можем ли мы переопределить метод toString() для
Enum?
9.
Можем ли мы переопределитьметод toString() для Enum?
Мы можем переопределить метод toString() у Enum, как и
любого класса, наследующего java.lang.Object и
имеющего метод toString() в доступности.
10.
Вопрос 5Что будет, если не будем переопределять метод toString()
для Enum?
11.
Что будет, если не будем переопределятьметод toString() для Enum?
Абстрактная основа класса Enum сделает это за нас, и
вернёт имя, являющееся именем экземпляра Enum.
Вот код метода toString() из класса Enum:
public String toString() {
return name;
}
name задано, когда компилятор выделяет код для
создания перечисления в ответ на создание
экземпляра в самом классе Enum
12.
Вопрос 6Можем ли мы указать конструктор внутри Enum?
13.
Можем ли мы указатьконструктор внутри Enum?
Да, Мы можете, но лишь с указанием private или packageprivate конструкторов.
Конструкторы с public и protected — не допустимы в
Enum.
14.
Вопрос 7Можем ли мы создать экземпляр Enum вне Enum?
15.
Можем ли мы создатьэкземпляр Enum вне Enum?
Мы не можете создавать экземпляры Enum вне границ
Enum, поскольку у Enum нет public конструктора, и
компилятор не позволит вам внести любой подобный
конструктор.
Так как компилятор генерирует большинство кода в ответ
на декларацию Enum типа, он не допускает public
конструкторов внутри Enum, что заставляет объявлять
экземпляры Enum внутри себя.
16.
Вопрос 8Какая разница сравнивать Enum при помощи == или
метода equals()?
17.
Какая разница сравнивать Enum припомощи == или метода equals()?
https://javarevisited.blogspot.com/2013/04/how-to-comparetwo-enum-in-java-equals.html
18.
Вопрос 9Что делает метод ordinal() в Enum?
19.
Что делает метод ordinal() вEnum?
Метод ordinal() (порядковый) возвращает порядок, в
котором экземпляры Enum обозначены внутри Enum.
Например, в DayOfWeek Enum, вы можете указать дни
по порядку:
public enum DayOfWeek{
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY,
SATURDAY, SUNDAY;
}
и если мы вызовем метод DayOfWeek.MONDAY.ordinal(),
он вернёт 0 - что значит первый экземпляр.
20.
Вопрос 10Можно использовать Enum с TreeSet или TreeMap в
Java?
21.
Можно использовать Enum сTreeSet или TreeMap в Java?
Enum наследует интерфейс Comparable, который
является главным требованием для использования в
упорядоченных коллекциях, как TreeSet и TreeMap.
Поскольку Enum по умолчанию наследует интерфейс
Comparable, он может использоваться с TreeSet и
TreeMap.
22.
Вопрос 11Как связаны методы ordinal() и compareTo() в Enum?
23.
Как связаны методы ordinal() иcompareTo() в Enum?
compareTo() имитирует порядок, предоставляемый
методом ordinal(), являющийся естественным порядком
Enum.
Если коротко, Enum ограничивает сравнения в порядке
их объявления.
Так же, стоит помнить, что данные константы сравнимы
только с другими константами того же типа —
сравнение разных типов констант может привести к
ошибке компилятора.
24.
Вопрос 12Можно ли использовать Enum в switch case?
25.
Можно ли использовать Enum вswitch case?
Да, вы можете.
Мало того, это одна из главных полезностей
использования Enum.
Enum и Switch отлично дополняют друг друга, в
особенности если Enum содержит небольшое
количество устойчивых констант, например, семь дней
недели, 12 месяцев года и т. д.
26.
Вопрос 13Как получить все существующие значения в экземпляре
Enum?
27.
Как получить все существующиезначения в экземпляре Enum?
Метод values() возвращает массив всех констант Enum.
28.
Вопрос 14Какие плюсы и минусы использования Enum в качестве
синглтона?
29.
Какие плюсы и минусы использованияEnum в качестве синглтона?
Enum предоставляет быстрый ярлык для воплощения
паттерна синглтона.
контролирует создание экземпляра,
безопасно сериализуется,
легко создать потокобезопасный синглтон с
использованием Enum.
Вам не нужно больше заботиться о двойной проверке
волатильности переменных.
Подробнее: https://javarevisited.blogspot.com/2012/07/why-
30.
Вопрос 15Какая выгода использовать Enum вместо паттернов
перечисления int и перечисления String?
31.
Какая выгода использовать Enum вместопаттернов перечисления int и перечисления
String?
С использованием Enum, мы получаем безопасность
типов, которые компилятор проверяет за нас.
32.
Вопрос 16Как преобразовать String в Enum?
33.
Как преобразовать String вEnum?
Преобразование Enum в String, осуществляется через
определиние фабричного метода в самом Enum,
который будет брать аргументы String и возвращать в
качестве Enum.
Подробнее: https://www.java67.com/2012/08/string-toenum-in-java-conversion.html
34.
Литератураhttps://javarush.ru/groups/posts/1353-15-voprosov-dljasobesedovanija-razrabotchikov-otnositeljhno-enum-vdzhave-s-otvetami
Программирование