|
0 / 0 / 0
Регистрация: 02.10.2019
Сообщений: 20
|
|
Объясните понятие ООП13.02.2020, 23:25. Показов 21669. Ответов 242
0
|
|
| 13.02.2020, 23:25 | |
|
Ответы с готовыми решениями:
242
Понятие ООП
Дать понятие понятие НОК в кольце целых чисел |
|
Модератор
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,900
|
|
| 21.10.2020, 00:53 | |
|
0
|
|
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
|
|
| 21.10.2020, 08:57 | |
|
0
|
|
|
Модератор
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,900
|
|
| 21.10.2020, 17:04 | |
|
Если говорить об объектном (возможно, но необязательно, объектно-ориентированном) проектировании, то у нас нет таких понятий как код и данные. Мы выполняем операции (действия) над объектами, вызывая специальные функции ("вызываем методы объектов" или - то же самое другими словами - "отправляем объектам сообщения"). Данных нет, есть состояние, и это состояние может быть где угодно. Свойства объектов - это синтаксический сахар для особых функций - геттеров и сеттеров. Нам не важно (на этапе проектирования), откуда эта функция возьмёт нужное значение - из оперативной памяти, из базы данных или запросит через СМС расположенный в каком-то помещении датчик. Кстати, код метода тоже может находиться на другом компьютере (а на нашем - автоматически сгенерированный прокси).
Причём, всё это относится не только к ООП, но и к любым другим методологиям объектного проектирования. При императивном подходе вызываемые функции будут менять состояние объекта. При функциональном подходе вызываемые функции будут возвращать новое состояние объекта. В обоих случаях состояние объекта можно сделать неявным аргументом наших специальных функций. В качестве контейнера для операций может служить не только класс, но и модуль, пакет и т.д. - вплоть до массива адресов перехода. Итого: 1. Объекты не объединяют код и данные. Состояние может быть описано в одном месте, а операции определены в другом. 2. Объекты используются не только в ООП. Любой Абстрактный Тип Данных по сути описывает объекты.
0
|
|
|
820 / 579 / 75
Регистрация: 20.09.2014
Сообщений: 3,820
|
|
| 22.10.2020, 07:33 | |
|
Ваши определения бесполезны, так как вы применяете абстракции (замены-синонимы), которые никто не понимает правильно и однозначно. При этом вам непонятны абстракции "переменные => данные", "функции => код", зато понятны абстракции "передача сообщений".
В итоге вы отвергаете что-то конкретное, не вводите ничего взамен, надстраиваете что-то абстрактное и непонятное и довольны, якобы точных определений быть не может. Каша!
0
|
|
|
Модератор
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,900
|
|||||||||||
| 22.10.2020, 10:46 | |||||||||||
|
Ваши определения вредны, так как не верны. Вы сильно сужаете.
Аналогия: Вы утверждаете, что завтрак - это кофе с булочкой. Но из этого следует, что если кто-то ест кофе с булочкой, то он завтракает. А если он ест овсянку, то не завтракает. И время суток не имеет значения. Что сложного в понятиях "состояние" и "функция"? "Передача сообщения" - так Алан Кэй называет вызов метода. Ничего сложного - достаточно один раз услышать и запомнить. Код и функции - разные понятия.
Переменные и данные - разные понятия. Например, переменная для хранения промежуточных результатов вычисления является синтаксическим сахаром для вызова функции.
0
|
|||||||||||
|
Модератор
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,900
|
||||||||||||
| 22.10.2020, 11:06 | ||||||||||||
Добавлено через 53 секунды
0
|
||||||||||||
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
|
|
| 22.10.2020, 11:31 | |
|
0
|
|
|
Модератор
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,900
|
|
| 22.10.2020, 11:41 | |
|
vantfiles,
По поводу якобы определения от Mikhaylo я сразу сказал, что это не определение, а объяснение "на пальцах". Аналогия: "Мяч - это спортивный снаряд шарообразной формы." Для объяснения на пальцах сойдёт, но это ни разу не определение. Во-первых, мяч может иметь другую форму (регби). Во-вторых, шарообразную форму может иметь другой спортивный снаряд (ядро).
0
|
|
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
|
||
| 22.10.2020, 11:42 | ||
|
Примеры: – Erlang – простая объектная модель на замыканиях, вроде моего примера на Scheme выше, хоть там и есть слово method и объект описывается набором методов, это просто синтаксический сахар для match/case. – на Oberon/Component Pascal часто ООП так и делают: определяют union-тип Message, который является аргументом единственного «метода» record-объекта, а внутри — typecase.
1
|
||
|
Модератор
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,900
|
|||||||
| 22.10.2020, 14:21 | |||||||
0
|
|||||||
|
4 / 3 / 1
Регистрация: 30.08.2019
Сообщений: 37
|
|||
| 24.10.2020, 12:58 | |||
|
0
|
|||
|
820 / 579 / 75
Регистрация: 20.09.2014
Сообщений: 3,820
|
||
| 25.10.2020, 09:24 | ||
|
Объекты, которые дополнили переменные, функции и структуры полнотой, привели к ООП. И тут программеры, не несклонные к строгому мышлению, "полетели в небеса". Полет в небесах настолько привлекателен для новичков - тебе говорят сладкие речи про концепции, принципы, инструменты, моделирование вселенной, наследование,
Объекты - это лишь продолжение структур (записей), которые помимо переменных позволяют заключить под общее имя еще и функции. Объект как некая структура наконец-то замкнула все возможности идеи, идущей еще от императивной парадигмы. Эта идея называется абстракцией. Любое присвоение имени какой-либо программной конструкции - это есть абстракция. Имя переменной - абстрагирование от данных Имя функции - абстрагирование от кода Имя структуры - абстрагирование от сложных данных Имя объекта - абстрагирование от кода и данных Теперь про наследование... Придумали принцип наследования. Но я никогда не слышал про принцип композиции. А ведь это два варианта одного и того же. Композиция и наследование - это способы повторного использования объектов, отличаются они мизерно. Будьте добры, говорите "принцип наследования и композиции". Наследование - это когда от объекта берутся поля и методы, а общее имя выбрасывается. Композиция - это когда от объекта берутся поля и методы вместе с обобщающим именем. Полиморфизм... Эта интересная штука выплывает из-за того, что имя функции не является полным идентификатором (в паскалевском смысле). Полным идентификатором функции является (точнее может являться) сигнатура функции. То есть те языки, которые идентифицируют функцию по сигнатуре, а не исключительно имени, фактически поддерживают перегрузку функций. Заметьте, я говорю на языке простом - переменные, функции, структуры, сигнатуры, идентификаторы. На их основе появляются термины объекты, абстракция, наследование, композиция, полиморфизм (точнее перегрузка функции). А у вас некие штуки обмениваются сообщениями в каком-то пространстве.
https://medium.com/devschacht/... 07d9f9cd78 Всем программистам кажется, что они мыслят гораздо более строго, чем в других профессиях. Если бы мыслили строго, то получали бы код с первой попытки без ошибок, а профессии тестировщика не существовало бы. ![]() Я скажу более: программист - это такое существо... В его голове изначально каша.
1
|
||
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
|
|
| 25.10.2020, 09:56 | |
![]() Mikhaylo, каша в голове тут только у тебя.
0
|
|
|
820 / 579 / 75
Регистрация: 20.09.2014
Сообщений: 3,820
|
||
| 25.10.2020, 10:14 | ||
|
korvin_,
![]() Добавлено через 1 минуту "Объекты обмениваются сообщениями." (с) Зеленые человечки разговаривают. ![]() Добавлено через 4 минуты ![]() Я сказал, что статический класс - это тоже объект. То есть мое определение более широкое, а вы мне тут противоположную аналогию всераете про завтрак и булочку. А к черту аналогии, головой-то можно подумать? Есть определение и оно выступает как аксиома. Если весь мир дал определение для "кофе с булочкой", то нафига вы завтрак приплетаете не к месту? Или почему у вас статический класс вызывает когнитивный диссонанс, ведь вы должны смотреть не на название, а на суть.
0
|
||
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
|
||
| 25.10.2020, 10:25 | ||
|
0
|
||
|
820 / 579 / 75
Регистрация: 20.09.2014
Сообщений: 3,820
|
|
| 25.10.2020, 10:28 | |
|
Это я про кашу в голове высказался, ибо я знаю об этом не мало, ты почему за мной повторяешь как попугай?
0
|
|
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
|
|
| 25.10.2020, 10:47 | |
|
0
|
|
|
|
|
| 25.10.2020, 14:44 | |
|
Объясните понятие ООП
Вот это определение не вызывает у меня возражений. Просто хочется прокомментировать. "некие штуки обмениваются сообщениями" Ну да. В Smalltalk можно классу назначить обработчик сообщения "по умолчанию". Это похоже на default из switch-case. В С++ и его клонах это немыслимо. "Композиция - это когда" В прототипном ООП можно использовать декомпозицию. Это когда после наследования поля и методы не добавляются - а удаляются. Например - берем самолет, от него наследуем планер - и снимаем с наследника мотор.
0
|
|
|
Модератор
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,900
|
||||||||
| 26.10.2020, 09:50 | ||||||||
|
Добавлено через 25 минут Добавлено через 9 минут
0
|
||||||||
| 26.10.2020, 09:50 | |
|
Объясните кое что по ООП ООП в паскале. Объясните что к чему Объясните некоторые принципы ООП в конкретной реализации
Начинаю изучать ООП. Объясните, что такое интерфейс? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|
Создание формы заимствованного документа
Maks 03.08.2026
Задача:
Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также
табличная часть со следующими реквизитами:
- Расчетный счет покупателя. . .
|
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача:
В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
|