HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>Так в чем же состоит настоящая цель классов? Упрощенно, с помощью классов описываются категории объектов, например, "кошки" или "адреса" или даже "строки". На базе классов создаются объекты, из которых потом строится логика работы кода.</p>
1 <p>Так в чем же состоит настоящая цель классов? Упрощенно, с помощью классов описываются категории объектов, например, "кошки" или "адреса" или даже "строки". На базе классов создаются объекты, из которых потом строится логика работы кода.</p>
2 <p>Возьмем для примера студента Хекслета. В коде он описан классом User, у которого есть свойства и методы. Свойства - это любая информация о пользователе: дата рождения, дата создания, имя, наличие доступов и т.п. Методы - действия которые может выполнять пользователь.</p>
2 <p>Возьмем для примера студента Хекслета. В коде он описан классом User, у которого есть свойства и методы. Свойства - это любая информация о пользователе: дата рождения, дата создания, имя, наличие доступов и т.п. Методы - действия которые может выполнять пользователь.</p>
3 <p>Такой стиль работы предполагает, что класс используется как "шаблон" для создания объектов этого класса (или как говорят "экземпляров класса"). Например, для класса User объектами будут конкретные пользователи:</p>
3 <p>Такой стиль работы предполагает, что класс используется как "шаблон" для создания объектов этого класса (или как говорят "экземпляров класса"). Например, для класса User объектами будут конкретные пользователи:</p>
4 <p>В коде мы создаем объект "пользователь" с указанными именем и фамилией. Делается это с помощью ключевого слова new, после которого идет имя класса со скобками, как при вызове обычной функции. Этот объект записывается в переменную и становится доступен для работы. Дальше, в зависимости от того как был написан класс, мы можем выполнять разные действия с ним - менять свойства и вызывать методы. Это похоже на работу со строками, только в таких объектах как выше, хранится не одно значение, а какой-то набор разнородных данных. Причем они могут быть разных типов. Вот пример другого класса User, который мы могли бы написать:</p>
4 <p>В коде мы создаем объект "пользователь" с указанными именем и фамилией. Делается это с помощью ключевого слова new, после которого идет имя класса со скобками, как при вызове обычной функции. Этот объект записывается в переменную и становится доступен для работы. Дальше, в зависимости от того как был написан класс, мы можем выполнять разные действия с ним - менять свойства и вызывать методы. Это похоже на работу со строками, только в таких объектах как выше, хранится не одно значение, а какой-то набор разнородных данных. Причем они могут быть разных типов. Вот пример другого класса User, который мы могли бы написать:</p>
5 <p>При таком подходе, программа превращается в набор объектов, которые взаимодействуют друг с другом. Через эти объекты выражаются процессы, происходящие в проекте. Например, создание курса, добавление туда уроков, прохождение курса студентом и так далее. Все это в коде выглядит как объекты, жонглирующие объектами:</p>
5 <p>При таком подходе, программа превращается в набор объектов, которые взаимодействуют друг с другом. Через эти объекты выражаются процессы, происходящие в проекте. Например, создание курса, добавление туда уроков, прохождение курса студентом и так далее. Все это в коде выглядит как объекты, жонглирующие объектами:</p>
6 <p>В программировании такой стиль программирования называется объектно-ориентированным (ООП). Чтобы научиться писать такой код, нужно время. В начале, для создания объектов, мы будем использовать или дописывать готовые классы. Затем, постепенно, вы начнете создавать свои, пока это не станет обыденным делом.</p>
6 <p>В программировании такой стиль программирования называется объектно-ориентированным (ООП). Чтобы научиться писать такой код, нужно время. В начале, для создания объектов, мы будем использовать или дописывать готовые классы. Затем, постепенно, вы начнете создавать свои, пока это не станет обыденным делом.</p>
7 <h2>Связь с реальным миром</h2>
7 <h2>Связь с реальным миром</h2>
8 <p>В интернете много вопросов от новичков, что такое ООП (объектно-ориентированное программирование) и как его понять. Один из самых популярных ответов - рассказ про моделирование реального мира через классы. Вот у нас есть машина, вот дом, вот мы для них пишем классы. Такое объяснение больше путает, чем помогает. Классы действительно используются для моделирования, но только не реального мира, а конкретной предметной области. Например, пользователь с точки зрения бухгалтера и системы заказа пиццы - это абсолютно разные сущности. У них разный набор свойств, разное поведение и разное предназначение. То есть важно понимать, что в коде мы всегда описываем какое-то специфичное представление, которое может идти в разрез с реальным миром. Более того, классами описывается вообще все, что не имеет никакой связи с реальным миром. Чему например соответствует HTTP-запрос? А многие классы носят исключительно утилитарный характер и нужны для обслуживания других частей системы.</p>
8 <p>В интернете много вопросов от новичков, что такое ООП (объектно-ориентированное программирование) и как его понять. Один из самых популярных ответов - рассказ про моделирование реального мира через классы. Вот у нас есть машина, вот дом, вот мы для них пишем классы. Такое объяснение больше путает, чем помогает. Классы действительно используются для моделирования, но только не реального мира, а конкретной предметной области. Например, пользователь с точки зрения бухгалтера и системы заказа пиццы - это абсолютно разные сущности. У них разный набор свойств, разное поведение и разное предназначение. То есть важно понимать, что в коде мы всегда описываем какое-то специфичное представление, которое может идти в разрез с реальным миром. Более того, классами описывается вообще все, что не имеет никакой связи с реальным миром. Чему например соответствует HTTP-запрос? А многие классы носят исключительно утилитарный характер и нужны для обслуживания других частей системы.</p>
9 <p>А для понимания ООП действительно нужно время. Поэтому сначала полезно работать с уже существующими системами, и только потом уже приходить к проектированию своих.</p>
9 <p>А для понимания ООП действительно нужно время. Поэтому сначала полезно работать с уже существующими системами, и только потом уже приходить к проектированию своих.</p>