![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
GIK |
|
|||
![]() Добрый человек ![]() ![]() Профиль Группа: Участник Сообщений: 985 Регистрация: 3.6.2005 Где: я только не небыв ал Репутация: нет Всего: 14 |
Есть класс который реализует интерфейс, и он реализует доступ к только "своему" методу.
А как же определяется этот метод, метод как интерфейсный? Например вот такая реализация:
Здесь вроде как нельзя обратится к методу Min потому что он не является методом интерфейса Callback, а где это указывается не пойму.??? Добавлено @ 13:35 Кстати при нажатии на предварительный просмотр, топ сразу создается? Наверное это из-за того что переделывается форум...... Это сообщение отредактировал(а) GIK - 5.1.2006, 13:33 -------------------- Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!! Программирование - это не деятельнось! Программирование - это состояние души! Бог - самый крутой программист. |
|||
|
||||
kashka |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 117 Регистрация: 29.11.2004 Где: Wolfenbuettel, Ge rmany Репутация: 1 Всего: 1 |
потому что метод Min() в интерфейсе не задекларирован, нет его там. Ты же создаешь новый обьект Callback, поетому и методы видешь только те которые у Callback есть.
|
|||
|
||||
GIK |
|
|||
![]() Добрый человек ![]() ![]() Профиль Группа: Участник Сообщений: 985 Регистрация: 3.6.2005 Где: я только не небыв ал Репутация: нет Всего: 14 |
А где это указывается? -------------------- Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!! Программирование - это не деятельнось! Программирование - это состояние души! Бог - самый крутой программист. |
|||
|
||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 24 Всего: 151 |
В объявлении интерфейса Callback. Посмотри его код. -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
chief39 |
|
|||
![]() карманная тигра ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1631 Регистрация: 20.5.2005 Где: Киев Репутация: 15 Всего: 77 |
На отфонарном примере:
ЗЫ: как ты заметил - если реализуешь интерфейс - будь добр все его методы реализовать ![]() ![]() Это сообщение отредактировал(а) chief39 - 5.1.2006, 14:46 -------------------- Люди - это свечи. Они либо горят, либо их - в жопу!(с) |
|||
|
||||
GIK |
|
|||
![]() Добрый человек ![]() ![]() Профиль Группа: Участник Сообщений: 985 Регистрация: 3.6.2005 Где: я только не небыв ал Репутация: нет Всего: 14 |
Ну спосибо.... Думайте я сам не знеаю что это объявление интерфейса.... Меня ведь смутило что метод callback и метод Min находятся внутри класса Client который реализуется с интерфейсом. Но почему то к callback можно обращатся а к Min нет. Другое дело если бы название метода было Callback а не callback. Добавлено @ 14:59 to chief39 Пытаюсь вкурить твой код. -------------------- Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!! Программирование - это не деятельнось! Программирование - это состояние души! Бог - самый крутой программист. |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Я тебе это уже объяснял, ты привел объект типа Client к типу Callback, соответсвенно ты можешь работать с ним только как с типом Callback (т.е. вызывать методы соответсвующие и т.д.). Интерфейс можно рассматривать как полностью абстрактный класс, от которого твой класс наследует. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
chief39 |
|
|||
![]() карманная тигра ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1631 Регистрация: 20.5.2005 Где: Киев Репутация: 15 Всего: 77 |
Курить вредно, чем я и занимаюсь ![]() Смотри... Интерфейс - это внешнее представление какого-то предмета. Если ты готов соответствовать такому представлению для окружающих - должен обеспечивать всё, чего от тебя ожидают. То есть для бабушки на вахте - ты не многогранный класс "Академик", а человек с пропуском, в автобусе ты - пассажир, и общаются с тобой как с пассажиром. Ну а ты, будучи академиком, всё равно должен обеспечивать то, что ждут от пассажира. Ты должен предоставлять методы "сесть в автобус", "покинуть автобус", "купить билет", "предьявить билет". Причём у разных людей(классов) что представляют(имплементируют) пассажира(т.е. интерфейс) методы могуть быть реализованны совершенно по разному. например"предъявить билет": академик солидно вытянет билет из дипломата, девушка - из лифчика, воришка - из кармана соседа. Вот. Когда ты сел в автобус - для автобуса, водителя, кассиров, пассажиров - ты ПАССАЖИР. Они не знают и не должны о том, что ты академик. Допустим, с тобой едет мужик-с. На самом деле он нач. отдела кадров огромной компании. Он приезжает на работу и директор говорит - надо у какого-то "академика" вызвать метод "нанять на работу". Вобщем академик нужен. ЭЭЭ!!! - скажем мы. Надо мужику пойти к тому академику и вызвать у него метод "нанять"! Но! мужик ведь не знает что это АКАДЕМИК ![]() Это нам, богам видно кто он на самом деле. А мужик мог и опростоволоситься. Если бы то дворник ехал а не академик. Вызвал бы метод "нанять на работу" или "теорему Ферма доказать", а дворник - ЧЧЧЧё??? А если мы в мозги ему вобьём что надо всех подряд пссажиров надо нанимать на работу как академиков - фигня получится ![]() Поэтому будь добр в автобусе относиться к пассажирам только как к пассажирам. ![]() ЗЫ: курю - это я насчёт обычных сигарет. не подумайте чего плохого ![]() Это сообщение отредактировал(а) chief39 - 5.1.2006, 16:15 -------------------- Люди - это свечи. Они либо горят, либо их - в жопу!(с) |
|||
|
||||
kol |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 1.9.2005 Репутация: нет Всего: 1 |
chief39
Вопрос этот не интересовал, но рассказ прочитал с удовольствием ![]() ![]() |
|||
|
||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 24 Всего: 151 |
Ну ведь всегда можно попросить модератора ![]() -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
chief39 |
|
|||
![]() карманная тигра ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1631 Регистрация: 20.5.2005 Где: Киев Репутация: 15 Всего: 77 |
Лирическое настроение вкупе с плотным обедом творят чудеса
![]()
Тогда я запутался ![]() -------------------- Люди - это свечи. Они либо горят, либо их - в жопу!(с) |
|||
|
||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 24 Всего: 151 |
-------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
chief39 |
|
|||
![]() карманная тигра ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1631 Регистрация: 20.5.2005 Где: Киев Репутация: 15 Всего: 77 |
УПЦ! Вот они, последствия плохой экологии и глобального потепления! kol, пардон за вымогание чужого кода ![]() GIK, это... я хоть и сплю, но интерфейс всё равно показывай ![]() Lamer George, Дзенькую за плюс и за нажатие кнопки "Раздупл." ![]() -------------------- Люди - это свечи. Они либо горят, либо их - в жопу!(с) |
|||
|
||||
GIK |
|
|||
![]() Добрый человек ![]() ![]() Профиль Группа: Участник Сообщений: 985 Регистрация: 3.6.2005 Где: я только не небыв ал Репутация: нет Всего: 14 |
Народ, кто нибуть посмотрите 3 вопрса.
Вопросы: 1)Как определить что Min не относится к Callback ? 2)Min определен в пределах класса Client который реализуется с интерфейсом Callback? 3)callback и Callback чем то связаны? Это сообщение отредактировал(а) GIK - 6.1.2006, 14:31 -------------------- Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!! Программирование - это не деятельнось! Программирование - это состояние души! Бог - самый крутой программист. |
|||
|
||||
LSD |
|
||||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Если метод класса имеет такую же сигнатуру, что и метод интерфейса, то он его реализует.
Min определен в пределах класса Client который реализует интерфейс Callback.
Метод callback определен в интерфейсе Callback. Ты чего, зачет здаешь? ![]() -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||||
|
|||||||
GIK |
|
|||
![]() Добрый человек ![]() ![]() Профиль Группа: Участник Сообщений: 985 Регистрация: 3.6.2005 Где: я только не небыв ал Репутация: нет Всего: 14 |
Нет, просто, хотел разобратся ![]() Наверное я не понимал слова "сигнатура". Это веть и есть сходство, просто первые буквы разные, большая и маленькая ? -------------------- Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!! Программирование - это не деятельнось! Программирование - это состояние души! Бог - самый крутой программист. |
|||
|
||||
Guest |
|
||||||
Unregistered |
Опубликуй интерфейс Callback
![]() 1. Если интерфейс Callback определён вот так:
ТО ОТНОСИТСЯ Если так:
2. ДА. Он в твоём самом верхнем куске кода. Правда, если интерфейс у тебя описан без Min() - тогда при компиляции ругнётся. В классе у тебя реализация. Если прочитал мою лирику - то это именно программирование "доставания билетика", конкретного случая. Например из лифчика. ![]()
3. Только тем что callback описан в Callback(и, судя по всему, в интерфейсе указан как в моём ответе на вопрос "1"). Если ты о похожести имён - то это абсолютно разные идентификаторы из-за разной первой буквы. Это как "destination" и "promoter", "HellCat" и "DuBaI" - просто разные слова. PS: приведи код интерфейса!!! А то мы как слепые, которые слона с разных сторон щупают!!! Толчёмся вокруг да около ![]() |
||||||
|
|||||||
chief39 |
|
|||
![]() карманная тигра ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1631 Регистрация: 20.5.2005 Где: Киев Репутация: 15 Всего: 77 |
Забыл залогиниться
![]() Сигнатура - это ИМЯ МЕТОДА с точностью до буковки и учётом регистра + набор параметров(с учётом их порядка следования и типа) Разница в первой буковке делает эти два названия АБСОЛЮТНО разными идентификаторами -------------------- Люди - это свечи. Они либо горят, либо их - в жопу!(с) |
|||
|
||||
GIK |
|
|||
![]() Добрый человек ![]() ![]() Профиль Группа: Участник Сообщений: 985 Регистрация: 3.6.2005 Где: я только не небыв ал Репутация: нет Всего: 14 |
Ну блин наконец то, то что надо.
Большое спасибо ![]() А то втирают мне логику которую я еще понял когда книгу в руки взял. Но только вот то что сейчас Ты мне привел там нет. Добавлено @ 14:57
chief39 это был ты. -------------------- Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!! Программирование - это не деятельнось! Программирование - это состояние души! Бог - самый крутой программист. |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Сигнатура это объявление метода: включает в себя название (все идентификаторы в Java регистрозависимые), его аргументы, тип возвращаемого значения, модификаторы доступа, прочие модификаторы.
Считается что метод переопределяет метод определенный в родителе, если: - оба метода не статические - метод имеет такое же имя как и у родителя - метод имеет такие же параметры что и у родителя - метод возвращает значение того же типа, что и родитель (проверяется компилятором) - метод не выбрасывает никаких проверяемых исключений, не объявленных в родителе (проверяется компилятором) - имеет более слабый или такой же модификатор доступа что и родитель (проверяется компилятором) - родительский метод не private и не final (второе проверяется компилятором)
Я смотрю у кого-то уже весна, началась ![]() -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
chief39 |
|
|||
![]() карманная тигра ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1631 Регистрация: 20.5.2005 Где: Киев Репутация: 15 Всего: 77 |
Гм... Эккель настаивает на том, что сигнатура - это исключительно название + список параметров(порядок+типы)
И подчёркивает что возвращаемое значение в сигнатуру НЕ входит. Ибо метод может быть вызван без приваивания резалта переменной и с компилятор не будет знать какой именно метод вызвать если разнятся только типом возвращаемого. Или здесь имеется в виду сигнатура в другом понимании? Может дока какая-то специальная есть по этим нюансам?
У меня круглый год весна ![]() -------------------- Люди - это свечи. Они либо горят, либо их - в жопу!(с) |
|||
|
||||
Wowa |
|
|||
Эксперт ![]() Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: 1 Всего: 290 |
Т.е. этими строками
мы указываем, интерфейсом какого именно класса должен интерфейс является. Так? Вот именно этой строкой: cit = man; да? |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Мы присваиваем переменной типа Citizen объект man. И в дальнейщем, по ссылке cit, мы сможем с ним работать как с объектом типа Citizen. Привести переменную к типу можно: (MyType) variable, проверить что переменная приводима к данному типу так: if(variable instanceof MyType). -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
GIK |
|
|||
![]() Добрый человек ![]() ![]() Профиль Группа: Участник Сообщений: 985 Регистрация: 3.6.2005 Где: я только не небыв ал Репутация: нет Всего: 14 |
Объясняю свою логику, если что поправте.
Есть классы которые реализуют интерфейс. В интерфейсе можно указать, к примеру, методы, которые должны указыватся в классе обязательно,если он реализует интерфейс. Если передать ссылку от объекта man, который реализует интерфейс Emlpoyee, и Citizen, переменной интерфейса cit (Citizen), то через cit можно обращатся как через объект man, потому что man реализует интерфейс, которым является cit. -------------------- Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!! Программирование - это не деятельнось! Программирование - это состояние души! Бог - самый крутой программист. |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Все верно. Вот это я не совсем понял, если под ссылку от объекта имеется в виду присваивание, то да присвоить можно, и именно потому что класс Man реализует Citizen. Иначе была бы ошибка приведения типов. А вот вторую половину я не понял вообще. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
chief39 |
|
|||
![]() карманная тигра ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1631 Регистрация: 20.5.2005 Где: Киев Репутация: 15 Всего: 77 |
Можно. Только в более урезанном виде(скорее всего) - в классе man могут быть методы, которые не входят в интерфейс. Но в принципе - всё верно ![]()
Нууу... мы говорим что гражданином, с которым мы сейчас что-то будем делать - будет вооон тот мужик. И пусть он не волнуется, он нам нужен только как гражданин. Ссылка cit умеет работать только с гражданами. А поскольку man является и гражданином в т.ч. - то вот ей новый гражданин. -------------------- Люди - это свечи. Они либо горят, либо их - в жопу!(с) |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |