КАК Я ВЫЧИСЛИЛ МОШЕННИКА ПО IP КОТОРЫЙ ПЫТАЛСЯ ОБМАНУТЬ МЕНЯ!!!������. Сюда вы можете кидать смешные моменты: bestmomentsbrawlstars@mail.ru. ЕСЛИ ТЫ ПОДПИШЕШЬСЯ, ТО ТЕБЕ ВЫПАДЕТ ЛЕГА!!! Мой ВК: https://vk.com/aksivk. Группа ВК: https://vk.com/public191629842. Сервер в дискорде https://discord.gg/Ws7GVh
В этом видео я объясняю на примерах, зачем в Java нужны ковариантные и контравариантные типы, как работает объявление параметров обобщенных типов с ключевыми словами super и extends. Рассматриваем подробно как ведут себя ковариантные и контравариантные типы на примере коллекции ArrayList.. #ArhiTutorials
Специальная теория относительности | полилинейные формы | немного повторения. Уважаемые пользователи YouTube рад приветствовать вас на моём канале! Здесь вы найдёте массу материала по математике и физике различного уровня трудности.. Стараюсь изложение делать максимально замкнутым.. Чтобы для понимания рассказываемого было достаточно того, что содержится на канале.. На канале довольно много материала и для более быстрого поиска вы всегда можете обратиться с вопросами лично ко мне.. Также я стараюсь развивать инфраструктуру для навигации.. Для взаимодействия с вами у меня есть также ряд ресурсов: https://vk.com/pauldenker (моя группа в контакте). https://vk.com/paul_denker (моя личная страница). https://twitter.com/varion_denker8 (мой твиттер). https://ru-ru.facebook.com/people/Павел-Шестопалов/1618366602 (моя страница в фейсбуке). http://pauldenker.ru/(мой персональный сайт). Буду рад Вашим комментариям и пожеланиям! Подписывайтесь на мой канал и следите за его пополнением… Ритм около пяти видео в день.
Промокод на скидку 15% на все курсы ITVDNH94BCAB. Полный видеокурс: http://itvdn.com/ru/video/c-srarp-generics?utm_source=yb_promo_csgen. В данном видео уроке рассмотрим два способа как можно влиять на универсальные параметры типов это ограничения, ковариантность и контравариантность.. Благодарим всех за лайки, перепосты, добавление в избранное! http://itvdn.com – видеопортал по обучению программированию. А также подписывайтесь на нас в социальных сетях: https://vk.com/itvdn. https://www.facebook.com/ITVDN.EDU. https://twitter.com/ITVDN/. https://www.linkedin.com/company/itvdn. https://plus.google.com/u/0/+ItvdnEDU…. Свои предложения присылайте на почту: support@itvdn
###############################################. Записываю уроки по C#, Java, Python, Go, JavaScript и прочие видео на темы связанные с программированием.. — #программирование. #c#. #python. #java. #уроки c#. #c# программирование. #golang. #go. #javascript
00:00:00 1. Ковариантные и контрвариантные координаты. 00:41:56 2. Изометрические операторы. Понятие группы. 01:09:10 3. Свойства ортогональных унитарных матриц. 01:18:26 4. Группа О(2)
Оу, в этом видео мы познакомимся с такими страшными терминами как инвариантность, контравариантность и ковариантность и узнаем что это из себя представляет в обобщенных интерфейсах. ● VK: http://bit.ly/vk_extremecodetv. ● Telegram Chat: http://bit.ly/telegram_extremecodetv. ● Twitter: http://bit.ly/twitter_extremecodetv. ● GitHub: http://bit.ly/github_extremecodetv
Я покопался, почитал, посмотрел видос и вроде бы понял кое-что, поделюсь с вами) Есть принцип подстановки Лисков, в котором говорится следующее: должна существовать возможность использовать объекты производного класса. Это значит, что объекты производного класса должны вести себя согласованно, согласно контракту базового класса. Под контрактом класса понимается ожидаемое от него поведение. Представим, что у родительского и класса наследника разные контракты, то есть, работают они настолько по-разному, что нам придется в коде этот класс наследник обрабатывать по особому, а не как наследника базового класса. Тут же теряется суть наследования использование класса наследника как базовый класс. Поэтому, когда мы думаем, можно ли сделать какой-то класс наследником другого, нам нужно учитывать не только размытое правило: спроси себя есть между классом-наследником и родительским классом отношение «является». Нам нужно также учитывать, что их контракты будут СОГЛАСОВАННЫМИ. То есть, во время работы программы, мы должны знать, чего ожидать от наследников какого-то класса и не думать о том, что их надо как-то по специальному обрабатывать, ведь у них почему то есть такая функциональность, которая не согласуется с базовым классом. Но, если объекты всё таки связать в одну иерархию хочется, а контракты их разные, это совсем на значит, что сделать это невозможно. А что, есть сделать эти классы immutable, то есть, неизменяемыми? У неизменяемого класса нельзя менять его данные, после того, как он был создан. Если данные менять нельзя, значит, исчезают методы обработки этих данных (зачем методы обработки, если данные неизменяемые?). То есть, мы можем лишь достать что-то оттуда (геттер, например). Что это означает? Это означает, никакой класс не сможет сделать что-то с нашими данными. Не сможет сделать что-то такое, что способно сделать их невалидными.
Именно этой же логики следуют правила ковариантности и контравариантности обобщений в языке C#. Так, именно отсутствие изменяемости, позволяет трактовать объект IEnumerable как IEnumerable
На счет того что ковариантность и контрвариантность плюют на строгую типизацию это не совсем так, поскольку как только вы их применяете, на методы интерфейса как раз и налагаются ограничения по поводу возвращаемого типа и типа аргумента. Так что этот вопрос освещен не полностью в частности зачем применяются такие ограничения. Автор либо сам не знает либо очень спешил… куда-то. Видимо друзья перед записью видео позвонили и пригласили пить пиво, а тут ролик еще не готов))
Как я поняла, ковариантны если могут использовать наследственность а НЕковариантны, это жестко прописано что слева то и справа? похож на джава… массивы ковариантны, но при получении можно огрести exception, а коллекции НЕковариантны… где я?
У Вас на редкость, для программера, хорошо поставлена речь! Спасибо! ИнВариантность по простому, без вариантов)), если то, только его КоВариантность со вариантность extends AnyType> он и все его потомки. Но из Вашего объяснения следует не понятность в термине «читать» *.get(i), которую, мне думается, нужно понимать, как «присваивать ссылкам типа предков AnyType». В этом смысле массивы ковариантны. С КонтраВариантностью придумать простую терминологическую ассоциацию мне не удалось((. Для «чтения», гарантированный предок это Object, если я правильно понял?
Наконец-то нашёл канал, где объясняют что-то, чего я не знаю.) Лайк и подписка.)
Очень хочется человеческим и простым языком услышать про асинхронные операции, Task, async await и прочую дичь. Вроде я понимаю, что они делают, но есть мнение, что я что-то упускаю.)
Я ПОМНЮ КАК ЧУТЬ Его НЕ ПОТЕРЯЛА!!!! У МЕНЯ ТАМ 8000 И 3 МИФИКА всё происходило в другой игре. Я играла на маменом телефоне и когда я хотела кинуть почту (настоящую) она его забрала ГОСПОДИ СПАСИБО МАМАААА❤️❤️❤️❤️❤️❤️
РЕБЯТ, YouTube отключает «колокольчик», проверьте включён ли он у вас!!!
Сервер в дискорде https://discord.gg/GsARGDN
Сюда вы можете кидать смешные моменты: bestmomentsbrawlstars@mail.ru
Мой ВК: https://vk.com/aksivk
Группа ВК: https://vk.com/public191629842
Я покопался, почитал, посмотрел видос и вроде бы понял кое-что, поделюсь с вами)
Есть принцип подстановки Лисков, в котором говорится следующее:
должна существовать возможность использовать объекты производного класса. Это значит, что объекты производного класса должны вести себя согласованно, согласно контракту базового класса.
Под контрактом класса понимается ожидаемое от него поведение. Представим, что у родительского и класса наследника разные контракты, то есть, работают они настолько по-разному, что нам придется в коде этот класс наследник обрабатывать по особому, а не как наследника базового класса. Тут же теряется суть наследования использование класса наследника как базовый класс.
Поэтому, когда мы думаем, можно ли сделать какой-то класс наследником другого, нам нужно учитывать не только размытое правило: спроси себя есть между классом-наследником и родительским классом отношение «является». Нам нужно также учитывать, что их контракты будут СОГЛАСОВАННЫМИ. То есть, во время работы программы, мы должны знать, чего ожидать от наследников какого-то класса и не думать о том, что их надо как-то по специальному обрабатывать, ведь у них почему то есть такая функциональность, которая не согласуется с базовым классом.
Но, если объекты всё таки связать в одну иерархию хочется, а контракты их разные, это совсем на значит, что сделать это невозможно.
А что, есть сделать эти классы immutable, то есть, неизменяемыми? У неизменяемого класса нельзя менять его данные, после того, как он был создан. Если данные менять нельзя, значит, исчезают методы обработки этих данных (зачем методы обработки, если данные неизменяемые?). То есть, мы можем лишь достать что-то оттуда (геттер, например). Что это означает? Это означает, никакой класс не сможет сделать что-то с нашими данными. Не сможет сделать что-то такое, что способно сделать их невалидными.
Именно этой же логики следуют правила ковариантности и контравариантности обобщений в языке C#. Так, именно отсутствие изменяемости, позволяет трактовать объект IEnumerable как IEnumerable
На счет того что ковариантность и контрвариантность плюют на строгую типизацию это не совсем так, поскольку как только вы их применяете, на методы интерфейса как раз и налагаются ограничения по поводу возвращаемого типа и типа аргумента. Так что этот вопрос освещен не полностью в частности зачем применяются такие ограничения. Автор либо сам не знает либо очень спешил… куда-то. Видимо друзья перед записью видео позвонили и пригласили пить пиво, а тут ролик еще не готов))
Как я поняла, ковариантны если могут использовать наследственность а НЕковариантны, это жестко прописано что слева то и справа? похож на джава… массивы ковариантны, но при получении можно огрести exception, а коллекции НЕковариантны… где я?
У Вас на редкость, для программера, хорошо поставлена речь! Спасибо! то, только его
ИнВариантность по простому, без вариантов)), если
КоВариантность со вариантность extends AnyType> он и все его потомки. Но из Вашего объяснения следует не понятность в термине «читать» *.get(i), которую, мне думается, нужно понимать, как «присваивать ссылкам типа предков AnyType». В этом смысле массивы ковариантны.
С КонтраВариантностью придумать простую терминологическую ассоциацию мне не удалось((. Для «чтения», гарантированный предок это Object, если я правильно понял?
Наконец-то нашёл канал, где объясняют что-то, чего я не знаю.) Лайк и подписка.)
Очень хочется человеческим и простым языком услышать про асинхронные операции, Task, async await и прочую дичь. Вроде я понимаю, что они делают, но есть мнение, что я что-то упускаю.)
Аааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааа
Я ПОМНЮ КАК ЧУТЬ Его НЕ ПОТЕРЯЛА!!!!
У МЕНЯ ТАМ 8000 И 3 МИФИКА
всё происходило в другой игре. Я играла на маменом телефоне и когда я хотела кинуть почту (настоящую) она его забрала
ГОСПОДИ СПАСИБО МАМАААА❤️❤️❤️❤️❤️❤️