Программирую около 2 лет. Не то, чтоб тру кодер, но кой че умею. Так вот за все время я не написал ни одного класса/объекта. Может кто объяснит мне, зачем их использовать? Или книженцию, где это более менее внятно описано. Со всего, что читал в книгах только примеры написания классов, а в каких ситуациях лучше применить, ни слова.
Облегчает написание и поддержку однотипных программ. В твоем случае можешь создать класс superspamsoft и наследовать от него классы vkspamsoft, odspamsoft, дальше stenavkspamsoft, pmvkspamsoft и т.д. Поменял ВК авторизацию - переписываешь метод auth в vkspamsoft. Решил усовершенствовать рандомизацию сообщений - переписываешь msgrand в superspamsoft. p.s.: первый вариант в опросе лишний.
скажу тебе так,классы писать приходилось,но их спокойно можно заменить функциями,не доводилась ситуация когда нужно было бы написать класс для каких то действий,заместо функции.ну и как верно отметил м_скрипт,для удобства скорее,для представления каких либо сложных структур.То есть когда пишешь функциями и вносишь изменения в код,то часто приходится затрагивать практически все,т.к. для получения какого либо результата ты собираешь функции\процедуры воедино,а так ты не будешь искать по всюду где произошли перемены,достаточно будет править что либо в классе.Допустим ты пишешь другую программу,содержащую элементы другой,согласись гораздо проще скопировать файл с классом и юзать его,вместо переписывания функции и ее отладки(хотя и тут есть решение для не любителей ООП- dll-ки) вот как то так.
Тоесть, можно провести аналогию с пшп инклудами, когда у тебя например 5 страниц, и на каждой из них будет менюха. Ты пишешь скрипт менюхи отдельно и подключаешь его в нужном месте страницы, но если нужно что-то изменить в меню, нет необходимости переписывать все 5 страниц, а достаточно изменить только меню. Я правильно понял?
Да суть классов в том, что они могу быть унаследованные, т.е. создают своеобразную иерархию. Как дети получают часть ген своих родителей, так и классы, получают свойства своих предков и дополнительно имеют свои личные, которые передадутся их потомкам. Очень эффективно классы используются в игростроении. Все движки в основном так и оформлены. К примеру есть 100 НПЦ - разбойники. Они все люди и обладают одними и теми же свойствами - ломать кости при падении, умирать при повреждении области сердца, и так далее. Зачем описывать все 100 человек отдельно, когда можно создать один класс "Человек" и сделать 100 потомков, которые унаследуют все свойства человека. И только затем каждому отдельно уже подредактировать некие параметры, что один ломает ноги при падении с двух метров, а второй - со второго этажа. В принципе классы удобно использовать когда нужно создать большую структуру и при этом большое количество объектов, которые состоят из этих структур.
Нет. Программные модули размещаются в отдельных файлах с расширением PAS. В них размещаются не только классы, но и любой другой код, чтобы: a) не переписывать каждый раз часто используемый код. b) сделать код программы более понятным - в одном файле работа с ФС, в другом с сетью и т.д.
Есть одно неплохое задание, которым можно побаловаться на досуге. Попытаться построить мир, или конкретно какую-то область, в виде классов. К примеру возьмем что-то из самых низов: Создадим класс "элементарная частица" и присвоим ему свойства "заряд" и методы "создать", "разрушить". Создадим еще три класса "нейтрон", "протон", "электрон", укажем, что все они унаследуют свойства "элементарной частицы", и для каждого конкретно укажем их заряд, при этом классу "электрон" дополнительно присвоим свойство "направление движения". Создадим еще один класс "молекула", и укажем, что она состоит из "нейтрона", "протона", "электрона" и присвоим дополнительно свойства основ молекулярно кинетической теории - хаотичность и силы отталкивания и притяжения. Создадим еще класс, какой нибудь мельчайший объект. Присвоим ему свойство "кристаллическая решетка" и укажем, что он унаследует класс "молекула". Так же укажем еще несколько свойств "расположение молекул относительно друг друга", "количество молекул в кристаллической решетке" и так далее. В итоге таким образом выстраиваем своеобразную структуру. Далее уже можно создавать более большие объекты, которым уже присваивать свойства "размер", "цвет" и так далее и методы "разновидность деформаций", "перемещение в пространстве учитывая внешние факторы и силу тяжести", etc. Я описал лишь приблизительно. Штука довольно таки интересная
ООП - это очень удобно, особенно при построении больших проектов. Также думаю, что на работу врятли возьмут тебя, если ничего не знаешь об ООП.
Я не сталкивался в своей практике с большими проектами. Для своих нужд использовал процедуры и функции. Имею понятия о классе, его свойствах и методах, но хотелось бы подробно разобрать пару примеров использования. В каких случаях применяеться и тд...
Тебе правда лень открыть гугл и ввести запрос "ООП" или "принципы ООП"? Такого материала более чем достаточно. Потрудись найти его сам, чтобы не разводить бессмысленных дискуссий, тем более что здесь тоже не все знатоки великие.
есть у тебя несколько переменных относящихся к чему то одному логично определить их в одной структуре и везде в программе иcпользовать имя этой структуры для ссылки на переменные тебе уже не надо помнить каждую переменную по отдельности достаточно запомнить имя структуры а вот представь есть у тебя какая нибудь сущность в программе которая должна предоставлять интерфейс для выполнения определенных операций естественно у этой сущности есть свое собственное состояние логично ее собственное состояние скрыть а предоставить только интерфейс в Си это делалось структурой и функциями принимающими первым параметром указатель на эту структуру своего рода this в С++ это делается через класс это самое примитивное использование ООП а дальше это наследование и полиморфизм любые функции которые делают что то что может быть изменено по прихоти пользователя делаеш виртуальными для максимальной гибкости соответственно клиент если его не устраивает стандартное поведение переопределяет одну из виртуальных функций и изменяет как ему надо поведение опять же аналогия в Си была бы функция перезаписывающая дефолтный обработчик на юзерский каллбек который тоже мог бы изменить поведение некоторой вещи
Постоянно использую классы, во первых инкапсуляция, тоесть снаачала у меня в коде потока была куча куйни, потом я привык писать процедуры функц для упрощения больших кусков, и всеравно для взаимодействия их иногда нужны были глобальные переменные в больших кол-вах, теперь у меня код потока выглядит так. procedure Execute; var Twit : TTwitCheck; begin Twit.Pas := ''; Twit.Login := ''; if (Twit.Err) then begin end else begin if (Twit.Valid) then begin end; end; Twit.Free; end; Тоесть я могу человеку передать модуль с классом и ему нечего не надо будет знать как там внутри что устроено, этоже можно зделать с помощью процедур но это будет ..... Наследование, вместо того чтобы писать свой класс для работы с сетью или набор процедур, я унаследовался от thttpsend класс дляя работы с сетью в синапсе, в нем поправил нужные весчи добавил поддержку нужных вещей. Код с использованием ООП легче читаеться, с ним приятней удобней работать, он сводит к минимуму написание одного и тогоже 200 раз. Конечноже все зависит от програмиста... Но с ООП (когда я начал его изучать) мне стало легче кодить большие обьемы кода. Сейчас у меня все программы пишуться с использованием ООП.