2014-12-05 6 views
4

Я пытаюсь изучить некоторые базовые объектно-ориентированные программирования в Java. Мне было любопытно узнать, что такое начало интерфейса слова, если есть какое-либо документальное описание. Кроме того, я пытался понять, что это значит, думая о родовом понятии, какС чем связан интерфейс в интерфейсе Java?

Точки, где две системы, субъекты, организации и т.д. встретиться и взаимодействовать

Я получил это определение из поиск Гугл. Каковы две системы/сущности, которые взаимодействуют? Или, может быть, моя аналогия используется неуместно? До сих пор я думаю об этом как о скелете для определения методов и контуров свойств.

+0

это определение не имеет никакого смысла. Интерфейсы - это то, что описывает имя: INTERFACES - шаблоны, описывающие функциональность и, возможно, взаимодействие. На некоторых языках (а не на Java) они даже описывают (!) Хранящиеся/сохраненные данные. – specializt

+0

@specializt это определение также неверно. –

+0

, так что ИТ-реальность «тоже не права»? Hokay. – specializt

ответ

3

Программные интерфейсы являются однонаправленными (хотя есть способы передать вызывающий объект в качестве ссылки на вызываемого абонента), в отличие от Electrical connectors, которые взаимодействуют в обоих направлениях напрямую.

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

Чтобы сравнить его с электроникой, если 3 различных типа устройств поддерживают аудиоразъемы, то все 3 устройства в основном утверждают: вы можете слушать меня, я воспроизвожу аудио. Они могут быть очень разными устройствами (mp3-плеер, сонар, счетчик Гейгера), но все они четко заявляют: если вы подключаете наушники, вы можете получить звук из меня.

Это то, что делает интерфейс в программном обеспечении. в нем говорится: я предоставляю функцию X, независимо от того, какой фактический компонент я есть.

так что все, что реализует интерфейс карты, может иметь вызовы .get (...) и .values ​​() и .keySet(). Все, что реализует интерфейс AudioStream, будет выдавать аудиопоток при вызове.

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

2

Интерфейс связывает ваш код (т. Е. Класс, который реализует ваш интерфейс) и внешний код. Внешний код имеет доступ к вашему интерфейсу, но вам не нужна ваша реализация.

«Две системы» (вы просили) - это код, реализующий интерфейс и код, ссылающийся на него.

+0

Хотя это правда, это не отвечает на вопрос. Вопрос был о происхождении имени, а не о его значении. – sleske

+1

нет, не было. ... – specializt

+2

В: «Каковы две системы/сущности, которые взаимодействуют?», A: «Эти две системы - это ваш код и внешний код». Я рад удалить свой ответ, но, по крайней мере, дайте мне знать, что случилось. – kinbiko

3

interface определяет общий интерфейс (следовательно, множественные объекты name :) (потенциально разных типов) имеют в терминах сигнатур методов. Это для потребления другими объектами.

В JLS Chapter 9 состояния:

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

Так что это скорее определение с точки зрения поведения, чем этимология.

+0

действительно. Хорошо сказано. – specializt