0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<ul><li><a>Понятие ООП</a></li>
1
<ul><li><a>Понятие ООП</a></li>
2
<li><a>Структура ООП</a><ul><li><a>Объект</a></li>
2
<li><a>Структура ООП</a><ul><li><a>Объект</a></li>
3
<li><a>Методы</a></li>
3
<li><a>Методы</a></li>
4
<li><a>Атрибуты</a></li>
4
<li><a>Атрибуты</a></li>
5
<li><a>Класс</a></li>
5
<li><a>Класс</a></li>
6
</ul></li>
6
</ul></li>
7
<li><a>Принципы</a><ul><li><a>Инкапсуляция</a></li>
7
<li><a>Принципы</a><ul><li><a>Инкапсуляция</a></li>
8
<li><a>Наследование</a></li>
8
<li><a>Наследование</a></li>
9
<li><a>Абстракция</a></li>
9
<li><a>Абстракция</a></li>
10
<li><a>Полиморфизм</a></li>
10
<li><a>Полиморфизм</a></li>
11
</ul></li>
11
</ul></li>
12
<li><a>Плюсы и минусы ООП</a></li>
12
<li><a>Плюсы и минусы ООП</a></li>
13
<li><a>Языки с ООП</a></li>
13
<li><a>Языки с ООП</a></li>
14
</ul><p>Объектно-ориентированное программирование - это современный подход к моделированию информационных объектов. Это стиль разработки, который базируется на основе написания типов/моделей предметной области и их взаимодействия, представленных прототипами или экземплярами классов, образующих иерархию наследования.</p>
14
</ul><p>Объектно-ориентированное программирование - это современный подход к моделированию информационных объектов. Это стиль разработки, который базируется на основе написания типов/моделей предметной области и их взаимодействия, представленных прототипами или экземплярами классов, образующих иерархию наследования.</p>
15
<p>Данный подход к программированию распространен и используется большинством современных языков. Он рассматривается как подход к разработке программного обеспечения как к моделированию информационных объектов. С помощью соответствующей концепции можно решить главную проблему структурного программирования - структурирование информации с точки зрения управляемости. С помощью ООП получится управлять процессом моделирования, а также реализовывать достаточно крупные программные проекты.</p>
15
<p>Данный подход к программированию распространен и используется большинством современных языков. Он рассматривается как подход к разработке программного обеспечения как к моделированию информационных объектов. С помощью соответствующей концепции можно решить главную проблему структурного программирования - структурирование информации с точки зрения управляемости. С помощью ООП получится управлять процессом моделирования, а также реализовывать достаточно крупные программные проекты.</p>
16
<h2>Понятие ООП</h2>
16
<h2>Понятие ООП</h2>
17
<p>Объектно-ориентированное программирование - известная парадигма (набор правил, принципов, критериев) разработки программного обеспечения, которая соблюдается программистами при написании программного кода. Если представить пример из реальной жизни, то код - это рецепт, а парадигма - то, как этот самый рецепт оформлен в книге по кулинарии. С помощью парадигмы можно стандартизировать написание исходного программного кода. Этот прием позволяет снизить риск возникновения ошибок, а также ускорить непосредственную разработку программного обеспечения. За счет соблюдения парадигм программирования получится сделать исходный код более читаемым для других разработчиков.</p>
17
<p>Объектно-ориентированное программирование - известная парадигма (набор правил, принципов, критериев) разработки программного обеспечения, которая соблюдается программистами при написании программного кода. Если представить пример из реальной жизни, то код - это рецепт, а парадигма - то, как этот самый рецепт оформлен в книге по кулинарии. С помощью парадигмы можно стандартизировать написание исходного программного кода. Этот прием позволяет снизить риск возникновения ошибок, а также ускорить непосредственную разработку программного обеспечения. За счет соблюдения парадигм программирования получится сделать исходный код более читаемым для других разработчиков.</p>
18
<p>Суть объектно-ориентированного программирования заключается в том, что все программы, написанные с его помощью, представляют собой объекты. Каждый объект - это некоторая сущность с определенным набором данных и доступных манипуляций.</p>
18
<p>Суть объектно-ориентированного программирования заключается в том, что все программы, написанные с его помощью, представляют собой объекты. Каждый объект - это некоторая сущность с определенным набором данных и доступных манипуляций.</p>
19
<h2>Структура ООП</h2>
19
<h2>Структура ООП</h2>
20
<p>Исходный код, написанный при помощи рассматриваемой методологии, включает в себя определенные принципы ООП. Всего их 4 штуки. Это - ключевые элементы, которые позволяют формировать программные приложения:</p>
20
<p>Исходный код, написанный при помощи рассматриваемой методологии, включает в себя определенные принципы ООП. Всего их 4 штуки. Это - ключевые элементы, которые позволяют формировать программные приложения:</p>
21
<ul><li>объекты;</li>
21
<ul><li>объекты;</li>
22
<li>методы;</li>
22
<li>методы;</li>
23
<li>атрибуты;</li>
23
<li>атрибуты;</li>
24
<li>классы.</li>
24
<li>классы.</li>
25
</ul><p> Далее каждый вариант будет рассмотрен более подробно, чтобы лучше понимать принципы ООП.</p>
25
</ul><p> Далее каждый вариант будет рассмотрен более подробно, чтобы лучше понимать принципы ООП.</p>
26
<h3>Объект</h3>
26
<h3>Объект</h3>
27
<p>Объектом называется кусок программного кода, который описывает элемент с определенным набором характеристик и функций. Примером может послужить видеоигра, в которой есть главный герой (персонаж).</p>
27
<p>Объектом называется кусок программного кода, который описывает элемент с определенным набором характеристик и функций. Примером может послужить видеоигра, в которой есть главный герой (персонаж).</p>
28
<p>Это создание может в программном коде выражаться отдельным объектом с различными характеристиками:</p>
28
<p>Это создание может в программном коде выражаться отдельным объектом с различными характеристиками:</p>
29
<ul><li>здоровье;</li>
29
<ul><li>здоровье;</li>
30
<li>сила;</li>
30
<li>сила;</li>
31
<li>выносливость;</li>
31
<li>выносливость;</li>
32
<li>ловкость;</li>
32
<li>ловкость;</li>
33
<li>урон.</li>
33
<li>урон.</li>
34
</ul><p>У персонажа также могут быть различные функции (методы) - особые приемы , используемые во время атаки персонажа, магические навыки и так далее. С помощью объектов можно описать других персонажей в игре, а также различные средства (способы) передвижения.</p>
34
</ul><p>У персонажа также могут быть различные функции (методы) - особые приемы , используемые во время атаки персонажа, магические навыки и так далее. С помощью объектов можно описать других персонажей в игре, а также различные средства (способы) передвижения.</p>
35
<h3>Методы</h3>
35
<h3>Методы</h3>
36
<p>Методы - функции, описанные внутри того или иного класса или объекта. Они имеют прямое отношение к конкретному элементу и позволяют с ним взаимодействовать. Методы также помогают контактировать с различными частями программного кода.</p>
36
<p>Методы - функции, описанные внутри того или иного класса или объекта. Они имеют прямое отношение к конкретному элементу и позволяют с ним взаимодействовать. Методы также помогают контактировать с различными частями программного кода.</p>
37
<p>На примере с игровым персонажем можно в качестве описания методов охарактеризовать навыки и умения будущего игрового героя. Когда персонаж выполняет то или иное действие, он использует метод, который был заранее описан в его объекте.</p>
37
<p>На примере с игровым персонажем можно в качестве описания методов охарактеризовать навыки и умения будущего игрового героя. Когда персонаж выполняет то или иное действие, он использует метод, который был заранее описан в его объекте.</p>
38
<h3>Атрибуты</h3>
38
<h3>Атрибуты</h3>
39
<p>Атрибут - конкретная характеристика класса. Он может быть представлен в программировании в качестве переменной с данными. Рассматривая пример с игровым персонажем, стоит обратить внимание на характеристики героя. Пример - выносливость или скорость. Подобные показатели - это и есть атрибуты.</p>
39
<p>Атрибут - конкретная характеристика класса. Он может быть представлен в программировании в качестве переменной с данными. Рассматривая пример с игровым персонажем, стоит обратить внимание на характеристики героя. Пример - выносливость или скорость. Подобные показатели - это и есть атрибуты.</p>
40
<h3>Класс</h3>
40
<h3>Класс</h3>
41
<p>Рассматривая основные принципы в ООП, нельзя обделить вниманием классы. О них необходимо знать, интересуясь изучаемой методологией разработки программного обеспечения.</p>
41
<p>Рассматривая основные принципы в ООП, нельзя обделить вниманием классы. О них необходимо знать, интересуясь изучаемой методологией разработки программного обеспечения.</p>
42
<p>Класс выступает наиболее обобщенной и абстрактной формой в объектно-ориентированной разработке. На его основе будут строиться остальные элементы структуры исходного кода.</p>
42
<p>Класс выступает наиболее обобщенной и абстрактной формой в объектно-ориентированной разработке. На его основе будут строиться остальные элементы структуры исходного кода.</p>
43
<p>В случае с игрой необходимо помнить - в РПГ множество различных героев:</p>
43
<p>В случае с игрой необходимо помнить - в РПГ множество различных героев:</p>
44
<ul><li>воины;</li>
44
<ul><li>воины;</li>
45
<li>маги;</li>
45
<li>маги;</li>
46
<li>лучники;</li>
46
<li>лучники;</li>
47
<li>орки;</li>
47
<li>орки;</li>
48
<li>друиды.</li>
48
<li>друиды.</li>
49
</ul><p>При создании полноценной игры, которая будет качественно и стабильно работать, сложно и нецелесообразно описывать каждый класс персонажа с нуля, ведь у героев есть одинаковые признаки и методы.</p>
49
</ul><p>При создании полноценной игры, которая будет качественно и стабильно работать, сложно и нецелесообразно описывать каждый класс персонажа с нуля, ведь у героев есть одинаковые признаки и методы.</p>
50
<p>Именно поэтому можно создать класс - объект, который будет выступать в качестве базы для других объектов в игре. Примером послужит класс - персонаж. Он умеет:</p>
50
<p>Именно поэтому можно создать класс - объект, который будет выступать в качестве базы для других объектов в игре. Примером послужит класс - персонаж. Он умеет:</p>
51
<ul><li>ходить;</li>
51
<ul><li>ходить;</li>
52
<li>бегать;</li>
52
<li>бегать;</li>
53
<li>прыгать;</li>
53
<li>прыгать;</li>
54
<li>драться;</li>
54
<li>драться;</li>
55
<li>имеет характеристики вроде здоровья и маны.</li>
55
<li>имеет характеристики вроде здоровья и маны.</li>
56
</ul><p>Атрибуты будут разные у разных рас, но они все равно будут присутствовать. Конкретный же игрок будет содержать специфичные характеристики и методы, которые зависят от решений игрока и других факторов. Пример - от собранной амуниции. Класс - это абстракция и наследование. С их помощью значительно упрощается генерация новых объектов в будущем проекте.</p>
56
</ul><p>Атрибуты будут разные у разных рас, но они все равно будут присутствовать. Конкретный же игрок будет содержать специфичные характеристики и методы, которые зависят от решений игрока и других факторов. Пример - от собранной амуниции. Класс - это абстракция и наследование. С их помощью значительно упрощается генерация новых объектов в будущем проекте.</p>
57
<h2>Принципы</h2>
57
<h2>Принципы</h2>
58
<p>Изучая ООП (наследование, инкапсуляцию, полиморфизм), необходимо помнить о том, что в основе правил создания и использования всех структурных элементов лежит определенный ряд принципов и правил. С их помощью можно задействовать все структурные элементы, включая классы, объекты, методы и иные элементы.</p>
58
<p>Изучая ООП (наследование, инкапсуляцию, полиморфизм), необходимо помнить о том, что в основе правил создания и использования всех структурных элементов лежит определенный ряд принципов и правил. С их помощью можно задействовать все структурные элементы, включая классы, объекты, методы и иные элементы.</p>
59
<p>В качестве основных принципов объектно-ориентированной разработки выделяют следующие компоненты:</p>
59
<p>В качестве основных принципов объектно-ориентированной разработки выделяют следующие компоненты:</p>
60
<ul><li>инкапсуляция;</li>
60
<ul><li>инкапсуляция;</li>
61
<li>абстракция;</li>
61
<li>абстракция;</li>
62
<li>полиморфизм;</li>
62
<li>полиморфизм;</li>
63
<li>наследование.</li>
63
<li>наследование.</li>
64
</ul><p>Далее каждый компонент будет изучен более подробно для лучшего понимания основ объектно-ориентированной разработки.</p>
64
</ul><p>Далее каждый компонент будет изучен более подробно для лучшего понимания основ объектно-ориентированной разработки.</p>
65
<h3>Инкапсуляция</h3>
65
<h3>Инкапсуляция</h3>
66
<p>Инкапсуляция нужна для быстрой и безопасной организации иерархической управляемости: чтобы было достаточно простой команды "что нужно сделать", без одновременного уточнения того, как именно проводить ту или иную операцию. Связано это с тем, что указание на непосредственный метод реализации - это уже совершенно другой уровень управления приложением.</p>
66
<p>Инкапсуляция нужна для быстрой и безопасной организации иерархической управляемости: чтобы было достаточно простой команды "что нужно сделать", без одновременного уточнения того, как именно проводить ту или иную операцию. Связано это с тем, что указание на непосредственный метод реализации - это уже совершенно другой уровень управления приложением.</p>
67
<p>Принцип инкапсуляции гласит, что все важные данные, необходимые для работы класса или объекта, должны в нем же и храниться. Только определенная информация будет доступна для внешних функций и объектов.</p>
67
<p>Принцип инкапсуляции гласит, что все важные данные, необходимые для работы класса или объекта, должны в нем же и храниться. Только определенная информация будет доступна для внешних функций и объектов.</p>
68
<p>Данные конкретного объекта или класса хранятся исключительно в пределах этого самого класса или объекта. Вносить в них корректировки, пользуясь другими классами, нельзя. Окружение имеет право запрашивать только публичные (общие) методы и атрибуты.</p>
68
<p>Данные конкретного объекта или класса хранятся исключительно в пределах этого самого класса или объекта. Вносить в них корректировки, пользуясь другими классами, нельзя. Окружение имеет право запрашивать только публичные (общие) методы и атрибуты.</p>
69
<p>За счет инкапсуляции удается обеспечить более высокий уровень безопасности исходному коду программы, а также свести к минимуму шансы на случайное повреждение данных внутри какого-нибудь класса или объекта со стороны.</p>
69
<p>За счет инкапсуляции удается обеспечить более высокий уровень безопасности исходному коду программы, а также свести к минимуму шансы на случайное повреждение данных внутри какого-нибудь класса или объекта со стороны.</p>
70
<h3>Наследование</h3>
70
<h3>Наследование</h3>
71
<p>Среди принципов ООП также принято выделять наследование. Это основная суть взаимоотношений между классами и объектами. Для того, чтобы не приходилось создавать множество одинаковых объектов или классов, можно создать один класс над классами с более общими характеристиками или функциями, а затем постепенно наследовать от него те или иные параметры/возможности.</p>
71
<p>Среди принципов ООП также принято выделять наследование. Это основная суть взаимоотношений между классами и объектами. Для того, чтобы не приходилось создавать множество одинаковых объектов или классов, можно создать один класс над классами с более общими характеристиками или функциями, а затем постепенно наследовать от него те или иные параметры/возможности.</p>
72
<p>При помощи специальных конструкций получится забрать из класса ряд атрибутов или методов, оставить их в неизменном виде или дополнить новыми элементами, внести корректировки в некоторые характеристики или создать из них уникальные объекты или подклассы для дальнейшего наследования опций.</p>
72
<p>При помощи специальных конструкций получится забрать из класса ряд атрибутов или методов, оставить их в неизменном виде или дополнить новыми элементами, внести корректировки в некоторые характеристики или создать из них уникальные объекты или подклассы для дальнейшего наследования опций.</p>
73
<p>Чтобы лучше понять этот принцип, рекомендуется рассмотреть наглядный пример - средства передвижения:</p>
73
<p>Чтобы лучше понять этот принцип, рекомендуется рассмотреть наглядный пример - средства передвижения:</p>
74
<ol><li>Пусть будет абстрактный класс "Средства передвижения". У него поддерживается возможность набора скорости, а также транспортировки грузов и людей.</li>
74
<ol><li>Пусть будет абстрактный класс "Средства передвижения". У него поддерживается возможность набора скорости, а также транспортировки грузов и людей.</li>
75
<li>Из него будет сформирован подкласс "Автобус". Он унаследует базовые характеристики и уточнит их определенным количеством мест для пассажиров, а также пределом скорости разгона.</li>
75
<li>Из него будет сформирован подкласс "Автобус". Он унаследует базовые характеристики и уточнит их определенным количеством мест для пассажиров, а также пределом скорости разгона.</li>
76
<li>Теперь можно создать объект "Икарус". Он получит еще более точную скорость, планировку, количество дверей, тип сигнала, а также иные специфические параметры.</li>
76
<li>Теперь можно создать объект "Икарус". Он получит еще более точную скорость, планировку, количество дверей, тип сигнала, а также иные специфические параметры.</li>
77
</ol><p>Описывать каждый раз новый класс или объект с нуля не придется. Достаточно обратиться к ранее созданному классу или объекту и дополнить его конкретикой.</p>
77
</ol><p>Описывать каждый раз новый класс или объект с нуля не придется. Достаточно обратиться к ранее созданному классу или объекту и дополнить его конкретикой.</p>
78
<h3>Абстракция</h3>
78
<h3>Абстракция</h3>
79
<p>Среди принципов ООП есть абстракции. Каждый верхний слой над объектом (классом) более абстрактен, чем его "младшая версия". Такая концепция позволит избежать переписывания по многу раз одного и того же объекта, ссылаясь на одни и те же методы и атрибуты.</p>
79
<p>Среди принципов ООП есть абстракции. Каждый верхний слой над объектом (классом) более абстрактен, чем его "младшая версия". Такая концепция позволит избежать переписывания по многу раз одного и того же объекта, ссылаясь на одни и те же методы и атрибуты.</p>
80
<p>Абстрактные классы дают возможность создавать более конкретные классы, а также соответствующие от них объекты, избегая описание реализации функции заблаговременно (в этом и заключается суть абстракции), а также оставляя исключительно базовый шаблон для дальнейших настроек.</p>
80
<p>Абстрактные классы дают возможность создавать более конкретные классы, а также соответствующие от них объекты, избегая описание реализации функции заблаговременно (в этом и заключается суть абстракции), а также оставляя исключительно базовый шаблон для дальнейших настроек.</p>
81
<p>Абстрактный класс должен быть публичным и не иметь реализаций методов. Именно этим он отличается от дочерних классов объектов программного кода.</p>
81
<p>Абстрактный класс должен быть публичным и не иметь реализаций методов. Именно этим он отличается от дочерних классов объектов программного кода.</p>
82
<h3>Полиморфизм</h3>
82
<h3>Полиморфизм</h3>
83
<p>Полиморфизм - ключевой принцип объектно-ориентированного программирования. Он позволяет осуществлять обработку разнообразных типов данных с помощью одних и тех же методов.</p>
83
<p>Полиморфизм - ключевой принцип объектно-ориентированного программирования. Он позволяет осуществлять обработку разнообразных типов данных с помощью одних и тех же методов.</p>
84
<p>Полиморфизм в разных языках программирования будет отличаться друг от друга: есть языки вроде C++, где используется перегрузка, а есть JavaScript, где функции по умолчанию умеют обрабатывать различные типы данных без необходимости указывать их тип заранее.</p>
84
<p>Полиморфизм в разных языках программирования будет отличаться друг от друга: есть языки вроде C++, где используется перегрузка, а есть JavaScript, где функции по умолчанию умеют обрабатывать различные типы данных без необходимости указывать их тип заранее.</p>
85
<p>Полиморфизм дает возможность через идентичные методы обрабатывать разнообразные типы данных. Пример - числа с плавающими запятыми и двузначные числа. Полиморфизмом позволяет определять методы в дочерних классах для обработки данных или выполнения дополнительных действий при вызове аналогичных методов.</p>
85
<p>Полиморфизм дает возможность через идентичные методы обрабатывать разнообразные типы данных. Пример - числа с плавающими запятыми и двузначные числа. Полиморфизмом позволяет определять методы в дочерних классах для обработки данных или выполнения дополнительных действий при вызове аналогичных методов.</p>
86
<h2>Плюсы и минусы ООП</h2>
86
<h2>Плюсы и минусы ООП</h2>
87
<p>Преимущества и недостатки ООП помогут понять, стоит ли пользоваться соответствующей парадигмой при разработке того или иного программного обеспечения. К плюсам объектно-ориентированного программирования относят следующие моменты:</p>
87
<p>Преимущества и недостатки ООП помогут понять, стоит ли пользоваться соответствующей парадигмой при разработке того или иного программного обеспечения. К плюсам объектно-ориентированного программирования относят следующие моменты:</p>
88
<ol><li>Модульность разработки. Достигается за счет инкапсуляции. Количество ошибок значительно уменьшается, а сама разработка программы ускоряется при условии участия большого количества программистов. Связано это с тем, что все время писать код "с нуля" нет никакой необходимости.</li>
88
<ol><li>Модульность разработки. Достигается за счет инкапсуляции. Количество ошибок значительно уменьшается, а сама разработка программы ускоряется при условии участия большого количества программистов. Связано это с тем, что все время писать код "с нуля" нет никакой необходимости.</li>
89
<li>Высокая скорость разработки. Классы и интерфейсы в объектно-ориентированном программировании легко трансформируются в полноценные библиотеки. Их можно использовать в различных проектах.</li>
89
<li>Высокая скорость разработки. Классы и интерфейсы в объектно-ориентированном программировании легко трансформируются в полноценные библиотеки. Их можно использовать в различных проектах.</li>
90
<li>Расширяемость. ООП легко развивается, дополняется и меняется. Этому способствует модульный подход к программированию.</li>
90
<li>Расширяемость. ООП легко развивается, дополняется и меняется. Этому способствует модульный подход к программированию.</li>
91
<li>Простое восприятие. При помощи объектно-ориентированного программирования можно упростить понимание кода. Результат достигается за счет взаимодействия с объектами, а не логикой программы.</li>
91
<li>Простое восприятие. При помощи объектно-ориентированного программирования можно упростить понимание кода. Результат достигается за счет взаимодействия с объектами, а не логикой программы.</li>
92
<li>Высокий уровень безопасности. Инкапсулированный код будет недоступен извне, поэтому взломать программу окажется на порядок сложнее.</li>
92
<li>Высокий уровень безопасности. Инкапсулированный код будет недоступен извне, поэтому взломать программу окажется на порядок сложнее.</li>
93
<li>Высокий уровень гибкости. С помощью полиморфизма удается быстро адаптировать приложение под свои нужды, избегая описания новых функций и объектов.</li>
93
<li>Высокий уровень гибкости. С помощью полиморфизма удается быстро адаптировать приложение под свои нужды, избегая описания новых функций и объектов.</li>
94
</ol><p>Преимущества ООП теперь понятны. К недостаткам данной парадигмы относят то, что она ставит во главе угла объекты. Достаточного внимания вычислениям, расчетам и алгоритмам здесь не уделяется. Такой подход иногда требует написания более объемного программного кода, чем при функциональном программировании. Также ООП иногда негативно сказывается на непосредственной скорости компиляции кода. Других существенных недостатков у парадигмы нет.</p>
94
</ol><p>Преимущества ООП теперь понятны. К недостаткам данной парадигмы относят то, что она ставит во главе угла объекты. Достаточного внимания вычислениям, расчетам и алгоритмам здесь не уделяется. Такой подход иногда требует написания более объемного программного кода, чем при функциональном программировании. Также ООП иногда негативно сказывается на непосредственной скорости компиляции кода. Других существенных недостатков у парадигмы нет.</p>
95
<h2>Языки с ООП</h2>
95
<h2>Языки с ООП</h2>
96
<p>Языков программирования, которые пользуются объектно-ориентированной разработкой, очень много. Вот несколько известных из них:</p>
96
<p>Языков программирования, которые пользуются объектно-ориентированной разработкой, очень много. Вот несколько известных из них:</p>
97
<ol><li>Ruby - высокоуровневый язык с динамической типизацией. Появился в середине 90-х годов. Его создал японский разработчик Юкихиро Мацумото.</li>
97
<ol><li>Ruby - высокоуровневый язык с динамической типизацией. Появился в середине 90-х годов. Его создал японский разработчик Юкихиро Мацумото.</li>
98
<li>C++ - статически типизированный язык программирования. Он заточен под работу с ООП. Является универсальным средством разработки программного обеспечения.</li>
98
<li>C++ - статически типизированный язык программирования. Он заточен под работу с ООП. Является универсальным средством разработки программного обеспечения.</li>
99
<li>JavaScript - язык программирования с динамической типизацией. Является универсальным средством программирования. Применяется в разных парадигмах разработки.</li>
99
<li>JavaScript - язык программирования с динамической типизацией. Является универсальным средством программирования. Применяется в разных парадигмах разработки.</li>
100
</ol><p>Языки с ООП также включают в себя C#, Python, Scala, PHP, Java и другие.</p>
100
</ol><p>Языки с ООП также включают в себя C#, Python, Scala, PHP, Java и другие.</p>
101
<p><em>Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в <a>Otus</a>!</em> </p>
101
<p><em>Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в <a>Otus</a>!</em> </p>
102
102