ООП

Материал из Неолурк, народный Lurkmore
Перейти к навигации Перейти к поиску

ООП — набор языков программирования, построенных вокруг создания объектов и их взаимодействия посредством методов дык.

Описание[править]

Вначале появилось стандартное текстовое программирование, когда в могучие добрые ЭВМ заряжали длинные приказы и они исправно их исполняли. Однако по мере роста программ стало понятно, что последовательной дачей команд долго обходиться не выйдет — ибо в сложных программах уж слишком немудрено запутаться. Появилось процедуральное программирование, когда уже программа поделена на смысловые блоки, а каждый блок может вызываться много раз, ешшо и с разными аргументами. Это позволило сократить код и улучшить его читаемость.

Но отчего бы не пойти дальше? Возглаголили люди и вышла из них идея новая, стальная и закаленная молотами Гефеста. Отныне в программе есть не только процедуры, но ещё и более мощная мета-система — объекты, которые воплощают, собственно, — некие реальные или абстрактные объекты, и методы — что с ними сделать можно, коли постараться державно да возжужжать.

Технология сия оказалась очень и очень эффективной, а оттого нашла большое применение.

Объект — контейнер, который может обладать собственными функциями (методами), свойствами (переменными). Создаётся он посредством инициализации и с тех пор конкретный объект как бы хранит то, что в нём записано, и меняет посредством методов. Некоторые методы могут быть скрыты от вызывальщика (и вызываться только изнутри).

Помимо всего этого, есть в ООП и принцип наследования, то бишь сначала можно определить объект в самых общих чертах (так сказать, абстрактно), а затем определять уже подобъекты, коия смогут пользоваться спокойно всеми методами главного объекта, но также определять и собственные, дополнительные.

Известен такой мощный язык как С++, бытует и C#. Там можно создавать объекты и они работают.

Movax1010h.png Глубокий смысл скрыт в этих неестественных языках
Языки программированияПромышленные: BATC#CC++JavaJavaScript (AJAX) • PascalPerlPHPPythonRubyABAPАссемблерВасикFortran (Профессор)
Эзотерические: BrainFuckHQ9++ErlangForthHaskellLISP (My other car) • PrologTclΤΕΧOracleMySQLGolangВ++Scala
ПрофессииБыдлокодерПрограммистТестировщикХакерХеллоуворлдщикIT-звёздыПрограммист (существо)
Методы и стилиReverse EngineeringАнти-паттернВыстрелить себе в ногуГрязный хакКод (индусский) • КостыльМетод научного тыкаПомолясьСвистелки и перделкиОчередьСпортивное программированиеОбфускацияБета-тестАльфа-тестШаблоныRegReplaceФреймворкБыдлокодIndex.phpОхота за жукамиКуМирКлеточный автомат
Средства разработкиSublime TextПодсветка синтаксиса кодаUnstable DiffusionAPIPythonTutorCodeWarsDataCampUnity3DКнижный PythonMallocСвязный списокSOLIDООПУказательNULLWeLang++
ЛюдиИлья КанторЮрий КлючевскийЭдуард ЛаасЭдвард СноуденСеймур Пейперт
Прочее++i + ++iDeadline%s640 килобайтCMSDummy modeЕГГОГFoobarGod is real, unless explicitly declared as integerGOTOIfconfigKISSRegExpSICPsql.ruXyzzyДискетаИнжалид дежицеКОИ-8ЛогМанРекурсияСУБДТест ТьюрингаУмение разбираться в чужом кодеФаза ЛуныФатальный недостатокПроблема 2000ТаймстампКэшЗапись в файл без кэша (Perl)Танцы с бубномКодач