Форум программистов, компьютерный форум, киберфорум
Теория программирования
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.87/70: Рейтинг темы: голосов - 70, средняя оценка - 4.87
 Аватар для Chak-Nuris
2 / 2 / 1
Регистрация: 17.03.2015
Сообщений: 110

Зачем нужны объекты?

21.04.2015, 15:54. Показов 18274. Ответов 324
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Зачем нужны объекты?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.04.2015, 15:54
Ответы с готовыми решениями:

Зачем в начале файла utf-16 нужны байты 0XFF и 0XFE?
Друзья! Хоть убей не пойму, зачем перед строкой нужны байты 0xFF 0xFE. Везде можно прочесть, что они нужны, чтобы указать считывающему...

Зачем нужны хеш таблицы?
Подскажите, пожалуйста, зачем нужны хеш таблицы? Я так подозреваю, что они могут помочь найти образец в тексте, но тогда как их построить,...

Зачем нужны блок-схемы?
Приходилось слышать мнение, что блок-схемы строятся по программному коду для каких-либо целей, например, объяснения алгоритма работы...

324
 Аватар для castorsky
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
27.04.2015, 01:17
Студворк — интернет-сервис помощи студентам
Fulcrum_013, мне даже неловко Вам это объяснять (так же как и побочный эффект). Почитайте вики что ли. Только внимательно почитайте.
0
27.04.2015, 01:31

Не по теме:

castorsky - это ярый петросян ФП, который работает на C. :D

0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
27.04.2015, 10:59
Цитата Сообщение от castorsky Посмотреть сообщение
мне даже неловко Вам это объяснять (так же как и побочный эффект). Почитайте вики что ли. Только внимательно почитайте.
Просто непонятно что в этом плохого. Вообще про побочный эффэкт то побочный не любая операция присваивания а та которая работает не так как задумано.

Добавлено через 6 минут
Цитата Сообщение от castorsky Посмотреть сообщение
мне даже неловко Вам это объяснять (так же как и побочный эффект).
Вообще в принципе к примеру можно при заполнении матрицы поворота для каждого элемента заново вычислять синус и косинус. Но можно прокешировать повторяющиеся. А можно пойти еще дальше, и при перемножении матриц пользоваться не хранимыми матрицами, а постоянно их заполнять и на лету перемножать с учетом всей истории трансформаций, и даже не хранить сами матрицы а домножать на эту историю точки. при этом правда прийдется хранить иерархию поворотов не только для структуры СК, но и для каждой СК, причем как и побочный эффект будет - структура это уже данные, так и тормоза. Т.е. так и запишем - ФП никакие проблемы не лечит но тормозов добавляет.
0
 Аватар для castorsky
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
27.04.2015, 12:47
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Просто непонятно что в этом плохого
Вы кто сказал что плохо? Просто фундаментально иначе.
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
ФП никакие проблемы не лечит но тормозов добавляет.
Эти слова частично были бы актуальны в 80х годах прошлого века. Сейчас эти слова подсвечивают уровень специалиста, пардон.
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
27.04.2015, 13:07
Цитата Сообщение от castorsky Посмотреть сообщение
Эти слова частично были бы актуальны в 80х годах прошлого века.
Лечатся тормоза просто и однозначно - кэширование результатов.
Цитата Сообщение от castorsky Посмотреть сообщение
Сейчас эти слова подсвечивают уровень специалиста, пардон.
Вот действительно, если специалист не видит что тормоза лечатся кешированием промежуточных данных, и с оным кэшированием во всю войну начинает - то да таки это его уровень подсвечивает.
0
Модератор
Эксперт функциональных языков программирования
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,912
27.04.2015, 14:48
Цитата Сообщение от korvin_ Посмотреть сообщение
Инкапсуляция — это не ООПшная концепция, известная ещё до него. Хинт: абстрактный тип данных, модульность.
Наследование — всего лишь синтаксический сахар над поздним связыванием и делегированием, ничего интересного, да и критикуется чаще других концепций ООП.
Полиморфизм — очень широкое понятие, также было вполне известно и использовалось до ООП. ООП лишь добавило чуть-чуть сахара для динамической диспетчеризации кода.
Я и не настаиваю на исключительности ООП. Это всего лишь одна из парадигм программирования. А ООЯП - это ЯП, делающий удобным написание программ в ОО стиле. Но, например, на C# я могу писать и в процедурном, и в функциональном стиле.

Цитата Сообщение от korvin_ Посмотреть сообщение
Почему? Что такое «объект»? И как это язык, в котором есть объекты, может быть не объектно-ориентированным?
Упрощённо, объект - это экземпляр класса.
Вопрос в том, что считать классом, и авторы учебников для разных ЯП отвечают на него по-разному. Спор на эту тему считаю бессмысленным (как и любой спор о терминологии).

