HTML Diff
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>