TGTGInsightаналитика telegramLIVE / telegram public index
← Программирование для гуманитариев
Программирование для гуманитариев avatar

TGINSIGHT POST

Post #334

@it_human

Программирование для гуманитариев

Просмотры3,360Количество просмотров
Опубликован5 дек.05.12.2020, 15:00
Содержимое поста

Содержимое

Что такое классы Мне несколько раз подписчики жаловались на то, что не понимают ООП. Причем выведать, на чём конкретно они застопорились, и что именно оказалось непонятным - почему-то ни разу не удалось, на уточняющие вопросы молчат как партизаны, и как рыба об лёд. Поэтому предлагаю начать с азов, и разобраться с тем, что такое классы, и для чего они нужны. Предположим вы пишете код, где нужно как-то использовать данные пользователя: возраст, телефон, имя итд. Для этого нужны такие переменные: user_age, user_phone, user_name А если пользователей 2 или более, переменных стновится в 2 раза больше: user1_age, user2_age, user1_phone, user2_phone… В общем, код превращается в какую-то кашу. Для удобства нам тут не хватает отдельного типа данных для всех юзеров - User. И для этой цели была придумана такая сущность как struct, структура - она есть в C, Go и некоторых других языках. struct позволяет хранить вместе те переменные, которые связаны (например, относятся к одному и тому же юзеру). Ниже - пример на каком-нибудь условном си-подобном языке (это псевдокод, не настоящий код) struct User { string name; int age; string phone; } Так мы будем все данные для одного юзера группировать вместе. Например, создадим два пользователя с разными данными: struct User user1 = {"Маша", 15, "+79161234567"}; struct User user2 = {"Пётр", 23, "+79167654321"}; В итоге у нас в коде не 6 переменных, а 2 - user1 и user2. А «внутри» каждого такого объекта хранятся все нужные данные, и мы можем их получить вот так: user1.name, user2.name. А что же такое класс? Класс - это тоже тип данных, примерно как struct, только более расширенная версия. В классах хранятся не только сами данные (как в структурках), но и - методы (функции) для работы с этими данными. Например: class User { string name; int age; string phone; function say_hello() { print(«Hello! My name is {name}»); } Таким образом, мы можем не только хранить в классе информацию об имени, возрасте и телефоне юзера, но и использовать метод класса say_hello: user1.say_hello() >> Hello! My name is Маша user2.say_hello() >> Hello! My name is Пётр В следующих постах поговорим о том, что такое экземпляры классов и конструкторы.