Сложно писать в ОО стиле на языке, который не поддерживает наследование... поэтому такой язык нельзя назвать ООЯП (см выше "ЯП, делающий удобным написание программ в ОО стиле").
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
27.04.2015, 15:12
Цитата Сообщение от Shamil1 Посмотреть сообщение
Упрощённо, объект - это экземпляр класса.
Ок, тогда что такое класс? Только не говори, что это чертёж объекта.

Цитата Сообщение от Shamil1 Посмотреть сообщение
Вопрос в том, что считать классом, и авторы учебников для разных ЯП отвечают на него по-разному.
Как например? Как ты отвечаешь на этот вопрос?

Цитата Сообщение от Shamil1 Посмотреть сообщение
Сложно писать в ОО стиле на языке, который не поддерживает наследование...
С чего б вдруг?

Цитата Сообщение от Shamil1 Посмотреть сообщение
поэтому такой язык нельзя назвать ООЯП (см выше "ЯП, делающий удобным написание программ в ОО стиле").
На наследовании свет клином не сошёлся. В том числе и в ООП.
0
 Аватар для castorsky
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
27.04.2015, 15:15

"Как выполняется наше распоряжение изготовления насосов все сроки прошли телеграфируйте дату отгрузки"
...
"В ответ на вашу телеграмму за номером таким-то от такого-то докладываем радостью ваше распоряжение выполнено колеса направлены урал Сидоров представлен правительственной награде ждем дальнейших распоряжений"

Добавлено через 1 минуту
Хаха, фейспалм в начале обоих постов
0
Модератор
Эксперт функциональных языков программирования
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,912
27.04.2015, 15:19
Цитата Сообщение от castorsky Посмотреть сообщение
Объектно ориентированной модели вычислений.
Нет такой модели вычислений. ООП - это парадигма программирования. Я не слышал о вычислимости парадигмы программирования.
Модель вычислений характеризуется набором операций. Для ООП доступен тот же набор операций, что и в других императивных парадигмах программирования.

Цитата Сообщение от castorsky Посмотреть сообщение
Вот что такое объекты - я не знаю
Тем не менее Вы пишите "это не объект". То есть, Вы не знаете, что такое объект, но знаете, что является объектом, а что нет?

Если Вы не знаете такого термина, то чем Вас не устраивает определение из википедии?
0
 Аватар для castorsky
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
27.04.2015, 15:36
Цитата Сообщение от Shamil1 Посмотреть сообщение
Нет такой модели вычислений
Верно, зачем тогда выдавать желаемое за действительное? ООП ничего нового и тем более полезного в индустрию не добавило.
Цитата Сообщение от Shamil1 Посмотреть сообщение
ООП - это парадигма программирования
Ну то есть, как коммунизм или ислам.
Цитата Сообщение от Shamil1 Посмотреть сообщение
Я не слышал о вычислимости парадигмы программирования.
ИП - парадигма? (ответ: Нет. Это модель вычислений.) Все теоремы можете почерпнуть из теории автоматов, и если бы они не были доказаны, то модель не была бы взята на вооружение. Увы, парадигма - термин размытый, так же как и "объект".
Цитата Сообщение от Shamil1 Посмотреть сообщение
Для ООП доступен тот же набор операций, что и в других императивных парадигмах программирования.
потому что ООП это припудренное ИП.
Цитата Сообщение от Shamil1 Посмотреть сообщение
Тем не менее Вы пишите "это не объект". То есть, Вы не знаете, что такое объект, но знаете, что является объектом, а что нет?
Да! Язык не предоставляет мне ни объектов, ни методов работы с ними. Он предоставляет мне типы и функции.
Цитата Сообщение от Shamil1 Посмотреть сообщение
Если Вы не знаете такого термина, то чем Вас не устраивает определение из википедии?
Тем что такое определение не применимо к инструментам для вычислений произвольной/ограниченной точности. Если бы каждая книга по ООП начиналась словами "Сейчас мы познакомимся с религией: объектно-ориентированное программирование", то у меня не было бы никаких вопросов. Ну верят люди, пусть себе верят. Чувства верущих - табу.
0
Модератор
Эксперт функциональных языков программирования
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,912
27.04.2015, 15:49
Цитата Сообщение от korvin_ Посмотреть сообщение
Ок, тогда что такое класс? Только не говори, что это чертёж объекта.
Если Вы не знаете, что такое класс, то Вам лучше лучше почитать какой-нибудь учебник. Ну или хотя бы статью в википедии:
Объектно-ориентированное программирование

