1 added
1 removed
Original
2026-01-01
Modified
2026-03-10
1
<ul><li><a>ООП - особенности</a><ul><li><a>Объект - это…</a></li>
1
<ul><li><a>ООП - особенности</a><ul><li><a>Объект - это…</a></li>
2
<li><a>Класс - определение</a></li>
2
<li><a>Класс - определение</a></li>
3
</ul></li>
3
</ul></li>
4
<li><a>Непосредственная работа</a><ul><li><a>Ключевые понятия</a></li>
4
<li><a>Непосредственная работа</a><ul><li><a>Ключевые понятия</a></li>
5
<li><a>Модификаторы доступа</a></li>
5
<li><a>Модификаторы доступа</a></li>
6
</ul></li>
6
</ul></li>
7
<li><a>Полноценный пример</a></li>
7
<li><a>Полноценный пример</a></li>
8
<li><a>Быстрое вливание</a></li>
8
<li><a>Быстрое вливание</a></li>
9
</ul><p>Классы и объекты - два ключевых компонента, с которыми предстоит работать, если программист пользуется ООП. Они тесно связаны между собой и представляют собой термины, с которыми должен познакомиться каждый разработчик.</p>
9
</ul><p>Классы и объекты - два ключевых компонента, с которыми предстоит работать, если программист пользуется ООП. Они тесно связаны между собой и представляют собой термины, с которыми должен познакомиться каждый разработчик.</p>
10
<p>В данной статье будет рассказано о том, как работать с классами и объектами. Это поможет при создании собственного приложения на базе объектно-ориентированного программирования на C++ и не только.</p>
10
<p>В данной статье будет рассказано о том, как работать с классами и объектами. Это поможет при создании собственного приложения на базе объектно-ориентированного программирования на C++ и не только.</p>
11
<h2>ООП - особенности</h2>
11
<h2>ООП - особенности</h2>
12
<p>ООП - это парадигма разработки. Здесь приложения представляют собой объекты (экземпляры класса в ООП). Функционирование утилиты осуществляется за счет взаимодействия элементов.</p>
12
<p>ООП - это парадигма разработки. Здесь приложения представляют собой объекты (экземпляры класса в ООП). Функционирование утилиты осуществляется за счет взаимодействия элементов.</p>
13
<p>Объекты - сущности, у которых имеется свойство и поведение. Они выступают экземплярами класса. Пример - персонаж (Class Character). Его экземплярами будут выступать hero и npc.</p>
13
<p>Объекты - сущности, у которых имеется свойство и поведение. Они выступают экземплярами класса. Пример - персонаж (Class Character). Его экземплярами будут выступать hero и npc.</p>
14
<p>Свойства - это информация, которая связана с тем или иным объектом. Если рассмотреть пример с Character и игрой, можно отнести сюда:</p>
14
<p>Свойства - это информация, которая связана с тем или иным объектом. Если рассмотреть пример с Character и игрой, можно отнести сюда:</p>
15
<ul><li>силу;</li>
15
<ul><li>силу;</li>
16
<li>меткость;</li>
16
<li>меткость;</li>
17
<li>ловкость;</li>
17
<li>ловкость;</li>
18
<li>собранные деньги;</li>
18
<li>собранные деньги;</li>
19
<li>интеллект;</li>
19
<li>интеллект;</li>
20
<li>здоровье.</li>
20
<li>здоровье.</li>
21
</ul><p>Поведение объекта будет определяться при помощи методов. Это - специальные блоки кода, которые могут вызываться из различных частей программы. Примеры у игрового персонажа:</p>
21
</ul><p>Поведение объекта будет определяться при помощи методов. Это - специальные блоки кода, которые могут вызываться из различных частей программы. Примеры у игрового персонажа:</p>
22
<ul><li>атака;</li>
22
<ul><li>атака;</li>
23
<li>использование;</li>
23
<li>использование;</li>
24
<li>подбор предмета;</li>
24
<li>подбор предмета;</li>
25
<li>разговор.</li>
25
<li>разговор.</li>
26
</ul><p>При помощи свойств и методов можно ускорить процесс программирования. Код получится более совершенным и читаемым.</p>
26
</ul><p>При помощи свойств и методов можно ускорить процесс программирования. Код получится более совершенным и читаемым.</p>
27
<p>Объектно-ориентированную парадигму используют в C#, JavaScript, PHP, C++, Python, Java и других языках. Именно поэтому важно разобраться с азами работы с объектами и классами. Это - база, без которой дальнейшая разработка бесполезна.</p>
27
<p>Объектно-ориентированную парадигму используют в C#, JavaScript, PHP, C++, Python, Java и других языках. Именно поэтому важно разобраться с азами работы с объектами и классами. Это - база, без которой дальнейшая разработка бесполезна.</p>
28
<h3>Объект - это…</h3>
28
<h3>Объект - это…</h3>
29
<p>Чтобы понимать, чем класс отличается от объекта (экземпляра класса в ООП) при разработке, нужно запомнить несколько ключевых терминов.</p>
29
<p>Чтобы понимать, чем класс отличается от объекта (экземпляра класса в ООП) при разработке, нужно запомнить несколько ключевых терминов.</p>
30
<p>Объект - это своеобразная сущность в цифровом пространстве. Она обладает определенным состоянием. Имеет в своем составе поля и методы.</p>
30
<p>Объект - это своеобразная сущность в цифровом пространстве. Она обладает определенным состоянием. Имеет в своем составе поля и методы.</p>
31
<p>Соответствующий компонент может принадлежать к одному или нескольким классам, определяющих его поведение. Экземпляр класса - это и есть object.</p>
31
<p>Соответствующий компонент может принадлежать к одному или нескольким классам, определяющих его поведение. Экземпляр класса - это и есть object.</p>
32
<p>Если провести аналогию в реальной жизни для лучшего понимания того, чем отличается рассматриваемый компонент, можно сказать так: object - это то, что сделано по чертежу. А класс - сама "схема действий".</p>
32
<p>Если провести аналогию в реальной жизни для лучшего понимания того, чем отличается рассматриваемый компонент, можно сказать так: object - это то, что сделано по чертежу. А класс - сама "схема действий".</p>
33
<p>Среди свойств выделяют:</p>
33
<p>Среди свойств выделяют:</p>
34
<ul><li>полиморфизм;</li>
34
<ul><li>полиморфизм;</li>
35
<li>инкапсуляцию;</li>
35
<li>инкапсуляцию;</li>
36
<li>наследование.</li>
36
<li>наследование.</li>
37
</ul><p>Теперь должно быть ясно, в чем отличие рассматриваемых компонентов. Далее предстоит изучить азы работы с ними.</p>
37
</ul><p>Теперь должно быть ясно, в чем отличие рассматриваемых компонентов. Далее предстоит изучить азы работы с ними.</p>
38
<h3>Класс - определение</h3>
38
<h3>Класс - определение</h3>
39
<p>Объект - это экземпляр класса. А Class представляет собой структурный тип данных. Он включает в себя: описание:</p>
39
<p>Объект - это экземпляр класса. А Class представляет собой структурный тип данных. Он включает в себя: описание:</p>
40
<ul><li>полей данных;</li>
40
<ul><li>полей данных;</li>
41
<li>процедур;</li>
41
<li>процедур;</li>
42
<li>функций.</li>
42
<li>функций.</li>
43
</ul><p>Понятие класса в ООП - это модель создания objects определенного типа. Она описывает их структуру и определяет алгоритмы для дальнейшей работы с соответствующим компонентом.</p>
43
</ul><p>Понятие класса в ООП - это модель создания objects определенного типа. Она описывает их структуру и определяет алгоритмы для дальнейшей работы с соответствующим компонентом.</p>
44
<p>Понятие класса служит средством для введения абстрактных типов данных в исходный код проекта. Суть отличия рассматриваемого элемента заключается в том, что при задании типа данных класс будет определять одновременно не только интерфейс, но и реализацию всех своих имеющихся экземпляров.</p>
44
<p>Понятие класса служит средством для введения абстрактных типов данных в исходный код проекта. Суть отличия рассматриваемого элемента заключается в том, что при задании типа данных класс будет определять одновременно не только интерфейс, но и реализацию всех своих имеющихся экземпляров.</p>
45
<h2>Непосредственная работа</h2>
45
<h2>Непосредственная работа</h2>
46
<p>Рассматривая классы и объекты, рекомендуется действовать на наглядном примере. Это поможет не запутаться в соответствующих понятиях.</p>
46
<p>Рассматривая классы и объекты, рекомендуется действовать на наглядном примере. Это поможет не запутаться в соответствующих понятиях.</p>
47
<p>Реальный мир состоит из экземпляров класса в ООП (objects): города - из районов, в каждом - свои улицы и дома. Все это - objects. Практически любой материальный предмет можно выразить совокупностью objects.</p>
47
<p>Реальный мир состоит из экземпляров класса в ООП (objects): города - из районов, в каждом - свои улицы и дома. Все это - objects. Практически любой материальный предмет можно выразить совокупностью objects.</p>
48
<p>В качестве примера напишем программы учета успеваемости учеников на базе C++. Этот код поможет лучше рассмотреть отличие изучаемых элементов:</p>
48
<p>В качестве примера напишем программы учета успеваемости учеников на базе C++. Этот код поможет лучше рассмотреть отличие изучаемых элементов:</p>
49
<p>Выше - пример класса, который носит название Students. Он будет использован далее в качестве "базы".</p>
49
<p>Выше - пример класса, который носит название Students. Он будет использован далее в качестве "базы".</p>
50
<h3>Ключевые понятия</h3>
50
<h3>Ключевые понятия</h3>
51
<p>Объекты - это экземпляры класса. Последние состоят из свойств и методов:</p>
51
<p>Объекты - это экземпляры класса. Последние состоят из свойств и методов:</p>
52
<ol><li>Свойство - любые данные, которыми можно описать компонент. В случае со студентами - имя, фамилия, средние баллы и оценки. Простыми словами - переменные.</li>
52
<ol><li>Свойство - любые данные, которыми можно описать компонент. В случае со студентами - имя, фамилия, средние баллы и оценки. Простыми словами - переменные.</li>
53
<li>Методы - это функции, способные выполнять те или иные операции над данными (свойствами) класса.</li>
53
<li>Методы - это функции, способные выполнять те или иные операции над данными (свойствами) класса.</li>
54
</ol><p>Каждый студент имеет имя - name, а также фамилию - last_name. У него есть определенные промежуточные оценки за семестр. Они будут записываться в целочисленный массив из 5 составляющих. Все пять оценок проставляются, а затем происходит определение балла успеваемости. В качестве свойства выступит average_ball.</p>
54
</ol><p>Каждый студент имеет имя - name, а также фамилию - last_name. У него есть определенные промежуточные оценки за семестр. Они будут записываться в целочисленный массив из 5 составляющих. Все пять оценок проставляются, а затем происходит определение балла успеваемости. В качестве свойства выступит average_ball.</p>
55
<p>Для того, чтобы рассчитать "средний балл", нужно добавить в класс функцию calculate_average_ball:</p>
55
<p>Для того, чтобы рассчитать "средний балл", нужно добавить в класс функцию calculate_average_ball:</p>
56
<p>Она поделит сумму всех промежуточных оценок на их количество.</p>
56
<p>Она поделит сумму всех промежуточных оценок на их количество.</p>
57
<h3>Модификаторы доступа</h3>
57
<h3>Модификаторы доступа</h3>
58
<p>Рассматривая классы и объекты, нельзя обойти вниманием модификаторы доступа. Они являются крайне важными компонентами при работе с кодом.</p>
58
<p>Рассматривая классы и объекты, нельзя обойти вниманием модификаторы доступа. Они являются крайне важными компонентами при работе с кодом.</p>
59
<p>Все свойства и варианты методов классов имеют те или иные права доступа. По умолчанию все содержимое класса - доступно для чтения и записи только в пределах "самого себя". Чтобы разрешить доступ к информации извне, нужно задействовать модификатор доступа public.</p>
59
<p>Все свойства и варианты методов классов имеют те или иные права доступа. По умолчанию все содержимое класса - доступно для чтения и записи только в пределах "самого себя". Чтобы разрешить доступ к информации извне, нужно задействовать модификатор доступа public.</p>
60
<p>Он позволяет создать "зону видимости" для функций и переменных. Все, что написано после модификатора - это доступные материалы из любой части программы.</p>
60
<p>Он позволяет создать "зону видимости" для функций и переменных. Все, что написано после модификатора - это доступные материалы из любой части программы.</p>
61
<p>Закрытые электронные материалы размещаются после модификатора private. Он отличается тем, что получить доступ к информации уже не получится. Если в приложении отсутствует модификатор public, то все переменные и функции будут по умолчанию закрытыми.</p>
61
<p>Закрытые электронные материалы размещаются после модификатора private. Он отличается тем, что получить доступ к информации уже не получится. Если в приложении отсутствует модификатор public, то все переменные и функции будут по умолчанию закрытыми.</p>
62
<p>Работая с классами и объектами, стоит запомнить такие рекомендации:</p>
62
<p>Работая с классами и объектами, стоит запомнить такие рекомендации:</p>
63
<ol><li>Свойства class создается приватным. Это общепринятый стандарт.</li>
63
<ol><li>Свойства class создается приватным. Это общепринятый стандарт.</li>
64
<li>Методы class имеют значение публичных.</li>
64
<li>Методы class имеют значение публичных.</li>
65
<li>Все действия с закрытыми свойствами будут реализовываться через методы.</li>
65
<li>Все действия с закрытыми свойствами будут реализовываться через методы.</li>
66
</ol><p>Пример выше объясняет, что нельзя напрямую обращаться к закрытым данным. С ними удается работать через методы. Функция get_average_ball помогает получить среднюю оценку, а set_average_ball - выставить ее. Она в виде параметра примет средний балл. Далее - присвоит его значение закрытой переменной average_ball. Далее за счет get_average_ball происходит возврат значения этой переменной.</p>
66
</ol><p>Пример выше объясняет, что нельзя напрямую обращаться к закрытым данным. С ними удается работать через методы. Функция get_average_ball помогает получить среднюю оценку, а set_average_ball - выставить ее. Она в виде параметра примет средний балл. Далее - присвоит его значение закрытой переменной average_ball. Далее за счет get_average_ball происходит возврат значения этой переменной.</p>
67
<h2>Полноценный пример</h2>
67
<h2>Полноценный пример</h2>
68
<p>Разница между классами и объектами понятна. Основные принципы работы с ними - тоже. Это не так сложно. Ниже - наглядный пример кода учета успеваемости:</p>
68
<p>Разница между классами и объектами понятна. Основные принципы работы с ними - тоже. Это не так сложно. Ниже - наглядный пример кода учета успеваемости:</p>
69
<p>Здесь:</p>
69
<p>Здесь:</p>
70
<ol><li>Удалось добавить в class новые методы. Его свойства стали приватными.</li>
70
<ol><li>Удалось добавить в class новые методы. Его свойства стали приватными.</li>
71
<li>Set_name позволяет сохранить имя студента в name, а get_name - отвечает за возврат значения соответствующей переменной.</li>
71
<li>Set_name позволяет сохранить имя студента в name, а get_name - отвечает за возврат значения соответствующей переменной.</li>
72
<li>Аналогичным образом работают set_last_name и get_last_name.</li>
72
<li>Аналогичным образом работают set_last_name и get_last_name.</li>
73
<li>Функция set_scores отвечает за принятие массива с промежуточными оценками. Она сохранит их в приватную переменную.</li>
73
<li>Функция set_scores отвечает за принятие массива с промежуточными оценками. Она сохранит их в приватную переменную.</li>
74
</ol><p>Теперь, зная, как написать экземпляр объекта и работать с ним, нужно создать файл main.cpp. Он содержит такой код:</p>
74
</ol><p>Теперь, зная, как написать экземпляр объекта и работать с ним, нужно создать файл main.cpp. Он содержит такой код:</p>
75
<p>Здесь:</p>
75
<p>Здесь:</p>
76
<ol><li>В самом начале создается Students. Он описывает любого студента.</li>
76
<ol><li>В самом начале создается Students. Он описывает любого студента.</li>
77
<li>Для того, чтобы охарактеризовать оценки всех учеников, требуется создание нового object (конкретного) для каждого человека.</li>
77
<li>Для того, чтобы охарактеризовать оценки всех учеников, требуется создание нового object (конкретного) для каждого человека.</li>
78
<li>После создания student система предлагает ввести фамилию с клавиатуры, а также имя и оценки. По каждому человеку отдельно.</li>
78
<li>После создания student система предлагает ввести фамилию с клавиатуры, а также имя и оценки. По каждому человеку отдельно.</li>
79
<li>Данные передаются set-функциям. Они присваивают их закрытым переменным.</li>
79
<li>Данные передаются set-функциям. Они присваивают их закрытым переменным.</li>
80
<li>После ввода информации осуществляется расчет среднего балла.</li>
80
<li>После ввода информации осуществляется расчет среднего балла.</li>
81
</ol><p>Чтобы увидеть, как наглядно работает приложение, базирующееся на классах и объектах, остается скомпилировать его.</p>
81
</ol><p>Чтобы увидеть, как наглядно работает приложение, базирующееся на классах и объектах, остается скомпилировать его.</p>
82
<h2>Быстрое вливание</h2>
82
<h2>Быстрое вливание</h2>
83
<p>Каждый программист пишет на конкретном языке разработки. Чтобы надписи типа string name, class, objects и другие не вызывали вопросов, рекомендуется закончить специализированные онлайн курсы. На них в кратчайшие сроки научат создавать разнообразные приложения с нуля.</p>
83
<p>Каждый программист пишет на конкретном языке разработки. Чтобы надписи типа string name, class, objects и другие не вызывали вопросов, рекомендуется закончить специализированные онлайн курсы. На них в кратчайшие сроки научат создавать разнообразные приложения с нуля.</p>
84
<p>Работа с классами и объектами будет упрощена по максимуму. На курсах пользователь познакомится с ключевыми понятиями разработки, сформирует первое портфолио и получит неплохую практику. Образовательный процесс рассчитан на срок до года. Можно выбрать одно или несколько направлений.</p>
84
<p>Работа с классами и объектами будет упрощена по максимуму. На курсах пользователь познакомится с ключевыми понятиями разработки, сформирует первое портфолио и получит неплохую практику. Образовательный процесс рассчитан на срок до года. Можно выбрать одно или несколько направлений.</p>
85
-
<p>По завершении курсов объект класса, циклы и иные элементы кодов не будут вызывать вопросы. Подтвердить полученные навыки можно за счет электронного онлайн сертификата. Он выдается всем ученикам по завершении образовательной программы. А еще в процессе учебы клиента ждет постоянное кураторство опытными разработчиками.</p>
85
+
<p>По завершении курсов объект класса, циклы и иные элементы кодов не будут вызывать вопросы. Подтвердить полученные навыки можно за счет электронного онлайн сертификата. Он выдается всем ученикам по завершении образовател��ной программы. А еще в процессе учебы клиента ждет постоянное кураторство опытными разработчиками.</p>
86
<p><em>Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в <a>Otus</a>!</em>Ниже - один из них:</p>
86
<p><em>Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в <a>Otus</a>!</em>Ниже - один из них:</p>
87
<a></a>
87
<a></a>