|
|
|
Self-implemented(?) интерфейс, или как такое вообще может работать ?
|
|||
|---|---|---|---|
|
#18+
hi. Почему допускается вот такой форменный изврат ? Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Test: Код: plaintext 1. 2. 3. 4. 5. 6. 7. В списке полей есть вот это: Код: java 1. - как по-русски сформулировать, что это на самом деле ? "Константа, начальное значение которой задается созданием безымянного объекта, реализующего этот же интерфейс..." - ну бред же... ЗЫ. В доке ничего про это не объяснено: Interfaces in Java In the Java programming language, an interface is a reference type, similar to a class, that can contain only constants, method signatures, and nested types . There are no method bodies. Interfaces cannot be instantiated—they can only be implemented by classes or extended by other interfaces.* nested types - это про вложенные интерфейсы, я правильно понимаю ? Код: java 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2013, 10:40:33 |
|
||
|
Self-implemented(?) интерфейс, или как такое вообще может работать ?
|
|||
|---|---|---|---|
|
#18+
Это возможность предоставления какой-то реализации(ли нескольких) пользователями кода. Например Имеется следующий незамысловатый интерфейс. Код: java 1. 2. 3. И хочется к нему задать какое-то значение, которое на самом деле ничего не делает, но оно нужно т.к. мы знаем, что передать null это очень и очень плохо. Какие у нас есть варианты решения этой проблемы? 1) Можно не париться и пусть пользователи сами создают такую реализацию каждый раз. 2) Создать новый файлик и в нем написать код Код: java 1. 2. 3. 4. Уже конечно лучше, но все таки что-то не так... 3) Т.к. у нас есть возможность задать константу в интерфейсе Код: java 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2013, 12:19:24 |
|
||
|
Self-implemented(?) интерфейс, или как такое вообще может работать ?
|
|||
|---|---|---|---|
|
#18+
schwaЭто возможность предоставления какой-то реализации(ли нескольких) пользователями кода. Есть ли хоть один пример в офиц. доке, показывающий этот выверт и разъясняющий его суть ? Или в заумных талмудах вроде Хорстмана или Эккеля или Хабибуллина ? Я не нашел. ПОЛУОФФ. Глупый вопрос задам, наверное, но всё же. Вот не понимаю в упор, почему компилятор не спотыкается об это: Код: java 1. 2. 3. 4. 5. 6. 7. Когда процесс компиляции дойдет до строки 2, то увидит там константу того типа, который сейчас еще разбирается (компилируется). Аналогично для строки 5 (хотя этот случай, конечно, весьма часто встречается). Как он "соображает", что поле компилируемого в данный момент класса может ссылаться на этот класс, когда он еще "недокомпилировался" ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2013, 22:03:53 |
|
||
|
Self-implemented(?) интерфейс, или как такое вообще может работать ?
|
|||
|---|---|---|---|
|
#18+
ozzmosis, наверное ты еще очень молод и не изучал рекуррентные формулы, рекурсивные функции, грамматкики и функции которые описывают бесконечные последовательности. Так что всё еще у тебя впереди Кстати на уровне JVM все объекты - суть objectrefs. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2013, 03:17:15 |
|
||
|
Self-implemented(?) интерфейс, или как такое вообще может работать ?
|
|||
|---|---|---|---|
|
#18+
ozzmosis- как по-русски сформулировать, что это на самом деле ? "Константа, начальное значение которой задается созданием безымянного объекта, реализующего этот же интерфейс..." - ну бред же... анонимный класс , ну или безымянный. Если его (класс) более нигде создавать не планируют, то можно и не именовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2013, 07:48:47 |
|
||
|
Self-implemented(?) интерфейс, или как такое вообще может работать ?
|
|||
|---|---|---|---|
|
#18+
maytonozzmosis, наверное ты еще очень молод и не изучал рекуррентные формулы, рекурсивные функцииуже не молод, к сож-ю, но учиться же никогда не поздно :-) тем более, когда язык нравится. Но ты мне попроще, по-пролетарски, можешь сказать: каким боком компилятор применяет эти "рекуррентные формулы" в том маленьком фрагменте, который выше приведен ( 14753343 ) ? Ну, вот дошел он до строки 2 или 5, и... дальше что он делает ? maytonКстати на уровне JVM все объекты - суть objectrefs.т.е. ссылки на объекты, находящиеся в heap'e ? но что из этого следует и как это связано с вопросом о компиляции ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2013, 08:27:32 |
|
||
|
Self-implemented(?) интерфейс, или как такое вообще может работать ?
|
|||
|---|---|---|---|
|
#18+
Сергей Арсеньев анонимный класс , ну или безымянный.Дык я понимаю, что это он самый, анонимный класс, который можно не именовать. Не понимаю одной детальки, она в ступор вводит. Имя компилируемого интерфейса (или класса) начинает использоваться уже в нём самом. Как это ? Вон, в математике: факториал хоть и рекурсивно определяется, но "якорная" точка и у него есть: 0! = 1. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2013, 08:35:54 |
|
||
|
Self-implemented(?) интерфейс, или как такое вообще может работать ?
|
|||
|---|---|---|---|
|
#18+
ozzmosisИмя компилируемого интерфейса (или класса) начинает использоваться уже в нём самом. Какие сложности то. Надо просто понимать, что разбор формального описания интерфейса происходит раньше разбора кода его методов. Вон в более навернутых языках, типа javascript, там все еще серьезнее - описание "класса", в том числе цепочка прототипов, может меняться на лету. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2013, 09:52:56 |
|
||
|
Self-implemented(?) интерфейс, или как такое вообще может работать ?
|
|||
|---|---|---|---|
|
#18+
ozzmosisschwaЭто возможность предоставления какой-то реализации(ли нескольких) пользователями кода. Есть ли хоть один пример в офиц. доке, показывающий этот выверт и разъясняющий его суть ? Или в заумных талмудах вроде Хорстмана или Эккеля или Хабибуллина ? Я не нашел. Enum также реализован. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2013, 10:28:56 |
|
||
|
Self-implemented(?) интерфейс, или как такое вообще может работать ?
|
|||
|---|---|---|---|
|
#18+
ozzmosisИмя компилируемого интерфейса (или класса) начинает использоваться уже в нём самом. Ну и что? И с рекурсивными функциями так же. И более того, можно использовать имена классов и методов, которые вообще даже еще не встречались. Сначала компилятор делает синтакический разбор, и ему достаточно определить категорию имени, которую он встретил - класс, метод, переменная. Это он определяет по характеру использования, а не в результате накопленных описаний. Далее, когда весь исходный файл разобран, следующий проход просматривает результирующее дерево разбора и проверяет правильность использования имен - все имена должны быть описаны, быть соответствующего использованию типа и т.п. И только потом происходит генерация кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2013, 14:08:21 |
|
||
|
Self-implemented(?) интерфейс, или как такое вообще может работать ?
|
|||
|---|---|---|---|
|
#18+
rfqкогда весь исходный файл разобран, следующий проход просматривает результирующее дерево разбора и проверяет правильность использования имен А, вот оно что. Ясно, спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2013, 14:31:38 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38377429&tid=2128741]: |
0ms |
get settings: |
14ms |
get forum list: |
23ms |
check forum access: |
7ms |
check topic access: |
7ms |
track hit: |
60ms |
get topic data: |
23ms |
get forum data: |
6ms |
get page messages: |
95ms |
get tp. blocked users: |
3ms |
| others: | 286ms |
| total: | 524ms |

| 0 / 0 |