Цитата Сообщение от korvin_ Посмотреть сообщение
На наследовании свет клином не сошёлся. В том числе и в ООП.
В ООП сошёлся.
Например, в статье, ссылку на которую я привёл выше написано, что наличие наследования является одним из необходимых условий для ОО языка, а просто наличия объектов для этого недостаточно.
0
 Аватар для Dennis Ritchie
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
27.04.2015, 15:52
Цитата Сообщение от Shamil1 Посмотреть сообщение
Например, в статье, ссылку на которую я привёл выше написано, что наличие наследования является одним из необходимых условий для ОО языка, а просто наличия объектов для этого недостаточно.
То-то Андрей Александреску так эффективно выдрал множественное наследование из D.
0
Модератор
Эксперт функциональных языков программирования
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,912
27.04.2015, 17:08
castorsky,
ООП - это не религия. По сути это способ организации кода.
ООП добавило в индустрию новый способ организации кода, позволяющий упростить создание приложений большого объёма. И в этом заключается полезность ООП.
Определение императивной парадигмы программирования можно найти в учебнике.
Если Вам не нравится ООП, то просто не используйте. Не вижу тут проблемы.

Увы, парадигма - термин размытый, так же как и "объект".
Согласен.

C#
1
Язык не предоставляет мне ни объектов, ни методов работы с ними. Он предоставляет мне типы и функции.
А мне язык предоставляет классы и методы. Каждый выбирает для себя.

C#
1
Тем что такое определение не применимо к инструментам для вычислений произвольной/ограниченной точности.
Обоснуйте.

Добавлено через 23 минуты
Упс! Нечаянно CSHARP вставил вместо QUOTE.

Добавлено через 1 минуту
Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
То-то Андрей Александреску так эффективно выдрал множественное наследование из D.
Существует мнение, что от множественного наследования больше проблем, чем пользы.
В C# тоже нет множественного наследования.
0
 Аватар для Dennis Ritchie
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
27.04.2015, 17:10
Цитата Сообщение от Shamil1 Посмотреть сообщение
Существует мнение, что от множественного наследования больше проблем, чем пользы.
И Александреску с этим мнением согласен (он предлагает использовать множественное наследование интерфейсов).
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
28.04.2015, 09:23
Цитата Сообщение от Shamil1 Посмотреть сообщение
Если Вы не знаете, что такое класс, то Вам лучше лучше почитать какой-нибудь учебник. Ну или хотя бы статью в википедии:
Объектно-ориентированное программирование
Я тебе вопрос задал, ты можешь ответить своими словами, а не приводя ссылки на сомнительные статьи?

Эта статья во многом или полностью опирается на неавторитетные источники, что может вызвать сомнения в нейтральности и проверяемости представленной информации. Такие источники также не доказывают значимость предмета статьи.
в которых, к тому же, «определения» понятий «класс» и «объект» выражены друг через друга.

Цитата Сообщение от Shamil1 Посмотреть сообщение
В ООП сошёлся.
Например, в статье, ссылку на которую я привёл выше написано, что наличие наследования является одним из необходимых условий для ОО языка, а просто наличия объектов для этого недостаточно.
«не читайте до обеда советских газет».

Not all of these concepts appear in all object-oriented programming languages. For example, object-oriented programming that uses classes is sometimes called class-based programming, while prototype-based programming does not typically use classes. As a result, a significantly different yet analogous terminology is used to define the concepts of object and instance.
https://en.wikipedia.org/wiki/... d_concepts
0
 Аватар для castorsky
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
28.04.2015, 13:37
Цитата Сообщение от Shamil1 Посмотреть сообщение
ООП - это не религия. По сути это способ организации кода.
Так не бывает. Для организации кода есть code conventions xD
Цитата Сообщение от Shamil1 Посмотреть сообщение
ООП добавило в индустрию новый способ организации кода, позволяющий упростить создание приложений большого объёма. И в этом заключается полезность ООП.
Только еще большие сложности как самого ООП, так и релизации ООЯП. Если так, почему unix based клоны не писались на Smalltalk? Как только ты сказал слово "объект" можешь забыть о модульности.
Цитата Сообщение от Shamil1 Посмотреть сообщение
Определение императивной парадигмы программирования можно найти в учебнике.
Я 8 из 10 книг удаляю как мусор после первых 10-50 страниц. Классики обычно говорили "то что сейчас модно называть парадигмой".
Цитата Сообщение от Shamil1 Посмотреть сообщение
Обоснуйте
Всегда пожалуйста
Сущность в адресном пространстве вычислительной системы, появляющаяся при создании экземпляра класса или копирования прототипа
т.е. то не знаю что, но оно рождается при создании экземпляра класса или копирования прототипа. Что это? Мне более понятна была бы формулировка https://www.cyberforum.ru/cgi-bin/latex.cgi?O = \{a, b, ..., e, F, G, ..., L\}, но я ее нигде не вижу =))
0
Модератор
Эксперт функциональных языков программирования
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,912
28.04.2015, 13:43
Цитата Сообщение от korvin_ Посмотреть сообщение
Я тебе вопрос задал, ты можешь ответить своими словами, а не приводя ссылки на сомнительные статьи?
Не похоже, что Вы хотите чему-то у меня научиться.
Если Вы хотите чему-то меня научить, то начните с того, что приведите своё определение для класса и объекта.
Если Вам просто хочется поспорить, то спорьте с авторами учебников.

