Изучаем язык Dart - Часть 2. ООП, Миксины, Generics, async/await.

  Рет қаралды 26,076

codeandart main

codeandart main

Күн бұрын

Пікірлер: 62
@codeandartmain
@codeandartmain 4 жыл бұрын
Всем привет и ☕! Таймкоды ниже. 00:05 - ООП. Конструкторы, переменные экземпляра 04:40 - ООП. Именованные конструкторы 15:01 - ООП. Список инициализаторов 19:15 - ООП. Перенаправление конструкторов 21:10 - ООП. Константный конструктор 23:30 - ООП. Factory конструкторы 27:07 - ООП. Методы экземпляра, getters и setters 31:25 - ООП. Абстрактные методы и абстрактные классы 34:00 - ООП. Неявные интерфейсы 38:47 - ООП. Extension методы, переопределение операторов 45:20 - ООП. Переменные и методы класса 47:10 - Перечисления 51:45 - Mixins (примеси) 57:15 - Generics, обобщённые типы 1:12:21 - Асинхронное программирование, async/await 1:24:25 - Потоки, небольшой пример
@akaassa73
@akaassa73 3 жыл бұрын
Чтобы подцепить таймкоды в плеере, нужно сделать первый 00:00 :)
@fedornikolenko7316
@fedornikolenko7316 4 жыл бұрын
Посмотрел первый урок, думал ну круто, буду ждать следующий, думал выйдет через недельку или две, но не на следующий день:) Отдельное спасибо за это :)
@Roman_jv
@Roman_jv 4 жыл бұрын
Просто положу это комментарий здесь - АВТОР КРАСАВЧИК!!!!
@KobaltMetal
@KobaltMetal 4 жыл бұрын
чуваааак, низкий те поклон, свичнулся с нативок на флаттер и твои уроки помогли въехать в тему за считанные дни. Жду когда подробно пояснишь за стримы и RxDart)))
@shohzodzet
@shohzodzet 3 жыл бұрын
Огромное спасибо, что разобрал такие сложные (для новичков) темы !
@paolkrogolov1425
@paolkrogolov1425 Жыл бұрын
Добрый вечер, очень интересно и познавательно! Лайк+ подписка!
@leonids5930
@leonids5930 4 жыл бұрын
Отличное видео, очень понятное объяснение. Спасибо!
@romandg884
@romandg884 4 жыл бұрын
Добрый вечер! Очень нравятся твои уроки! Хотелось бы чтобы ты возобновил их, все будут тебе очень благодарны! Продолжай пожалуйста. Расскажи подробнее про RxDart, и про Stream как ты и хотел. Большое спасибо, за твой труд. Будем, ждать продолжения! )))
@peiiiajikuh
@peiiiajikuh 3 жыл бұрын
В 1:02:40 можно добавить дженерики и к классу MyCache, чтобы писать код было ещё удобнее: abstract class Cache { T getByKey(String key); void setByKey(String key, T value); } class MyCache extends Cache { Map cache = {}; T getByKey(String key) { return cache[key]; } void setByKey(String key, T value) { cache[key] = value; } } void main() { var cache = MyCache(); cache.setByKey('key', 098987); print(cache.getByKey('key')); }
@OlexanderRudenko
@OlexanderRudenko 4 жыл бұрын
Большое спасибо!
@sergeyvoronov8862
@sergeyvoronov8862 4 жыл бұрын
Когда впервые смотрел код приложений на flutter было тяжело понять что вообще обозначают его конструкции, сейчас стало гораздо понятнее. Спасибо пойду смотреть следующие уроки.
@melonplayground5975
@melonplayground5975 3 жыл бұрын
урок класс, всё подробно рассказано, только подмечу одно 19.07; 12+20 = 32*10 = 320 / 2 = 160 равносильно тому что просто умножим 32 * 5 = 160)
@ЗахарРудченко
@ЗахарРудченко 4 жыл бұрын
@codeandart main, скажите, пожалуйста, будет ли продолжение?
@vlad_s
@vlad_s 3 жыл бұрын
А не перепутаны определения абстрактного класса и интерфейса ?
@morrigan_ghost
@morrigan_ghost 3 жыл бұрын
уххх как же хорошо ... спасибо
@РинатГазизуллин-й6р
@РинатГазизуллин-й6р Жыл бұрын
Часть 3. будет или может уже есть?
@alexpresley8002
@alexpresley8002 4 жыл бұрын
это финальный урок, или еще будут ? Спасибо !!!
@antonykruhliashov6595
@antonykruhliashov6595 2 жыл бұрын
Спасибо за уроки! Не всегда все нюансы проясняются при чтении на другом языке документации.
@alexplay9719
@alexplay9719 4 жыл бұрын
Было просто супер разобрать более подробно различные архитектуры с практическими примерами, одна архитектура == одно видео. И хочу спросить что за анимированные обои на рабочем столе?
@codeandartmain
@codeandartmain 4 жыл бұрын
Программка в стиме Wallpaper Engine
@alexplay9719
@alexplay9719 4 жыл бұрын
Да, то что это WE я догадался, а как сами обои найти, там их тыщи )))
@ArtemFun
@ArtemFun 4 жыл бұрын
Подскажите пожалуйста, раз уж была начата тема РПГ в начале. Я создал класс паладина, прописал ему имя, атаку, защиту, показатель максимального здоровья и текущее здоровье. Потом сделал класс Монстра, с похожими полями. Ну, или, создал наследника класса, дарк паладина. Что мне теперь нужно делать, чтоб изобразить некую драку между ними в цикле. Как должен реализовываться механизм взаимодействия между классами. Прошу прощения за вопрос за пределами дарта и флаттера, просто я только начал ООП недавно, но хорошо знаком с функциональным программированием. Мне очень надо пару таких кирпичиков, за которые можно зацепиться в ООП и попрактиковаться на легком и интересном проекте. Очень трудно учить программирование (тем более ООП), на этих мелких участках кода. Когда ничего не понятно, для чего, почему, какое реальное применение данной конструкции... ООП же специально создавалось для сложных проектов. Так почему ООП учиться на таких простых примерах, где ООП нафиг не нужен! Извините наболело. Автору видео респект, он наоборот попытался выйти за рамки этого неприятного недоразумения. Наверное хорошие программисты интуитивно пытаются написать код проще, но это не способствует обучению, если такая цель была поставлена. Еще раз извиняюсь, это ни в коем случае не претензия, просто имо рациональное предложение. (для следующего видео )) Например, что мешало реализовать два класса, в этом примере. Паладина с одним видом конструктора, а монстра с другим. и оставить два этих примера в коде. Ну и дальше там тоже можно было парой лишних строчек интегрировать остальной материал в код. Было бы же офигенно круто!
@codeandartmain
@codeandartmain 4 жыл бұрын
По этому видео, не нужно ООП учить, а то правда можно сильно запутаться, еще раз повторюсь, это краткий обзор дарта (для тех кто в теме) Но ошибки свои понял, спасибо)
@cglike
@cglike 4 жыл бұрын
Видео отличное, особенно на скорости 1.5х Ты забыл упомянуть что ограничивая миксин классом можно в самом миксине юзать методы класса.
@Dragonboh1
@Dragonboh1 3 жыл бұрын
Ошибочка, ви в описании перепутали интерфейс с абстрактним класом. Интерфейс всегда принуждает переоприделить , а вот абстрактний улас может иметь свою реализацию методов которие неабстрактние. Толку с реализации интерфейса, если надо всегда ее переоприделить?
@maksimdeve1538
@maksimdeve1538 3 жыл бұрын
Судя по тому примеру, что он привел - он не понимает для чего нужны абстрактные классы и интерфейсы
@5111
@5111 4 жыл бұрын
Таймлайн 10:50, ты говоришь "оценивается КОМПИЛЯТОРОМ", dart же интерпретируемый язык. Видео топ, лайк + подписка.
@lumen4419
@lumen4419 4 жыл бұрын
Все зависит от контекста исполнения.
@user-ms5pc2vj8u
@user-ms5pc2vj8u 4 жыл бұрын
Отличный урок спасибо!
@ArtemFun
@ArtemFun 4 жыл бұрын
Спасибо. Перехожу с пхп функционального кодинга. На Флаттер и Дарт. Есть много вопросов по ООП, так-как почти не использовал его вообще. Очень крутая идея объяснять ООП на таком живом игровом примере, а не на осточертелых кошках и машинах. Возникли вопросы на 2:26 - String toString, это Дарт, сам знает, что на принт нужно теперь показывать это строку?
@codeandartmain
@codeandartmain 4 жыл бұрын
Да) переопределяем метод toString для текстового отображения)
@codeandartmain
@codeandartmain 4 жыл бұрын
Если не использовали ООП, лучше подробней про это почитать где-нибудь. Т. к. В этом ролике очень быстро пробегаемся по тому как выглядит ООП в Dart.
@ArtemFun
@ArtemFun 4 жыл бұрын
@@codeandartmain спасибо, я как раз этим занимался пару деньков, читал смотрел ролики про ООП общие, напитывался ООП парадигмой )). Сейчас сел писать, чтоб к коду привыкнуть. Параллельно еще по другому уроку иду и все наработки в одну программу пишу. Да везде не договаривают, всем не угодишь, кто-то лучше знает, кто-то хуже, один так делает, другой по другому, у кого-то сладкий код, у кого-то горький )) Но сама идея писать обучающую программу по ООП в стиле РПГ это гениально. В итоге, полноценная небольшая игра может получится. Так что, сейчас для узучение Флаттер и Дарт, для меня этот ролик, просто супер подарок! Огромное спасибо. Подписка и лайки однозначно ))
@ArtemFun
@ArtemFun 4 жыл бұрын
@@codeandartmain прошу прощения, а можно про toString еще чуток. То-есть стандартный метод toString(), который я использую, чтоб вписывать в строку цифры, таким образом переопределяется для этого класса? А откуда и как потом print(newHero) знает, что нужно именно этот метод toString применить? что-то где-то я упускаю ((
@codeandartmain
@codeandartmain 4 жыл бұрын
@@ArtemFun Тут такая тема, что есть Базовый класс для ВСЕХ объектов Dart, это класс Object. ЛЮБОЙ другой класс неявно является его наследником. И этот класс Object имеет свои методы, которые, следовательно передаются его наследникам. Например, у Object как раз таки и есть стандартный метод toString() для строкового представления объекта. (при вызове print() например) И наследники Object могут этот метод переопределять, для своего строкового представления. Это в любом ооп языке так )
@sinchrotron
@sinchrotron 2 жыл бұрын
Интересно, а если сначала рандомно по клавишам стучать, а потом бэкспэйсить и печатать то, что нужно, может всё таки более эффективно будет?
@rinatkhusainov5894
@rinatkhusainov5894 3 жыл бұрын
Спасибо!
@НайтРайдер
@НайтРайдер 3 жыл бұрын
Весь урок слова "atack" и "defense" мозолили глаза (attack и defence верно) :D
@maximo6199
@maximo6199 4 жыл бұрын
Только заинтересовался Dart, он мне показался очень похожим на Kotlin. Но эти " штучки " с js меня убивают)?
@MoRFaiR
@MoRFaiR 4 жыл бұрын
А обязательно в конструкторе писать название класса? Это так утомительно... И если я захочу переименовать класс, так еще и конструктор переименовывать?... в питоне __init__ и всё
@ArtemFun
@ArtemFun 4 жыл бұрын
Спасибо но немного обидно, что автор видео ушел от начатой в начале темы и не попробовал показать все остальные темы ООП на примере общего кода простой РПГ игры.
@codeandartmain
@codeandartmain 4 жыл бұрын
Хм, балин, я даже в начале и не подумал, чтобы полностью все примеры через "персонажей рпгшных" сделать 🤔 Было бы прикольно, наверное) Ну уже как есть 😅
@paul_wiggin
@paul_wiggin 4 жыл бұрын
Предлагаю подать коллективный иск в суд на Google: За нанесенный ушерб здоровью программистов, а именно: развитие диабета в следствие передоза синтаксическим сахаром при работе с dart.
@ЕвгенийЕвгеньевич-е3с
@ЕвгенийЕвгеньевич-е3с 4 жыл бұрын
Шарписты что то не страдают, а там сахар на сахаре, сахаром погоняет)
@IvanGalkin
@IvanGalkin 4 жыл бұрын
Спасибо что не whitePower))
@thomastesla5436
@thomastesla5436 3 жыл бұрын
Можно ли, считать, что вы полностью овладели основами Dart если посмотрели это видеоролики?
@lumen4419
@lumen4419 4 жыл бұрын
Что за переводчик у Вас используется?
@shohzodzet
@shohzodzet 3 жыл бұрын
Это расширение для браузера от Lingualeo
@MoRFaiR
@MoRFaiR 4 жыл бұрын
Зачем делать Class.call() когда можно просто функцию отдельно написать? Фаще не понятно..
@vesh95
@vesh95 3 жыл бұрын
Мне кажется тут ошибка. Как правило интерфейсы не содержат никаких реализаций, а абстракции могут содержать реализованные методы.
@codeandartmain
@codeandartmain 3 жыл бұрын
Да, обычно интерфейсы не содержат реализаций. Абстрактные классы могут содержать. Просто ещё в Dart можно использовать неявные интерфейсы, т.е. имплементировать и обычный класс (взять только, если грубо сказать, "названия" свойств, методов, ... и реализовать в своем классе)
@vesh95
@vesh95 3 жыл бұрын
@@codeandartmain Теперь понял о чем речь, вопрос сразу отпал. Только не названия, а скорее, сигнатуры
@Bussynessmens
@Bussynessmens 4 жыл бұрын
Ах*еть, хочу купить продвинутые курсы у него.
@TheJustPlayChannel
@TheJustPlayChannel 4 жыл бұрын
Привет. ТЫ бросил канал? Нового ничего не ждать? А то хотел по твоим видео учится, но смотрю 4 месяца как ничего нового на канале нет...
@lustach8378
@lustach8378 4 жыл бұрын
Видео актуальности пока не потеряло
@KostiaBazrov
@KostiaBazrov 4 жыл бұрын
усе! асилил ! мона двигатьСя далее .
@РусланКаюмов-щ1ж
@РусланКаюмов-щ1ж 4 жыл бұрын
Форматирование капец бесит, автор - может шрифт уменьшить ? В остальном - норм.
@СергейСергей-в2к6с
@СергейСергей-в2к6с 4 жыл бұрын
На мой вкус шрифт что надо.
@vvan3711
@vvan3711 4 жыл бұрын
один единственный человек не смог смотреть на число дизлайков равное нулю
Golang | Все Основы за 4 Часа Для Начинающих
3:59:49
OCCUPIED #shortssprintbrasil
0:37
Natan por Aí
Рет қаралды 131 МЛН
She wanted to set me up #shorts by Tsuriki Show
0:56
Tsuriki Show
Рет қаралды 8 МЛН
Хаги Ваги говорит разными голосами
0:22
Фани Хани
Рет қаралды 2,2 МЛН
Their Boat Engine Fell Off
0:13
Newsflare
Рет қаралды 15 МЛН
Работа с графикой во Flutter - Андрей Смирнов, Wrike
43:25
OCCUPIED #shortssprintbrasil
0:37
Natan por Aí
Рет қаралды 131 МЛН