ТВОЯ ГЛАВНАЯ ОШИБКА В ООП

  Рет қаралды 617,722

ExtremeCode

ExtremeCode

Күн бұрын

Пікірлер: 1 000
@ExtremeCode
@ExtremeCode 5 жыл бұрын
Да, тут должен быть какой то смешной комментарий, совсем забыл. Ставь лукас, а то че как бивень А для бустеров у нас есть эксклюзивный контент: boosty.to/extremecode P.S. 3-е сентября пришлось вырезать, дядя Шуфутинский за 10-и секундную вставку бабок хочет -_______________-
@ExtremeCode
@ExtremeCode 5 жыл бұрын
bool understand = false; do { var result = youtubeClient.see("yNUJ3vAeyJQ"); understand = brain.getUnderstandState(result); } while (!understand);
@alexeysamovich301
@alexeysamovich301 5 жыл бұрын
@fff аа Смотри видео, пока не вдуплишь.
@mikhailturov7066
@mikhailturov7066 5 жыл бұрын
​@fff аа if (youtubeClient.comment.Contains("@ExtremeCode а по-русски?") && youtubeClient.comment.author() == "fff aa")) { this.Translate(); } public void Translate() { bool понимают = ложь; делать { различный результат = ютубКлиент.увидеть("yNUJ3vAeyJQ"); понимают = мозг.получитьСостояниеПонимания(результат); } когда (!понять); }
@sledleo
@sledleo 5 жыл бұрын
@@ExtremeCode Канешна болтовня, как и определения - занимательно и не обременительна для автора. Но для простолюдинов было бы нагляднее ввиде схем и картинок пояснять. Ибо простолюдины из болтовни образы не генерят...
@sandorik
@sandorik 5 жыл бұрын
@fff аа В конце видео полное определение.Разворачиваешь его на весь экран и сиди медитируй пока не прийдёт прозрение.
@karfagen86
@karfagen86 3 жыл бұрын
- Какие паттерны ООП вы знаете? - Костылирование, Инкостыляция и Поликостылизм.
@bltvg
@bltvg 3 жыл бұрын
Это не паттерны ООП, а принципы ООП. Паттерны - это синглкостыльтон, абстрактная фабрика костылей и всё такое.
@артёмБратчук-ф1л
@артёмБратчук-ф1л 3 жыл бұрын
@@bltvg ну если уже правильно говорить, тогда это и не принципы. Это парадигмы)
@Bloody_River
@Bloody_River 3 жыл бұрын
@@артёмБратчук-ф1л костыли.
@ДмитрийОсипов-м9д
@ДмитрийОсипов-м9д 3 жыл бұрын
@@артёмБратчук-ф1л ПАРАдигмы(типа как параолимпиада)
@istox2787
@istox2787 3 жыл бұрын
А как-же акостыляция?
@nik1tosssa
@nik1tosssa 5 жыл бұрын
Ничего не понял, но из-за того, что достаточно хорошо кивал головой, теперь учусь в стенфорде
@ark-kun7221
@ark-kun7221 5 жыл бұрын
Завтра первая пара в какой аудитории?
@Calvin_M.
@Calvin_M. 5 жыл бұрын
@@ark-kun7221 Глупый вопрос) Зависит на кого учишься, но ты явно не знал об этом.
@StanSlider
@StanSlider 5 жыл бұрын
Интересно хоть было?
@alexanderbelov6892
@alexanderbelov6892 4 жыл бұрын
Кивающие головой - это аутисты?
@НиколайМорозов-д4о
@НиколайМорозов-д4о 4 жыл бұрын
@@alexanderbelov6892 нет, киватисты
@anthonyminchenko3109
@anthonyminchenko3109 5 жыл бұрын
Проорал с синтаксиса JS-фреймворка
@yulian_13
@yulian_13 5 жыл бұрын
Можно объяснить?
@slava0207
@slava0207 5 жыл бұрын
@@yulian_13 .cs != JS, Using Linq; так же не совсем, смекаешь)
@johnd1431
@johnd1431 5 жыл бұрын
Юлиан Шмиголь я тоже не понял шутки, там было приложение на С#, причем тут JS фреймворки и после какого слова надо было заржать
@tozpeak
@tozpeak 5 жыл бұрын
@@johnd1431 шутка про то, что в js постоянно появляются фреймворки, и что вполне возможно, где-то однажды появится фреймворк, который позволит писать на c# не выходя из js.
@Nopefish
@Nopefish 5 жыл бұрын
@@tozpeak очень сложная шутка. Можно ещё сложнее?
@dudenarima2528
@dudenarima2528 5 жыл бұрын
ОБОЖАЮ когда ты приводишь по 20 аналогий ежесекундно
@IIEPEDO3
@IIEPEDO3 4 жыл бұрын
Суть такова, что тебе не нужно знать как работает автомобиль для того, чтобы пользоваться его интерфейсом (рулевым колесом, рычагом кпп, и педалями), т.к. внутреннее устройство инкапсулировано. Говорю этот пример на собесах и норм :)
@anrybalka
@anrybalka 4 жыл бұрын
Кароч, инкапсуляция - это объединение данных и методов работы с этими данными в одной упаковке («капсуле»). Основа инкапсуляции (капсула) - КЛАСС.
@kimtyatya
@kimtyatya Жыл бұрын
Боже я ахуел когда узнал это, мне тупа мои азиатские глаза открыли
@Watozarato
@Watozarato 6 ай бұрын
Функция-конструктор
@АнтонЛапин-е2д
@АнтонЛапин-е2д 3 жыл бұрын
Чувак, как хорошо, что твое видео попало ко мне в рекомендации. Завтра иду на собеседование, теперь надеюсь, что меня спросят про инкапсуляцию. И только про нее:)
@antonmarkin6491
@antonmarkin6491 3 жыл бұрын
Как результаты собеседования?
@farpurple
@farpurple 2 жыл бұрын
Как результаты жизни?
@neilwilson4075
@neilwilson4075 Жыл бұрын
​@@farpurpleон умер
@farpurple
@farpurple Жыл бұрын
@@neilwilson4075 о7
@wwlb4970
@wwlb4970 3 жыл бұрын
Чтобы понять в простых словах что такое инкапсуляция, стоит, возможно, понять, что является её нарушением. Нет, объявление полей объекта вместо приватных публичными - это не нарушение инкапсуляции. Крайне распространённое нарушение И. - это уверенность в том, что какое-либо из состояний системы вам заранее известно. - Если вы создаёте метод, держа в уме, что какая-то пропертя в памяти\базе\на фронте\на бэке будет именно такой; - Если вы умело полагаете что, "в основном", данный метод вызывается лишь когда был вызван иной из другой части программы - Если вы уверены что реализация сервиса\репозитории\дао\базы\любого слоя на ваш выбор всегда будет такой как сейчас - И даже если вы наделяете переменную свойствами, которые ей не гарантированы - "эта переменная не может быть НУЛЛ" - "в этой строке по-любому можно вставить значение форматированием" - "пользователь не идиот и знает регекспы" то вы нарушаете инкапсуляцию в каком-то очень глобальном масштабе. Конечно, сокрытие реализации от пользователя - это инкапсуляция. Но это примерно такая же инкапсуляция, как тот полиморфизм, который показывают студентам на примере собак и кошек. Вроде полиморфизм, но становится ли понятней когда вместо собак и кошек AbstractServiceFactoryFactoryFactory?
@getteg6468
@getteg6468 5 жыл бұрын
можно не смотреть видео полностью, 8:14 мин главная суть.
@Istanislav1
@Istanislav1 3 жыл бұрын
Спасибо, братанчик
@denysgranevych8279
@denysgranevych8279 3 жыл бұрын
Очень полезно
@bltvg
@bltvg 3 жыл бұрын
Действительно, можно было уместить в одну картинку.
@drsmith9536
@drsmith9536 3 жыл бұрын
То что на слайде это не понятие инкапсуляции, а имплементация инкапсуляции в языке. Реализация скрывает детали не от пользователя, а от следующего уровня абстракции.
@СергейГундоров-ц8ъ
@СергейГундоров-ц8ъ 3 жыл бұрын
Спсб
@romanalekseev5027
@romanalekseev5027 2 жыл бұрын
Братан, харош!!! Давай, давай, вперёд! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого вот ещё почаще?
@MsRomanFed
@MsRomanFed 3 жыл бұрын
Код, написанный на С в начале ролика, как пример НЕинкапсуляции, полностью удовлетворяет "понятному и полному" определению инкапсуляции данному на 8:22
@АльбертНикульшин-ш3б
@АльбертНикульшин-ш3б 3 жыл бұрын
Самое смешное что ровно такой же пример с Point на языке С был в книге "Чистая архитектура" Мартина... и, внезапно, выступала примером инкапсуляции :)
@askolit1458
@askolit1458 2 жыл бұрын
На С не было единого объекта, который объеденил данные и методы
@proleternal
@proleternal Жыл бұрын
​@@askolit1458а create и getdistance - это, по-твоему, что? Псы нacpaли?
@LithiumDeuteride-6
@LithiumDeuteride-6 Жыл бұрын
Сокрытие требуется чтобы не допустить некорректное обращения к методам и членам объекта. Например, в XRay есть вектор который надо инициализировать перед прочтением. Значит закрываем его protected, а get у него конечно public, и всё, никаких проблем не имеем. А если вектор будет так же public, то можем иметь ошибки которые могут быть достаточно трудно обнаруживаемые, если другой программист который не в курсе проблемы, будет использовать этот член объекта напрямую.
@princessmary5556
@princessmary5556 Жыл бұрын
Вы пишете: *Сокрытие требуется чтобы не допустить некорректное обращения к методам и членам объекта* Чушь.
@princessmary5556
@princessmary5556 Жыл бұрын
Вы пишете: *Например, в XRay есть вектор который надо инициализировать перед прочтением. Значит закрываем его protected* Это не сокрытие. Ограничение доступа к данным ничего ни от кого не скрывает.
@andreyshostik7703
@andreyshostik7703 3 жыл бұрын
Инкапсуляция - принцип который связывает данные и методы(это реализует конструкция класса) что позволяет скрыть детали реализации и упростить использование интерфейса взаимодействия, используется совместно с модификаторами доступа что бы указать что будет интерфейсом взаимодействия, а что деталью реализации.
@princessmary5556
@princessmary5556 Жыл бұрын
Бред. Инкапсуляция вообще не привязана к ООП. А "объединение данных и методов их обработки" - это концепт понятия "класса". К инкапсуляции отнонения не имеет. А ещё, у инкапсуляции нет задачи, что-то там скрывать. Так например, приватная секция классов ничего ни от кого не скрывает.
@nikolai-Ll9iZXJnYW1vdGgK
@nikolai-Ll9iZXJnYW1vdGgK 5 жыл бұрын
ИНКАСТЫЛЯЦИЯ, 6/\*b! :D
@IIAHKO
@IIAHKO 5 жыл бұрын
Преследование и поливелосипедизм
@Sevenvad
@Sevenvad 5 жыл бұрын
Поликостылизм Костылирование Инкостыляция
@АльбертДанкович
@АльбертДанкович 5 жыл бұрын
Инбагуляция
@ИванШвалев-к8р
@ИванШвалев-к8р 4 жыл бұрын
Велосепидизация и костылирование
@maestro_denery
@maestro_denery 3 жыл бұрын
Полимарксизм, инмарксизация...
@SineSet
@SineSet 5 жыл бұрын
Вообще-то это не инкапсуляция и не сокрытие. Это реализация после объявления - особенность C/C++, которая позволяет объявить сигнатуру и использовать функцию/тип ДО её/его реализации или вообще в другом файле, например, когда несколько типов имеют указатели на данные типа друг друга, или чтобы не загромождать код сложными структурами. А невозможность при этом достучаться до содержимого объявленного типа - побочный эффект такой особенности. Если функцию (getDistance), обращающуюся к содержимому объявленного так типа (struct Point) реализовать в другом файле, то она тоже не сможет достучаться до содержимого этого типа. Если структуру (struct Point) целиком объявить в заголовочном файле, то всё будет исправно работать. Сравнение с примером в C# не совсем корректно. Там всё это работает потому, что в качестве аргумента метода класса (чего вообще нет в С) используется объект такого же типа, и так как метод является членом класса, то "знает", что называется, "изнутри" структуру полей объектов своего типа, и поэтому нужное поле объекта в аргументе "видит". Кстати, в C++ это тоже работает. В C все обращения к любым типам - только "снаружи". Тем не менее, автор, пиши/снимай ещё. Годно.
@grustnyia2386
@grustnyia2386 5 жыл бұрын
Недопусти этой ошибки на собеседовании! "Не" с глаголами пиши раздельно! P.S. Шучу. Не смог удержаться. :-D
@ExtremeCode
@ExtremeCode 5 жыл бұрын
Грязный байт на комментарий сработал :D
@grustnyia2386
@grustnyia2386 5 жыл бұрын
@@ExtremeCode :-)
@LobanovSpace
@LobanovSpace 5 жыл бұрын
Вахахаха
@CB_CHIEF
@CB_CHIEF 5 жыл бұрын
@@grustnyia2386 многие путают отрицательный предлог «не» и приставку «недо», вследствие чего глагол «недосмотреть» (в значении недостаточно следить за кем-л.) пишут раздельно - не досмотреть. А это уже совсем иной смысл: досмотр могут производить, например, таможенники или полицейские, и «не досмотреть» (раздельно) означает не произвести досмотр.
@SabFo_
@SabFo_ 5 жыл бұрын
@@CB_CHIEF ох уж этот русский язык
@mcblack2010
@mcblack2010 2 ай бұрын
Лайк тебе, бро! Так-то без особо четкого понимания определения инкапсуляции имел и имею понимание ООП. Однако всё равно интересно, так как после недавнего прочтения книги, единственная тема которой - использование ООП в одном популярном языке, в голове отложилось именно искаженное понимание (как сокрытие данных). Хотя, для справедливости, в книге много было про сокрытие реализации и смысла она не растеряла. Но вот акцент на определении мне понравился!
@iceEnceladus
@iceEnceladus 5 жыл бұрын
тот случай когда до видео знал тему а после засомневался что знал из-за сложной подачи автором и остановил видео чтобы найти в интернете принципиальную схему котЭ ))
@vc36960
@vc36960 3 жыл бұрын
Просто КГАМ
@serhiyhrytsiuk4376
@serhiyhrytsiuk4376 5 жыл бұрын
Как-то столкнулся с таким же недопониманием Инкапсуляции на всоём первом собеседовании. Я тогда у Моженкова посмотрел видос об ООП и почерпнул этот дзен об Инкапсуляции у него. Решил блеснуть на собеседовании, но как-будто о стену ударился. Выпускайте, пожалуйста, видосики почаще!!!!
@РоговТимур
@РоговТимур 5 жыл бұрын
раньше я не очень-то понимал что такое инкапсуляция. Теперь понял, что вообще ничего не понимаю!
@bltvg
@bltvg 3 жыл бұрын
Пришёл некто, считающий себя очень умным, сказал, что ты говно. А теперь у тебя из-за него комплекс самозванца.
@ГеоргийЖуравлев-к2ъ
@ГеоргийЖуравлев-к2ъ 5 жыл бұрын
Никогда не занимался на C, но в конце ролика понял, что к чему. Красавчик автор)
@viktorkeleberda3355
@viktorkeleberda3355 5 жыл бұрын
Эх отличная подача информации с юмором и очень объемно, спасибо, лайкосик поставил :)
@pieceofsnitcrappy2800
@pieceofsnitcrappy2800 2 жыл бұрын
Братан, хорош, давай, давай вперед! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого почаще?
@ВаняЖуков-л8ь
@ВаняЖуков-л8ь 5 жыл бұрын
Всегда орал с людей, которые пытаются найти глубокий смысл там, где его нет.
@2Quard
@2Quard 5 жыл бұрын
Поиски глубоко смысла там где его нет, это способ уйти от реальной жизни.
@alexkart9239
@alexkart9239 5 жыл бұрын
т.е. ты орёшь постоянно?
@extrud96
@extrud96 5 жыл бұрын
Ну, тут вопрос не в поиске смысла, а в том чтоб найти корректное определение для понятия. Я вижу смысл в этом потому что в программировании очень важно понимать что и почему ты делаешь, для этого нужно хорошо и корректно понимать принципы которые ты используешь в работе. Однако в видео небыло показаны последствия не правильного понимания инкапсуляции, что жаль
@musoismailov6071
@musoismailov6071 4 жыл бұрын
Если ты не копался до смысла, то откуда у тебя утверждение что там нет смысла?)
@brianryan4053
@brianryan4053 3 жыл бұрын
По английски это называется overthinking
@dimagorelik3956
@dimagorelik3956 3 жыл бұрын
Рекомендации 2021. Это то что я хотел посмотреть)
@konst3d
@konst3d 5 жыл бұрын
1:31 - Мое лицо, когда меня (15+ лет в деве), начинают спрашивать на собеседовании, что такое "инкапсуляция"... И делает это, какой-нибудь HR, которому "правильный ответ", написали на бумажке.
@ДмитрийСоловьёв-ы5п
@ДмитрийСоловьёв-ы5п 5 жыл бұрын
Как ты с таким опытом попадаешь на такие собеседования
@konst3d
@konst3d 5 жыл бұрын
@@ДмитрийСоловьёв-ы5п Всегда ищу где получше.
@andreysolomatov1552
@andreysolomatov1552 7 ай бұрын
...аты попробуй догадаться, что ему накалякали на этой бумажке - и кто...
@igorklimovskiy7638
@igorklimovskiy7638 5 жыл бұрын
Инкапсуляция - это принцип сокрытия реализации от пользователя. При этом не важно чего - класс, модуль, приложение. Этот принцип необходим для абстрагирования реализации от интерфейса. Мне кажется это понятнее и главное точно не содержит ошибок типа где-то объект, где должен быть класс.
@alexanderbelov6892
@alexanderbelov6892 4 жыл бұрын
Инкапсуляция - это про объединение в реализации кода и данных под единой сущностью класс. А абстрагирование - это про разделение интерфейса и реализации. Это отдельно существующие понятия.
@Qraizer
@Qraizer 5 жыл бұрын
Пример на C если что и продемонстрировал, то только не отсутствие языковой поддержки ООП в C. Отладчик студия не дал доступа к полям структуры исключительно по меркантильным соображениям, и никакое ООП тут ни при чём. Зато он прекрасно показал "подкованность" автора в механизмах ООП, где последнее П - это Проектирование, а не программирование. Последующий пример на Шарпе окончательно добил. Эх... а как обнадёживающе начинался видос...
@waaagh1769
@waaagh1769 Жыл бұрын
Держи в курсе
@vanyaivanov671
@vanyaivanov671 3 жыл бұрын
Те, кто пишет, что суть в конце -- просто не посмотрели видос целиком. Чел на протяжении 8 минут отделял инкапсуляцию от сокрытия, а на последних секундах просто все скидал в кучу и сказал, что это определение инкапсуляции
@alexgorodecky1661
@alexgorodecky1661 5 жыл бұрын
Хорошо рассказываете, уверенно. Прошу указать ссылки на литературу, ведущие к определениям "инкапсуляции" и "чистого ооп", или это лично ваши определения, полученные после реального кодинга?
@evgeny2495
@evgeny2495 Жыл бұрын
Это чистое балабольство в стиле ХаудиХо, знаешь английский - транслируй англоязычный контент, а понимание сути не надо, уже сойдешь за мегапрогера...
@alexsey59
@alexsey59 5 жыл бұрын
да вы жжети парни, еще одно видео не за год. мое почтение
@aljesco8338
@aljesco8338 5 жыл бұрын
Потрясающий пример того, как сделать видос на восемь минут ни о чём
@LobanovSpace
@LobanovSpace 5 жыл бұрын
Хехе
@maxpayne3491
@maxpayne3491 5 жыл бұрын
автор мастер разводить пиздеж. ему бы на тв работать)
@faustfreeman3419
@faustfreeman3419 5 жыл бұрын
@@maxpayne3491 ни в коем случае. Только чиновником.
@the__Wizard
@the__Wizard 5 жыл бұрын
а можно по подробнее, а то я не понял
@volodymyrmykytenko5324
@volodymyrmykytenko5324 5 жыл бұрын
Более того: открьіваем книгу Дядюшки Боба, из описания, там також же пример как на видно в С/С++ а вьіводьі противоположньіе: This is perfect encapsulation-in a non-OO language. C programmers used to do this kind of thing all the time. We would forward declare data structures and functions in header files, and then implement them in implementation files. Our users never had access to the elements in those implementation files.
@TheMerklar
@TheMerklar 5 жыл бұрын
Видос и не рассчитан на новичков. Автор указал на то, что обычно в определении инкапсуляции ставят акцент на сокрытии данных, а не на объедении методов и данных в один объект. И достаточно доступно это разъяснил
@nikita893
@nikita893 3 жыл бұрын
Очень приятный голос,с хорошим обьяснением,Только вот я не программист...
@АндрійЯрута-е5б
@АндрійЯрута-е5б 4 жыл бұрын
Только через 8, сука, месяцев и несколько раз пересматривая это видео, я понял что такое инкапсуляция. Твою ж дивизию как все просто.
@alekseyshibayev5243
@alekseyshibayev5243 5 жыл бұрын
Инкапсуляция - это возможность менять состояние объекта только им самим (с) Сергей Немчинский
@0imax
@0imax 5 жыл бұрын
О, Серёга набирает популярность))
@ДмитрийУшаков-л6ж
@ДмитрийУшаков-л6ж 4 жыл бұрын
ExtremeCode - канал про то, что такое инкапсуляция
@proximacentauri3206
@proximacentauri3206 3 жыл бұрын
Вообще-то, товарищ программист, лайк нужно ставить после просмотра видео (а не в начале), чтобы алгоритм ютуба, "обрабатывающий лайки" засчитал его.
@illiazheleznyi4588
@illiazheleznyi4588 3 жыл бұрын
Люблю такие штуки, особенно когда человека ищут клипать формы, а спрашивают какие типы семафоров есть. Эти теоретические данные хороши, но это же надо меньше чем в 1% кода.
@vlad_kara
@vlad_kara Жыл бұрын
Клепать
@WhatIslove-d4r
@WhatIslove-d4r 5 жыл бұрын
Вижу видос от ExtremeCode - ставлю лукас
@ВладимирВоробьев-е6о
@ВладимирВоробьев-е6о 5 жыл бұрын
Нынче развелось много молодых программистов которые принципиально не используют инкапсуляцию. Пишут отдельно классы только для данных и отдельно классы только для методов работающих с этими данными. Считают себя крутыми ООП-шниками.
@AngryBerserk
@AngryBerserk 5 жыл бұрын
То есть эти еретики пишут чистые методы для работы с данными?! Небось ещё и богомерзкие иммутабельные структуры используют, чему их только в школах учили
@ВладимирВоробьев-е6о
@ВладимирВоробьев-е6о 5 жыл бұрын
@@AngryBerserk Самое худшее что они становятся PM-ами, и навязывают вот такой-вот процедурный стиль всем называя это "паттернами".
@RomanPRO96RUS
@RomanPRO96RUS 5 жыл бұрын
Честно говоря, понятия не имею как я наткнулся на данное видео и зачем зашел, т.к естественно ничего не понял, но было очень интересно! Спасибо!:))
@The_EnG1nE
@The_EnG1nE Жыл бұрын
После этого js framework, сильно похожего на C#, я захотел выучить js
@vebyza
@vebyza 5 жыл бұрын
Оооо, сё, пойду пиздить препода по проге, который говорит, что инуапсуляция = сокрытие(вызовите скорую, пожалуйста, у меня дома рыбка живёт ещё)
@LobanovSpace
@LobanovSpace 5 жыл бұрын
Хех
@ИгорьСелезнев-в2у
@ИгорьСелезнев-в2у 5 жыл бұрын
Само слово инкапсуляция помогает понять его определение, где в нем про сокрытие? В нем про вложение, термин подобран правильно: объединение данных и методов, работающих с ними, в один объект. С другой стороны, верить видео какого-то парня, который грешит неудачными метафорами и примерами вместо преподавателя? Серьезно? Так может сразу слиться из универа и пойти учиться на ютубе?)
@vebyza
@vebyza 5 жыл бұрын
@@ИгорьСелезнев-в2у тут дело ещё в том, что дословно переведч слово получится то же самое сокрытие или упрятываение. И получается интересно, мол сокрытие - не только сокрытие. А ютуб, к сожалению, отсрочку не даёт, потому приходится минимально посещать занатия(чтобы не топтать плац) и учиться самому, по крайней мере в регионах
@ИгорьСелезнев-в2у
@ИгорьСелезнев-в2у 5 жыл бұрын
@@vebyza хорошая ремарка кстати про дословный перевод, спасибо, что поправили. Высшее Вам в любом случае будет на пользу. Без него однажды потолок карьеры начнет ограничивать рост. Про инкапсуляцию да, интересно получается.) Это при том, что у самого 10 лет с плюсом стажа разработчика ))
@ne4to777
@ne4to777 5 жыл бұрын
@@vebyza , дословный перевод не получается сокрытие или упрятывание, а получается помещение в капсулу или упаковка. Упаковка или капсула может быть прозрачной и ты можешь видеть внутренности. Может быть даже дырявой и ты можешь изменять эти внутренности, а значит не будет никакого сокрытия, как нет приватных свойств в JS. Но все равно это будет инкапсуляция. Поэтому можешь смело увольнять своего препода.
@GazziFX
@GazziFX 5 жыл бұрын
Я в общем ничего, не понял, но по сути в C# Instance методы это Static методы, но первый аргумент это и есть экземпляр этого класса. В видео наверное что-то другое объяснялось, но мое утверждение можно проверить по генерирумому коду IL, либо можно переопределить метод, с помощью манипуляций с Compiler Services и IntPtr этих методов
@ДаниилГончаренко-г8я
@ДаниилГончаренко-г8я 5 жыл бұрын
Блин, это было реально классно) всё оказывается так просто)
@kornext
@kornext 5 жыл бұрын
Воу воу воу, палехче! Слишком много инфы за такой короткий срок! Мы то привыкли переваривать все по нескольку месяцев) P.S. Годно!
@Alex023Y
@Alex023Y 5 жыл бұрын
В конце нужно добавить "... и предоставляет пользователю интерфейс для взаимодействия с ним"
@AlexanderKozubskiy
@AlexanderKozubskiy 3 жыл бұрын
Спасибо за видео, из всех общедоступных источников (в основном видосики на ютубе) данное определение инкапсуляции только в книге еще встретил, "Сам себе программист" вроде .. подписался на канал.
@ilyamz1927
@ilyamz1927 5 жыл бұрын
Чем плох конструктор для создания класса?? :((
@lobanovds
@lobanovds 2 жыл бұрын
Теперь понял. Спасибо. Инкапсуляция - это мы так скрываем переменные
@princessmary5556
@princessmary5556 Жыл бұрын
Нет, вы не поняли.
@alexandersobolev2769
@alexandersobolev2769 5 жыл бұрын
Инкапсуляция (понимаемая как связывание вместе данных и методов для работы с ними) _на самом деле_ связана с механизмами ограничения доступа к этим данным. Это не _сокрытие_ (когда внутреннее устройство данных неизвестным; такой «черный ящик»), а именно _ограничение доступа_ - т. е. невозможность работать с этими данными _в обход_ заданных методов. Такое требование прежде всего предназначено для повышения _надежности_ кода. Разработав и протестировав класс (структура данных + методы для работы с ними) вы _гарантируете пользователям этого класса предсказуемость его работы. Собственно, именно в этом и состоит суть связывания вместе данных и методов. Подход функциональных (не ООП) языков с независимым определением структур и функций ничуть не менее удобен, чем синтаксис языков ООП, где обрабатываемая структура просто переносится из аргумента функции в ее «префикс» (имя объекта с точкой перед именем метода). Связывание вместе данных и методов нужно _как раз_ для _ограничения доступа_ к данным! Возможность работы с данными напрямую (точнее, возможность изменять их), _минуя_ заранее заданный набор методов, можно сравнить с дырой в заборе рядом с «навороченным» пропускным пунктом со развитой системой безопасности (всевозможные сканирования сетчатки, рамки металлоискателя и пр.); все эти меры безопасности бесполезны, когда их можно легко обойти через заботливо оставленную дыру. Ну и уже во _вторую_ очередь - ограничение доступа к данным _только_ через его методы позволяет изменять реализацию, не меняя интерфейс доступа (и, соответственно, не меняя код существующих клиентов). Но это всего лишь дополнительная «удобность», не ___ Строго говоря, ООП-языки, допускающие определение public-данных (а это и C++, и C#, и Java, и т. д.) _нарушают_ инкапсуляцию и, таким образом, являются, строго говоря, _не совсем_ ООП-языками. А вот, например, то, как организована работа с окнами (hWnd) в Windows (всех версий, начиная с самых первых), как это ни парадоксально звучит, является _хорошим_ примером ООП, несмотря на чисто C-шную реализацию и связанные с этим синтаксические неудобства. Там есть и полиморфизм (можно разослать одно и то же сообщение самым разным типам окон - будь то кнопки, списки, комбобоксы или главное окно программы), пройдясь по списку hWnd - и получить специфическую для каждого типа окон реакцию на это сообщение. Есть и аналог наследования - субклассирование, когда вы для нового типа окна переопределяете реакцию на некоторые сообщения, переадресуя обработку остальных в оконную функцию «родительского» типа окон. И наконец, там _совершенно правильно_ организована инкапсуляция - по одному только hWnd вы не сможете получит доступ к внутреннему представлению данных окон, миную определенные для него «методы» - типы сообщений MSG, которые могут быть обработаны данным типом окон. Как видно из этого примера, «связывание данных и методов» при помощи _специального синтаксиса_ языка программирования (вроде определения классов, как «структур с методами») вовсе не обязательно для реализации принципов ООП.
@adimetrius
@adimetrius 4 жыл бұрын
ExtremeCode, вы понимаете жеж, что обе функции getDistance - и в JS, и в C - имеют, на самом деле, два аргумента типа Point. Просто в JS один из этих аргументов пишется слева от имени функции и называется всегда this. По сути - это синтаксический сахар, который ничего не добавляет принципиального в язык; некоторые полагают, что такой синтаксис - это удобно; но удобство - дело вкуса жеж. Если это и есть инкапсуляция - то это пшик. Напротив, сокрытие данных - мощная концепция, позволяющая проводить границы между объектами/классами (блоками, на которые декомпозируется задача) и бороться со сложностью. Я полагаю, впрочем, что инкапсуляция - это как раз способ моделирования задачи реального мира, когда программист мыслит не функциями, не структурами данных, а представляет задачу в терминах классов/объектов, которые являются объединением данных и действий. И, кстати, про синтаксис: я пользуюсь языком, где нет ключевого слова This, а вместо него программист всегда сам называет "переменную класса": PROCEDURE (from: Point) Distance (to: Point): REAL; BEGIN RETURN Math.Sqrt((to.x - from.x)^2 + (to.y - from.y)^2 END Distance; ... dist := p1.Distance(p2)
@ck33122
@ck33122 5 жыл бұрын
дизлайк за утечку памяти в си программе
@CDTranslate
@CDTranslate 5 жыл бұрын
Открою секрет: в большинстве игр, например, никто не очищает ресурсы, если человек нажал на выход, чтобы не жертвовать временем пользователя. Такой своеобразный tradeoff, хотя по завершению программы ОС сама "освободит" ресурсы.
@Kirik516
@Kirik516 5 жыл бұрын
Почему утечка, если по завершению расчета программа выключается?
@Чёрнаякошка-ц6к
@Чёрнаякошка-ц6к 5 жыл бұрын
задача любой операционной системы входин не только выделение памяти по запросу приложения но и полная очистка памяти по окончании работы программы.
@Johny_Silverhands
@Johny_Silverhands 3 жыл бұрын
В менеджере памяти шиндовс все резервируется вот это бесит
@SerjioSlap
@SerjioSlap 3 жыл бұрын
@@CDTranslate да хрен знает, любая нормальная среда разработки включает в себя ВАЗМОЖНОСТЬ! подмести за собой... Наверное не просто так =)
@ilyalisov5284
@ilyalisov5284 2 жыл бұрын
было тяжело, но я понял, что инкапсуляция это сокрытие данных
@игрокфорточки
@игрокфорточки 2 жыл бұрын
нет, инкапсуляция это не сокрытие, но инкапсуляция имеет механизм сокрытия
@princessmary5556
@princessmary5556 Жыл бұрын
Нет, не поняли. Инкапсуляция - это не сокрытие данных.
@КвасИСышка
@КвасИСышка Жыл бұрын
комментаторы выше рофла не выкупают)
@qlmanlp
@qlmanlp 5 жыл бұрын
Угарнул с фреймворка, спасибо за видос
@danilakhtarov
@danilakhtarov 3 жыл бұрын
Инкапсуляция это объединение данных по классу, сокрытие как мы привыкли видеть это управление его доступностью с помощью модификаторов доступа. Тут все просто
@vangogih
@vangogih 5 жыл бұрын
Пример с расстоянием между точками был взял из книги дяди боба про архитектуру?)
@Solfylte
@Solfylte 3 жыл бұрын
Ага, там где она пишет что уже в С была инкапсуляция.
@vangogih
@vangogih 3 жыл бұрын
@@Solfylte тогда ты не понимаешь что такое инкапсуляция, потому что в С ее не было.
@Solfylte
@Solfylte 3 жыл бұрын
​@@vangogih Ок. Я не написал что она там была или нет, это ваша интерпретация коментария.
@a.o.yaroslavov
@a.o.yaroslavov 3 жыл бұрын
Многие гуру утверждают, что в ООП стиле можно красиво писать и на ДжаваСкрипте, и на чистом СИ и даже на древнем бэйсике. Ни в одном из этих языков нет встроенных механизмов инкапсуляции, наследования и полиморфизма. Ну, разве что на ДжаваСкрипте есть полиморфные типы, как как они динамически разрешимые. Поэтому, в целом, инкапсуляцию даже принципом ООП назвать сложно, есть более правильный (высокоуровневый ) принцип - OCP, Open/Close Principe а его формулировка ещё более абстрактна и сложна.
@princessmary5556
@princessmary5556 Жыл бұрын
Инкапсуляция не является свойством ООП. Её вообще некорректно называть принципом ООП.
@alexanderkostyuk755
@alexanderkostyuk755 5 жыл бұрын
Инкапсуляция это скрытие чегото, помещение его в капсулу! и все! Дослоно в капсулу(encapsulate=заключать в капсулу )! А связывание данных и медотов в один обьект это для слишком умных!
@YmNIKYm
@YmNIKYm 5 жыл бұрын
Ты слишком сложно поясняешь, всего в одну строчку, запиши видос на пол часа хотя бы.
@ne4to777
@ne4to777 5 жыл бұрын
Хочешь, я тебе реализую инкапсуляцию без сокрытия данных?
@alexanderkostyuk755
@alexanderkostyuk755 5 жыл бұрын
@@ne4to777 Ну так в чем проблема, давай! выкладывай сюда будем смотреть!
@ne4to777
@ne4to777 5 жыл бұрын
@@alexanderkostyuk755 , на js class Test { constructor(x) { this.x = x } get() { return this.x } } const a = new Test(1) console.log(a.get()) // 1 console.log(a.x) // 1
@alexanderkostyuk755
@alexanderkostyuk755 5 жыл бұрын
​@@ne4to777 Нормально! Такой вопрос, а как ты ограничил доступ одних компонентов программы к другим?
@artyommezentzeff856
@artyommezentzeff856 5 жыл бұрын
Пример на С встречается в книге Митчелла - Clean architecture и там он это называет "perfect encapsulation"
@alexanderbelov6892
@alexanderbelov6892 4 жыл бұрын
Автор видимо траву курил. Поэтому все названия такие же как у других, но с прилагательным, которое возвышает его определения над другими. Perfect polymorphism, wonderful inheritance, amazing overload... 🙂
@ДмитрийСтарушко-в5ф
@ДмитрийСтарушко-в5ф 3 жыл бұрын
Для начала: даже маленькие примеры должны быть корректными. Где освобождение памяти в C-варианте примера? И второе: зачем демонстрировать ООП и правильную инкапсуляцию на JS Framework'е, когда ничуть не хуже это можно сделать на C++, заодно и продемонстрировав отличия от C?
@tarzanonline
@tarzanonline 3 жыл бұрын
так много на ютуб просят поставить лайк ещё в начале видео, при том, что до конца не досмотрел. Типа сейчас покажу тебе что то, но ты скажи что тебе это нравится... :)
@johnwick8332
@johnwick8332 5 жыл бұрын
ппц ты как Боженька открыл мне глаза я то думал ....спасибо
@desys.
@desys. 4 жыл бұрын
8:13 Кто нибудь объясните, что значит "работающие с этими данными в единый объект" или подскажите что нужно употребить чтобы понять это?
@NikiTer88
@NikiTer88 3 жыл бұрын
Что тут сложного написано? Всё же понятно В одной "коробке" должны быть и данные и методы, которые с этими данными работают. Если есть только методы без данных (util классы, например, то,это сокрытие, но не инкапсуляция)
@АндрейТихонов-г6ы
@АндрейТихонов-г6ы 5 жыл бұрын
Я так понял, что Инкапсуляция - это сокрытие.
@alexdolgavin
@alexdolgavin 4 жыл бұрын
Что, прости? 6:28. this.x и this.y и есть проявление инкапсуляции? Проявление инкапсуляции это если бы мы через пользовательские публичные методы обращались к этим переменным по типу GetX() и GetY() причем в этих методах скажем гарантировалась бы некая безопасность доступа (если бы переменные были сложными для инициализации, или под них выделялась память на куче). Таким образом мы скрываем реализацию доступа и даем пользователю готовый чистый метод получения этих данных, другими словами предоставляем пользователю интерфейс (как правило через методы) и скрываем реализацию. А если мы каждый раз свободно будем получать любые данные из класса типа obj.some_varibale, то эта никакая не инкапсуляция, друг.
@sirjorgenbjorgen2295
@sirjorgenbjorgen2295 5 жыл бұрын
а когда полноценный курс C++ будет ?
@joefast505
@joefast505 5 жыл бұрын
Согласен!
@juliusmalkov9620
@juliusmalkov9620 5 жыл бұрын
@@joefast505 они ещё по C# всего не сняли!!!
@МаркАндерсон-ы5ж
@МаркАндерсон-ы5ж 5 жыл бұрын
Почему всех на плюсы тянет? работы в СНГ на с++ нету, а если есть то плотят на там гроши, если ты не senior
@g-manchanel1710
@g-manchanel1710 5 жыл бұрын
Марк Андерсон прыгать с сисей на другие языки проще всего
@АлександрФилиппов-ч5р
@АлександрФилиппов-ч5р 3 жыл бұрын
@@МаркАндерсон-ы5ж я работаю на плюсах в qt и платят хорошо
@marvinnimnull9982
@marvinnimnull9982 3 жыл бұрын
а теперь осталось это ещё обобщить для языков с множественной диспетчеризацией, например Dylan или Cecil - что и куда там инкапсулируется?
@sergeyvasin6372
@sergeyvasin6372 5 жыл бұрын
Классный фреймворк :)
@Mik-hm9tb
@Mik-hm9tb 5 жыл бұрын
Не знаю что я тут забыл со своей ардуинкой, но было почти интересно.
@alexanderbelov6892
@alexanderbelov6892 4 жыл бұрын
"История одного байта" - это про вас?
@vxarlanchuk
@vxarlanchuk 5 жыл бұрын
8:13. До этого момента смотреть бессмысленно, просто тратите время.
@MasterSergius
@MasterSergius 5 жыл бұрын
Всмысле тратите время? А поржать?
@user-Dmitry-Brilko
@user-Dmitry-Brilko 4 жыл бұрын
Думаю, что стоит переобозначить определение. Инкапсуляция - это сокрытие и объединение категория класса.
@majestif
@majestif 5 жыл бұрын
Спасибо за видос, в целом доступно, но код ужасен, какая-то мешанина из древного С++, Си и утечки памяти в придачу.
@Dmittry
@Dmittry 5 жыл бұрын
Хоть я и не шарю в C/C++, но malloc без освобождения меня тоже очень смутил. Так можно?
@notapirate505
@notapirate505 5 жыл бұрын
@@Dmittry Можно конечно, вот на видео сделал же. Только не нужно. В данном контексте +-килобайт памяти утек, не страшно, просто одноразовый пример же. Но все равно не нужно.
@notapirate505
@notapirate505 5 жыл бұрын
Код компилился в с++ проекте, кстати. Примечательно, что канпелятор не ругнулся на malloc без каста, g++ бы нафиг послал уже.
@Serhii_Likhash
@Serhii_Likhash 5 жыл бұрын
Критика это хорошо, а какое у вас решение? Просто нужно чистить за собой мусор, никакой утечки нет посоны
@KaraMaslyatam
@KaraMaslyatam 5 жыл бұрын
Зачем чистить память в программе, которая работает микросекунду времени и выделяет одну страницу памяти? Где там древний C++? MS компилятор по дефолту читает "*.c" как Си код и плюсовые штуки не схавает, поэтому там не может быть C++.
@strateg1hawk
@strateg1hawk 3 жыл бұрын
Очень хорошое сравнение будет именно с капсулой, которая хранит данные и методы, и только эта «капсула» знает о деталях, и мы просто пользуемся всем что есть в этой капсуле
@princessmary5556
@princessmary5556 Жыл бұрын
Нет, вы пользуетесь исключительно публичным api капсулы. А что там есть внутри - вы не имеете никакого понятия.
@TheKoropet
@TheKoropet 5 жыл бұрын
Инкостыляция, порноморфизм.. что дальше?
@batfist6595
@batfist6595 5 жыл бұрын
Найсследование (что?)
@nikelsad
@nikelsad 5 жыл бұрын
Тут, где-то в комментах, было -- преследование =)
@alexanderp4532
@alexanderp4532 4 жыл бұрын
абстругация
@roman6572
@roman6572 5 жыл бұрын
начали видео выходить, я очень рад)
@sagamoreBel
@sagamoreBel 5 жыл бұрын
Не с глаголами, ну. Вы что, совсем технари там?
@КириллЮрьевич-ф1с
@КириллЮрьевич-ф1с 5 жыл бұрын
Есть другое понятие инкапсуляции в сетях связи, поэтому "неправильное" определение является общим для всех областей. А то, что ты назвал - более узкое)
@AlexCSharp
@AlexCSharp 5 жыл бұрын
Ммм... Мартин, "Чистая архитектура". Молодцы, хотя бы источники хорошие берёте. )
@AlexAlex-qx2ho
@AlexAlex-qx2ho 4 жыл бұрын
Если быть до конца точным, то это не совсем так, что в примере с вызовом функции getDistance на шарпе, вы не передаёте сам объект в параметры. На самом деле это скрыто от программиста компилятором. Грубо говоря, он скомпилирует ваш код в, примерно следующее: caller.getDistance(Point caller, Point other), где, ссылка на caller и есть this Но сама идея инкапсуляции раскрыта
@alex-rr5mt
@alex-rr5mt 5 жыл бұрын
Спасибо за музыку! Если бы ещё тиму белоруских включили, то было бы просто отлично
@gameforvdmvoid5860
@gameforvdmvoid5860 5 жыл бұрын
Я после твоего видоса ещё три посмотрел. В итоге только у какого-то деда увидел что-то подобное, как у тебя. Даже Дударь твердит об инкапсуляции как сокрытии, а он, между прочим, часто в первых списках выдаваемых видосов по программированию. Тот дед посоветовал чекнуть Вики, и там есть то же утверждение, инкапсуляция != сокрытие.
@QwerTy-vq1vb
@QwerTy-vq1vb 5 жыл бұрын
"ИнКастыляция" =)
@nikelsad
@nikelsad 5 жыл бұрын
ИнкОстыляция
@yalauitarik
@yalauitarik 4 жыл бұрын
@@nikelsad о, уже и у инкостыляции появилось 2 трактовки
@konstantinburlachenko2843
@konstantinburlachenko2843 4 жыл бұрын
На собеседованиях в amazon, google, nvidia, yandex, acronis, facebook, huawei, facebook такую ерунду и любую другую ерунду про использование языка не спрашивают (из моего опыта) - конкретно этим компаниям на это пофиг.... учите структуры данных, свою область науки или инженерной мысли, знайте синтаксис и нюансы хотя бы одного языка программирования хорошо, качайте математическую культуру - это все что надо.
@alexmorgun851
@alexmorgun851 3 жыл бұрын
Проблема отечественного IT в том что тут слишком много русского языка. Когда неудачные переводы из 80-90х продолжают запихивать в новые книги. Открываем любой ответ по запросу Encapsulation и получаем первый ответ "Encapsulation is one of the fundamentals of OOP (object-oriented programming). It refers to the bundling of data with the methods that operate on that data." и второй ответ "Encapsulation is used to hide the values or state of a structured data object inside a class, preventing direct access to them by clients in a way that could expose hidden implementation details or violate state invariance maintained by the methods." Вероятно эти заблуждения были и в оригиналах нескольких популярных книг, но на западе они не так часто встречаются как у нас. А в русской википедии все еще "скрытие внутренней реализации от других компонентов". Ладно.. )
@ddosip9308
@ddosip9308 5 жыл бұрын
Ну наконец ты мне глаза открыл! А то я уж не справился бы
@ВладМн
@ВладМн 5 жыл бұрын
ничего не понял, но очень интересно ...
@slava6105
@slava6105 3 жыл бұрын
получается, в python нет инкапсуляции: self, cls. а ещё при __get__ (вызывается в нативной функции object.__getitem__) принимается тот, кто вызывал, класс того и кто вызывал
@user-mrmirajizhere-927
@user-mrmirajizhere-927 3 жыл бұрын
* сидит и задумчиво кивает *
@yamaxila
@yamaxila 3 жыл бұрын
А где можно скачать этот модный новый JS Framework? Очень уж он, мне понравился.
@otshelmynik
@otshelmynik 5 жыл бұрын
Какое то не уверенное объяснение. Сокрытие это сокрытие, а инкапсуляция это когда вот эта переменная вот тут вот так... просто ох***тительное объяснение
@antizvyagin
@antizvyagin 5 жыл бұрын
Мало что понял, но очень интересно, особенно когда код набирается
@davidkyharchyk9043
@davidkyharchyk9043 5 жыл бұрын
Че за фреймворк? ;)
@momon5994
@momon5994 4 жыл бұрын
Фреймворк не очень, C# называется.
@radu53
@radu53 5 жыл бұрын
Ну видос вышел смешным, только никого не волнует разница между сокрытием и инкапсуляцией, ибо люди и без этих знаний пишут код и получают деньги за это :D имхо, инфа из видео полезна только для рофла :DDD
@alexanderbelov6892
@alexanderbelov6892 4 жыл бұрын
Речь про собеседования... Прежде чем выкинуть, и начать писать код, нужно доказать, что не верблюд. Правда у некоторых теория совсем никак не коррелирует с написанным кодом.
@sobanya_228
@sobanya_228 5 жыл бұрын
Slipknot/Bieber трек - топ
@Archik4
@Archik4 5 жыл бұрын
Если сравнивать со стеком протоколов OSI, то в принципе так и есть. Протокол инкапсулирует данные с которыми будет работать и всё. А речи о сокрытии реализации даже не идёт, наоборот реализация строго стандартизована. Сокрытие данных, шифрование в данном контексте, тоже другая тема.
@pacevi3319
@pacevi3319 5 жыл бұрын
Честно, никак не получилось вкурить, что вы пытались доказать, может больше примеров нужно было привести
@wissertegerius8570
@wissertegerius8570 5 жыл бұрын
Edit: проще всего говоря, инкапсуляция засовывает члены класса или структуры в условный объект, с которым мы работаем в коде, а сокрытие - это одна из дополнительных возможностей, которая связана с инкапсуляцией (в ассемблере такого, к примеру, нет). Можно еще, наверное, перевести инкапсуляцию как "засовывание в капсулу - в условный объект". Сокрытие же в данном случае - одна из возможностей языка, механизмов, которая связана с инкапсуляцией, скрывающая члены. Old: Попробую перефразировать: Вкратце, _инкапсуляция_ как механизм языка позволяет "закидывать все переменные класса/структуры в определённый условный контейнер", используемый в коде (this или кое-что другое, дальше по тексту увидишь). Но часто этот термин смешивают с термином _сокрытия_, которая является дополнительной возможностью языка, проявляющейся во время инкапсуляции. К примеру, ты не сможешь получить доступ к скрытой переменной какого-либо условного объекта, если язык тебе это запретит, так как во время _инкостыляции_ языком у этой переменной стоит запрещающий (private, protected, internal, protected internal) модификатор доступа, написанный в оригинальном коде, из-за чего компилятор/интерпретатор поймет, что переменная "спрятана", потому будет отброшена с ошибкой попытка получить её. Во время получения членов класса/структуры (или типа, как угодно) через инкапсуляцию - через условный объект - и проявляется сокрытие, несмотря на то, что это всего лишь отдельная возможность, связанная с инкапсуляции в том или ином языке. Также... _this_ - это всего лишь _получение условного представления себя же самого_ (если используется в каком-то методе, но не статичном, логично), оно, по сути, ничем не отличается получением данных другого объекта, так как это одно и то же. this - это получения себя (так проще, я думаю). Кстати, иногда в языках this может опускаться, но всё равно он будет подразумеваться. К примеру, в классе содержится переменная int x, а в методе этого класса ты можешь получить к ней доступ либо как `this.x`, либо как `x` , потому что компилятор поймет - переменной в локальной области видимости нет, из-за чего стоит обратится к объекту класса обладателя метода. Это не сработает, если в локальной области видимости существует уже переменная с таким именем. И еще: в Python вкратце вместо this используется self, однако там другая ситуация с этим, но сама инкапсуляция присутствует (было сказано в видео). Могу ошибаться, попытался осмыслить сказанное в видео за десять минут, плюс еще немного в википедии. Любая критика приветствуется, абсолютно.
@johnd1431
@johnd1431 5 жыл бұрын
Wisser Tg сложно объяснил, но я понял, перечитав раза 3 и загуглив после ...
@johnd1431
@johnd1431 5 жыл бұрын
Wisser Tg не, ты прям очень сложно объяснил, опустил многие моменты, которых большинство новичков не поймут
@wissertegerius8570
@wissertegerius8570 5 жыл бұрын
@@johnd1431 извиняюсь, не приходилось когда-то объяснять.
@ThisDaveAndThatJohn
@ThisDaveAndThatJohn 5 жыл бұрын
Все потому, что люди до сих пор никак начать читать книги не могут. Все эти вещи уже давно "обсосаны" из всех сторон титанами программирования которых очень просто найти забив в поиск, а они не нет "не нужны нам ваши книги, прошлый век все это, мы будем обучаться через видео курсы", ожидая десятилетия пока кто-нибудь да запилит 10-минутный ролик пересказывая книгу какого-нибудь титана... С таким темпом, инкапсуляция еще долго будет иметь корявую дефиницию.
@nberz692
@nberz692 5 жыл бұрын
Я один раз спросил у друга, какую книгу он читает по программированию. Он сказал, что даже не знал, что такие есть
Ё*кий полиморфизм
9:47
ExtremeCode
Рет қаралды 291 М.
Полиморфизм ломает твой код
9:45
ExtremeCode
Рет қаралды 234 М.
Мен атып көрмегенмін ! | Qalam | 5 серия
25:41
VIP ACCESS
00:47
Natan por Aí
Рет қаралды 30 МЛН
СТРУКТУРЫ - ТВОЯ ГЛАВНАЯ ОШИБКА
8:40
ExtremeCode
Рет қаралды 207 М.
Признаки слабого программиста
11:21
ExtremeCode
Рет қаралды 480 М.
THE MOST FREQUENT MISCONCEPTIONS ABOUT OOP
19:37
ExtremeCode
Рет қаралды 561 М.
НЕНОРМАЛЬНОЕ ООП
10:57
ExtremeCode
Рет қаралды 218 М.
Большие проблемы наследования в ООП
10:51
Прекрати задрачивать алгоритмы
7:46
ExtremeCode
Рет қаралды 165 М.
Повторное использование кода
8:01
ExtremeCode
Рет қаралды 118 М.
Мен атып көрмегенмін ! | Qalam | 5 серия
25:41