Цитата Сообщение от korvin_ Посмотреть сообщение
Not all of these concepts appear in all object-oriented programming languages. ... https://en.wikipedia.org/wiki/... d_concepts
Я так понимаю, Вы привели цитату в качестве аргумента, что наследование не является обязательным для ООП?
Во-первых, "не все из этих концепций обязательны" означает, что среди этих концепций есть одна или больше необязательных. И вовсе не означает, что "все из этих концепций необязательны".
Во-вторых, там дальше приведены списки обязательных концепций по мнению различных авторитетных исследователей - и наследование присутствует во всех списках.
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
28.04.2015, 14:26
Цитата Сообщение от Shamil1 Посмотреть сообщение
Не похоже, что Вы хотите чему-то у меня научиться.
Сомневаюсь, что мне есть чему у тебя учиться. Ну да кто знает.

Цитата Сообщение от Shamil1 Посмотреть сообщение
Если Вы хотите чему-то меня научить, то начните с того, что приведите своё определение для класса и объекта.
Зачем? Я хочу заставить тебя подумать самостоятельно.

Цитата Сообщение от Shamil1 Посмотреть сообщение
Во-вторых, там дальше приведены списки обязательных концепций по мнению различных авторитетных исследователей
Поправка: там представлен список концепций, присутствующих в большинстве ООП-языков. Ни о какой обязательности наличия наследования там речи не идёт.
0
Модератор
Эксперт функциональных языков программирования
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,912
28.04.2015, 14:39
castorsky,

Так не бывает. Для организации кода есть code conventions xD
code conventions - для оформления кода, а я говорил об организации кода.
Например, "процедурщики" раскладывают код по процедурам, а "оо-шники" - по классам.

Только еще большие сложности как самого ООП, так и релизации ООЯП. Если так, почему unix based клоны не писались на Smalltalk?
Не знаю, я ни одной ОС не написал. Видимо Smalltalk (и ООП) слабо подходит для написания драйверов?

Как только ты сказал слово "объект" можешь забыть о модульности.
А как же полиморфизм, интерфейсы, позднее связывание?

то не знаю что, но оно рождается при создании экземпляра класса или копирования прототипа. Что это?
Я согласен с Вами, что данному определению не хватает математической строгости.
0
 Аватар для castorsky
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
28.04.2015, 18:17
Цитата Сообщение от Shamil1 Посмотреть сообщение
Например, "процедурщики" раскладывают код по процедурам, а "оо-шники" - по классам
А нормальные люди по модулям =)
Цитата Сообщение от Shamil1 Посмотреть сообщение
Не знаю, я ни одной ОС не написал. Видимо Smalltalk (и ООП) слабо подходит для написания драйверов?
На тот момент это мало кого остановило бы. Тот же Возняк мог легко запилить свой Smalltalk с блекджеком. Причина в другом. ОО в равной степени подходит для больших проектов как и ФП или ИП. И никаких выигрышей в чем бы-то ни было не привнесло, а сложности - наследование, однако.
Цитата Сообщение от Shamil1 Посмотреть сообщение
А как же полиморфизм, интерфейсы, позднее связывание?
1. было и есть без ООП
2. наследование или интерфейсы? Вот в чем вопрос. Что в чем и что исправляет?
3. прекрасно работает в ФП, легко налаживается в ИП.
Цитата Сообщение от Shamil1 Посмотреть сообщение
Я согласен с Вами, что данному определению не хватает математической строгости.
win
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.04.2015, 18:17

Что такое классы и зачем они нужны?
Здравствуйте! Объясните ,что такое классы и зачем они нужны? Я прочитал кучу всего про классы, но так и не понял, зачем они нужны.

Зачем биты нужны это меньше байтов но int 32 бита но я не допер зачем это нужно это 4 байта то есть int не может больше 4 байт весить?
Вот еще один вопрос зачем биты нужны это меньше байтов но int 32 бита но я не допер зачем это нужно это 4 байта то есть int не может...

Зачем упаковывать структуры и объекты в интерфейсы?
Объясните пожалуйста кто-нибудь человеческим языком зачем упаковывать структуры и объекты в интерфейсы?

Зачем нужны классы?
Изучаю СИ++ после изучения СИ. Не пойму какой смысл в классах. То что они делают можно реализовать с помощью функций, структур и обычных...

Зачем нужны исключения
Пожалуйста можете привести пример, когда они действительно нужны? На лекции были примеры "деление на ноль",...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
280
Ответ Создать тему
Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru