Зачем нам нужны внутренние интерфейсы, особенно с модификатором частного доступа? - PullRequest
2 голосов
/ 13 июня 2019

Я новичок в Java.Недавно я прочитал о внутренних интерфейсах, и меня это очень смущает: во-первых, почему они используются, а во-вторых, почему они могут быть также объявлены как частные, в отличие от внешних интерфейсов.По моему мнению, интерфейсы должны быть общедоступными, чтобы их могли использовать все.

Ответы [ 2 ]

1 голос
/ 13 июня 2019

Назначение внутренних интерфейсов в Java, как показано ниже

  1. решение проблемы пространства имен, когда интерфейс имеет общее имя
  2. увеличение инкапсуляции
  3. повышение читаемости путем группировкисвязанные интерфейсы в одном месте.

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

Объявление внутреннего интерфейса в теле другого интерфейса.

public interface Items {
            interface MyList {
            }
        }

Объявление внутреннего интерфейса в теле другого класса.

 public class Items{
                public interface MyList {
                    void add(Items items);
                    String getItesmNames();
                }
        }

Наконец,Мы можем реализовать в соответствии с нижеприведенным описанием

public class SpecialItems implements Items.MyList  {

}

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

1 голос
/ 13 июня 2019

Основная цель внутренних интерфейсов или вложенных интерфейсов - группировать похожие вещи. Рассмотрим интерфейс Map в коллекциях. Он имеет вложенный интерфейс, который называется Entry. Запись не может существовать без карты, поэтому логически имеет смысл сгруппировать их. С другой стороны, могут быть другие интерфейсы с именем Entry, которые вызовут конфликты пространства имен. Таким образом используются вложенные интерфейсы. Чтобы ответить на другой вопрос, в любом случае использование модификаторов доступа должно предотвратить несанкционированный доступ. Закрытие вложенных интерфейсов не позволит другим разработчикам реализовать их нежелательным образом. Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...