No video

Раннее и Позднее Связывание

  Рет қаралды 41,135

Volodya Mozhenkov

Volodya Mozhenkov

Күн бұрын

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

Пікірлер: 70
@roman-romadin
@roman-romadin 5 жыл бұрын
Спасибо! Лучший стиль преподавания! Если бы так в универах преподавали ...
@grommaks
@grommaks 4 жыл бұрын
В почти универе так) как я понял из вступления)
@me_000_xXx
@me_000_xXx 4 жыл бұрын
Спасибо 🖐️Искал аналогию virtual-метода в java, и, как оказалось, в java все методы виртуальные и нет надобности в отдельном кейворде аля virtual. И Володя это же рассказал. Прикольно)
@mgevlich
@mgevlich 9 жыл бұрын
Отлично рассказываете. Единственное хотел увидеть больше примеров, не только с виртуальными функциями, но и динамически создаваемыми объектами и указателями.
@hatami74
@hatami74 9 ай бұрын
Самое лучшее объяснение, которое встречал
@undersun6301
@undersun6301 5 ай бұрын
Так доходчтво тему позднего связывания никто не обьяснял.❤
@AlexeyNeklesa
@AlexeyNeklesa 8 жыл бұрын
Молодец. Однозначно подписываюсь. Очень понравилось.
@user-mcm
@user-mcm 3 жыл бұрын
Не могу не оставить комментарий , я не программист в прямом смысле , занимаюсь управлением промышленного оборудования, но стало то время когда приходится освоить немного классического из пк , ролики просто офигенные и мне понятные , в любом случае весь принцип написания кода повторяет друг друга вне зависимости от среды написания что облегчает понимания :)
@kirillnorkin8283
@kirillnorkin8283 4 жыл бұрын
Володя, ты выносишь мне мозг, благодарю)))
@user-nw5iw5ew9z
@user-nw5iw5ew9z 2 жыл бұрын
Спасибо, Володя. Хорошо объяснил. :)
@Qnoize
@Qnoize 4 жыл бұрын
в Java 2 типа связывания: раннее, если методы static, private или final. В остальных позднее
@avazart614
@avazart614 4 жыл бұрын
@Боня Ферзь Но не логично для С++ так как там virtual может быть private.
@eb6006
@eb6006 Жыл бұрын
Круто! Все встало на свои места!
@turalbadalov480
@turalbadalov480 6 жыл бұрын
Автор, правы ли вы называя ранее связывание статической типизацией? Думаю нет. Вот если бы назвали статическим связыванием , то считаю было бы верно. Ведь статическая типизация это совсем иное, и кстати, Java статически типизированный язык (с динамическим связыванием, хотя статическое связывание в java тоже есть). Статическая типизация это когда мы в момент объявления знаем тип объекта, например String str; А есть языки в которых этот тип не пишется, это языки с динамической типизацией. Вывод: то о чем вы говорите называется статическое и динамическое связывание и в java все таки есть и статическое связывание тоже. Казалось бы ну откуда в Java раннее связывание? А как же статические методы? вот пример, javarush.ru/groups/posts/439-razlichija-mezhdu-rannim-i-pozdnim-svjazihvaniem-v-java где показывается существование статического связывания и кстати JVM помечает такие методы и с помощью спец команд можно увидеть эти пометки в консоли.
@casusbelli9326
@casusbelli9326 6 жыл бұрын
В видео перепутаны такие понятия, как типизация (typing) и диспетчеризация (dispatch).
@Pavel555
@Pavel555 Ай бұрын
@@casusbelli9326 да, такие видео только больше каши в голове создадут.
@keyrea1
@keyrea1 7 жыл бұрын
Каеф) Супер доступно, даже для того, как я) Спасибо)
@user-pd4gt9zz9c
@user-pd4gt9zz9c 6 жыл бұрын
спасибо Вам. Уяснил разницу.
@ironmelon_nurbirion
@ironmelon_nurbirion 3 жыл бұрын
Спасибо огромное!!!
@alexmur07
@alexmur07 6 жыл бұрын
четко объяснил. не прибавить не убавить. если твои падаваны тебя не понимут, то им в детсад надо.
@user-gv7jq1lm4u
@user-gv7jq1lm4u 2 жыл бұрын
мужик красава! я тугодум даже понял!
@splashattacks9714
@splashattacks9714 8 жыл бұрын
А как же в Java статические и приватные методы, они же не являются виртуальными,так получается не все связывание в Java позднее?
@maxlich9139
@maxlich9139 7 жыл бұрын
Да, судя по информации в интернете (в идеи надо в документацию к Джаве лезть), приватные методы, статические методы, методы, помеченные модификатором final, и конструкторы используют раннее связывание.
@june3878
@june3878 2 жыл бұрын
@@maxlich9139 у java есть документация? 😳
@maxlich9139
@maxlich9139 2 жыл бұрын
@@june3878 а куда она делась? О_о
@june3878
@june3878 2 жыл бұрын
@@maxlich9139 это нельзя назвать документацией)
@alexpavlov9097
@alexpavlov9097 5 ай бұрын
а что можно назвать документацией?
@ilya9852
@ilya9852 Жыл бұрын
Для всех методов Java используется механизм позднего (динамического) связывания, если только метод не был объявлен как final (приватные методы являются final по умолчанию).
@aojona
@aojona Жыл бұрын
и static
@bennails3447
@bennails3447 4 жыл бұрын
Правильный Володя. Лайк и подписка👍
@artemsliusar1282
@artemsliusar1282 7 жыл бұрын
Здравствуйте. Подскажите, пожалуйста, Вы говорите, что динамическая типизация = позднее связывание. Но ведь Java - это язык со статической типизацией и поздним связыванием (в большинстве случаев). Т.е. как-то неодназначно.
@dentor2005
@dentor2005 4 жыл бұрын
javarush.ru/groups/posts/439-razlichija-mezhdu-rannim-i-pozdnim-svjazihvaniem-v-java
@arcsin4083
@arcsin4083 5 жыл бұрын
Спасибо!
@kipa3006
@kipa3006 8 жыл бұрын
Не могли бы вы привести пример в котором использовалось бы раннее связывание? Где может быть применим такой способ связывания? Как вы уже говорили, во многих языках такой возможности нет вовсе - бывают ли ситуации, в которых есть острая потребность в раннем связывании, или такая возможность представляет скорее академический интерес?
@yanslow9083
@yanslow9083 Жыл бұрын
Java static, final, overload, все - раннее связывание
@user-eq4li2vn4d
@user-eq4li2vn4d 2 жыл бұрын
Человечище!)
@ataganatagan2397
@ataganatagan2397 6 жыл бұрын
В java есть статическое/раннее связывание
@user-hf5tl3gn3l
@user-hf5tl3gn3l 5 жыл бұрын
я подписался с удовольствием!
@gagogoga794
@gagogoga794 4 жыл бұрын
Бог компуктеров!!!
@AndreyDelay
@AndreyDelay 4 жыл бұрын
круто) такого наставника бы в работе
@VladimirMozhenkov
@VladimirMozhenkov 4 жыл бұрын
Я занимаюсь репетиторством через интернет... если что.
@user-gf6vd5sy7h
@user-gf6vd5sy7h 9 жыл бұрын
в rust есть zero cost abstraction благодаря которому не происходит поиска метода во время исполнения проги
@Federation1323
@Federation1323 3 жыл бұрын
Объяснения: уровень Бог
@victorzedwings
@victorzedwings 6 жыл бұрын
*когда во время исполнения??? во время вызова или во время загрузки??? или во время создания экземпляра класса???*
@Anton-ws8jn
@Anton-ws8jn 9 жыл бұрын
Помоему это больше к полиморфизму относится, а не к связыванию. К примеру в .NET к позднему связыванию относится загрузка сборок во время выполнения программы и инстанциирование типов находящихся в них с последующим использованием их функционала. Поправьте если я не прав.
@VladimirMozhenkov
@VladimirMozhenkov 9 жыл бұрын
Антон Самошин Дело в том, что я .NET не знаю, так что не совсем понимаю о чём идёт речь. Можете объяснить что такое "сборки".
@Anton-ws8jn
@Anton-ws8jn 9 жыл бұрын
Vladimir Mozhenkov сборка в данном варианте просто обычная dll которая подгружается во время работы программы. К примеру у нас есть некий графический редактор, а в отдельной dll лежит какой нибудь плагин к нему и на этапе работы программы пользователь подгружает эту dll и задействует ее функционал (вызываются методы/функции классов из этой dll) тем самым осуществляется позднее связывание
@VladimirMozhenkov
@VladimirMozhenkov 9 жыл бұрын
Антон Самошин Ясно вы про компиляцию и использование библиотек. Это не только в .NET - это везде так, но я никогда не слышал чтобы это называли ранним и поздним связыванием. Термины, которые мне всегда встречались - это статическое и динамическое связывание. В IT вообще очень часто бывает, что одни и те-же слова используются поразному в зависимости от контекста. И плюс тут ещё вопрос английского и русского языков. Когда начал читать ваш первый комментарий, подумал, что может вы говорили про ленивую инициализацию, которую также называют поздней иногда. Это опять-же совершенно другое понятие, никак не связаное с тем, о чём я говорил в этом конкретном видео.
@antonbeton5738
@antonbeton5738 7 жыл бұрын
Крутое видео
@VictorThD
@VictorThD 6 жыл бұрын
А в языке С тоже есть динамическая типизация?
@MrRomanvideo
@MrRomanvideo 4 жыл бұрын
Это тоже самое что компайл и рантайм полиморфизм?
@the2x548
@the2x548 3 жыл бұрын
Я не понимаю, как foo(A a) вызывает a->get()
@june3878
@june3878 2 жыл бұрын
Например так: foo(A a) { a.get(); }
@aleksandrkravtsov8727
@aleksandrkravtsov8727 5 жыл бұрын
ну я хз, когда в конце чувак говорит "с вопрсами зачем это" это не сюда это по моему не ок. можно было и какой нибудь пример на пальцах показать) там массив разных зверей стандардатный или что там показывают. не все же сразу сообразят где на практике это исползовать
@Mark_Sher_
@Mark_Sher_ 7 жыл бұрын
Было бы неплохо если бы Вы нумеровали видео, тогда было бы понятно в какой последовательности смотреть.
@kgaussss7299
@kgaussss7299 4 жыл бұрын
Ох как же этого не хватает!
@user-pt2lq1ik7i
@user-pt2lq1ik7i 4 жыл бұрын
public class Test { public static void main(String[] args) { A a = new B(); int get = a.get(); String foo = a.foo(); System.out.println("get: " + get); System.out.println("foo: " + foo); } } class A { public int get() { return 100; } public static String foo() { return "foo1"; } } class B extends A { public int get() { return 200; } public static String foo() { return "foo2"; } } get: 200 foo: foo1
@Qnoize
@Qnoize 4 жыл бұрын
все верно в Java раннее связывание будет если метод static, final, private
@me2beats313
@me2beats313 4 жыл бұрын
видимо нужно для скорости
@yauhenizakhno8510
@yauhenizakhno8510 5 жыл бұрын
Немного понял, но не совсем
@ninjacheese2168
@ninjacheese2168 4 жыл бұрын
Поздняя типизация. ОК.
@mrakobes228
@mrakobes228 5 ай бұрын
Метод потомка вызовется, если метод переопределён, если метод не переопределён или перегружен, или имеет модификаторы (private,static,final) вызовется метод родителя родителя!!!!!!!!!!! ЧЁ орать то!!!ГЫЫЫ!!!
@JIockjoy
@JIockjoy 2 жыл бұрын
Да, уж и зачем я связался.
@mailmeeeee
@mailmeeeee 7 жыл бұрын
Посмотри на оформление своих видео в листинге и скажи: о чем оно? Посмотри на описание своего видео? и скажи: о чем видео то? Я только из комментов понял, что речь про Java...
@maxlich9139
@maxlich9139 7 жыл бұрын
какая джава?! он использует язык с++
@mailmeeeee
@mailmeeeee 7 жыл бұрын
вот и я про то же)) даже из комментов нихера не понятно о чем речь идет=)) гений маркетинга) код документирует наверное так же))
@maxlich9139
@maxlich9139 7 жыл бұрын
Да, это минус, что он не указывает язык. Я давно изучал си++ и уже не сильно хорошо помню его синтаксис, поэтому смотрю на год, и гадаю, какой это язык (а сейчас там много си-подобных языков)
@sammeroff
@sammeroff 6 жыл бұрын
Причем здесь язык? Это понятия из ООП, которые относятся к любому ООП языку.
Functor или Объект-Функция
10:30
Volodya Mozhenkov
Рет қаралды 8 М.
Абстрактный класс в ООП
10:28
Volodya Mozhenkov
Рет қаралды 40 М.
Violet Beauregarde Doll🫐
00:58
PIRANKA
Рет қаралды 48 МЛН
مسبح السرير #قصير
00:19
سكتشات وحركات
Рет қаралды 11 МЛН
Real Or Cake For $10,000
00:37
MrBeast
Рет қаралды 58 МЛН
Чёрная ДЫРА 🕳️ | WICSUR #shorts
00:49
Бискас
Рет қаралды 7 МЛН
Наследование
12:31
Volodya Mozhenkov
Рет қаралды 30 М.
Интерфейс в ООП
13:46
Volodya Mozhenkov
Рет қаралды 44 М.
Красно-Чёрные Деревья
23:54
Volodya Mozhenkov
Рет қаралды 55 М.
Фабричный метод
15:48
Volodya Mozhenkov
Рет қаралды 59 М.
Множественное Наследование
17:18
Volodya Mozhenkov
Рет қаралды 12 М.
THE MOST FREQUENT MISCONCEPTIONS ABOUT OOP
19:37
ExtremeCode
Рет қаралды 550 М.
Violet Beauregarde Doll🫐
00:58
PIRANKA
Рет қаралды 48 МЛН