|
|
|
Что такое классы и зачем они нужны?13.09.2011, 09:47. Показов 29253. Ответов 8
Метки нет (Все метки)
Здравствуйте! Объясните ,что такое классы и зачем они нужны? Я прочитал кучу всего про классы, но так и не понял, зачем они нужны.
0
|
|
| 13.09.2011, 09:47 | |
|
Ответы с готовыми решениями:
8
Что такое hash-таблицы, и зачем они нужны? |
|
Комбинатор
980 / 252 / 13
Регистрация: 10.03.2010
Сообщений: 3,556
|
|
| 13.09.2011, 12:37 | |
|
В первую очередь для создания сложных структур данных
Во вторых, для удобства. ИМХО
0
|
|
|
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
|
|
| 13.09.2011, 12:43 | |
|
KillJoy, Ну представь, тебе нужна машина, приходишь в магазин а тебе:
1. "вон куча деталей валяется, собирай" - это процедурное программирование 2. "вот ключи, а вот машина, садись и езжай" - это классы как то так )
3
|
|
|
714 / 402 / 33
Регистрация: 04.10.2009
Сообщений: 1,686
|
|
| 13.09.2011, 12:47 | |
|
Класс - это, своего рода, родитель. Он имеет основные свойства и реакции. Например мама. Человек, умеет готовить, стирать, убираться, ругать, хвалить. Вы - потомок (компонент) умеете все, что и мама, но и еще чуть-чуть (в носу ковырять).
Я так это понял...
1
|
|
|
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
|
|
| 13.09.2011, 13:08 | |
|
KillJoy, Если говорить более приближенно к программированию, то получается вот что.....
Вот пишешь ты программу, в ней содержится куча каких то функциональных частей, которые ты собираешь воедино для получения какого то результата. Какие приемущества при использовании классов: 1. Если тебе нужно поменять какой то кусок кода (ну например формат каких то данных вдруг изменился), ты не ищешь по всей программе на что это изменение может повлиять, ты правишь только один из классов. 2. Допустим у тебя появилась задача написать еще одну программу, которая содержит некоторые элементы, которые были в предыдущей. Копируешь ты кусок кода и начинаешь его нудно отлаживать ища откуда какая переменная у тебя бралась и куда что нужно засунуть. Если у тебя эта часть оформлена как класс, то просто копируешь файлы и можешь уже его использовать не вспоминая подробностей расчетов. ну и т.д.
1
|
|
|
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
|
|||||||||||
| 13.09.2011, 15:35 | |||||||||||
|
Классы позволяют создавать объекты - вещи в себе. Объект имеет внутри данные (хотя вы как его пользователь можете не знать о них == инкапсуляция), и выполняет свое предназначение через методы. Это методы будут компактнее чем обычные процедуры, потому как некоторые данные им передавать уже не нужно - они уже внутри объекта класса.
Упрощенный пример:
В процедурном стили мы бы просто завели переменную Счет и по коду использовали её. Однако настал тот час когда Вася захотел завести дополнительный счет. И теперь везде где в коде есть упоминание о переменной счет нам надо заменить её на (Счет+ДопСчет). В стиле ООП мы бы сделали так:
Можно сказать что в данном мы могли бы просто создать процедуру ПолучитьСчет которая использовала бы глобальные данные. Но кто знает, может завтра Вася попросит добавить в программу его друга? ООП - это ряд ограничений, некий паттерн, который может быть достигнут даже в языках которые не поддерживают ООП. Эти ограничения вполне разумны и помогают писать более грамотный, расширяемый код. Кроме того разграничивание кода на классы позволяет строить модульные системы. Но это не означает что ООП всегда уместен.
3
|
|||||||||||
|
11 / 11 / 0
Регистрация: 11.08.2010
Сообщений: 130
|
|||||||||||||||||||||||||||||||
| 13.09.2011, 22:36 | |||||||||||||||||||||||||||||||
|
Я долго писал на С. И я понимаю ваш вопрос. ООП это прежде всего мышление. Ведь одно и тоже можно сделать как и процедурами так и посредством классов. Объяснения в книгах сравнивая классы с объектами реального мира, наверно в начале больше запутают чем что то объяснят. Что бы проникнутся ООП надо взять и писать программы. По началу будет казаться как то дико, особенно когда с ассемблера переходишь. Но со временем начинаешь понимать. Трудно перейти от тотального контроля к сплошной абстракции. Но этот процесс неизбежен. Не от хорошей жизни ООП появилась. Т.к. человеческий мозг ограничен в ресурсах, то невозможно всё держать в голове, вот и придумывают как облегчить себе жизнь, как обеднить сложные структуры в простые.
А если вдаться в конкретику, то класс наверно легче всего сравнить с структурой. Структура надеюсь знакома? Так вот добавим в структуру функции, вот и получили класс. Разумеется это упрощённое представление. Ну а если структуры незнакомы. Тогда... Самый простой случай представления программы - это функции, которая что то делает.
1 - мы одной лишь строкой
2 - появилась возможность писать библиотеки с кучей специально заготовленных для нас функций программистами со всего мира. Ведь все функции в программу не добавишь, да и не нужны они. А так подключил нужную библиотеку, создал объект класса, и получил доступ к нужному функционалу. P.S. Всё вышеописанное ИМХО и возможно изобилует неточностями и комуто будет резать слух (а может глаз ) так что сильно не бейти
2
|
|||||||||||||||||||||||||||||||
|
1 / 1 / 1
Регистрация: 24.01.2013
Сообщений: 15
|
|
| 30.10.2014, 20:39 | |
|
Сегодня как раз сам наткнулся на эту проблему, должен сказать (я вижу, что тема уже немолодая, это не ответ на вопрос, а совет таким же заблудшим как я
), что эта тема, как и многие другие, очень хорошо описана в книге "Стивен Прата, язык программирования С++". Сейчас учу РНР, но в этой книге тема лучше описана (суть все равно одна и та же, только синтаксис разный).Всем рекомендую эту книгу
0
|
|
| 30.10.2014, 20:39 | |
|
Помогаю со студенческими работами здесь
9
Что такое комплекты инициализации и зачем они нужны? Что такое атрибуты (dir) и зачем они нужны ? Битовые поля структур: что такое и зачем они нужны? Что такое указатели? Зачем они нужны и их практичное применение Что такое атрибуты и зачем они? Для чего нужны директивы препроцессора? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2.
Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом.
В. . .
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
|
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
|
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|