|
0 / 0 / 0
Регистрация: 02.10.2019
Сообщений: 20
|
|
Объясните понятие ООП13.02.2020, 23:25. Показов 21465. Ответов 242
0
|
|
| 13.02.2020, 23:25 | |
|
Ответы с готовыми решениями:
242
Понятие ООП
Дать понятие понятие НОК в кольце целых чисел |
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
|
|||||||||||||||||||||||||||||||
| 05.09.2020, 13:58 | |||||||||||||||||||||||||||||||
|
vantfiles, у тебя методы класса не виртуальные, vmt для них не строится, вызов не косвенный, что с чем ты пытаешься сравнить?
Добавлено через 1 час 28 минут vantfiles, вот правильный пример:
Вот вариант с использованием полей объекта:
Однако вызов виртуальной функции показал лучшие результаты, чем вызов невиртуальной, кроме первого запуска, в чём причина другого поведения запусков — не знаю. Если удалить исполняемый файл, снова скомпилировать и запустить, поведение повторяется. Добавлено через 1 час 0 минут vantfiles, и ещё, похоже 1000 итераций — маловато, чтобы заметить какую-то разницу
2
|
|||||||||||||||||||||||||||||||
|
4 / 3 / 1
Регистрация: 30.08.2019
Сообщений: 37
|
|
| 13.10.2020, 12:40 | |
|
По-моему, основа ООП - абстрагирование. Это может быть подъём по уровням абстракций - от языка решения задачи - к языку самой задачи.
В философском смысле, объект это субстанция – носитель своих собственных свойств (и методов), не зависящий (и не зависящих) от иного. А принцип устройства объекта – это класс. Переход от конкретного объекта - к принципам устройства группы объектов – это абстрагирование. Чем, собственно, и занимается программист, приступая к объектно-ориентированному проектированию. Здесь и оправданность применения ООП: если задача не помещается в голову, её можно попробовать описать в таких сущностях, которые в голову поместятся. Полиморфизм. Один метод "добавь" - к числу или к строке; или число к строке. В зависимости от того, с чем будет иметься дело: с числом или строкой - будет разная реализация метода, но он всегда будет назваться одинаково, одинаково вызываться - имея при этом разное содержание. Так решение задачи сводится к языку высокого уровня: "здесь объекты складываются" (неважно как), это определяет реализация метода для конкретного случая. Это позволяет разделить задачу по уровням сложности - или специализации программистов. То есть, ещё и форма разделения задач. Правильный идеальный объект - предмет целостный, вещь-в-себе, действующая за счёт собственных ресурсов - данных и методов. Это даёт чёткость структуры и защиту от случайных влияний. Правильный объект сам обеспечивает протоколы своего взаимодействия с внешним миром – таки образом, чтобы это взаимодействие было предсказуемым и безопасным. Суть наследования – использование части уже проделанной работы.
0
|
|
|
Заблокирован
|
||
| 13.10.2020, 12:55 | ||
|
0
|
||
|
4 / 3 / 1
Регистрация: 30.08.2019
Сообщений: 37
|
||||||
| 13.10.2020, 14:15 | ||||||
|
Абстракция, о которой имеет смысл говорить, это всегда абстракция над чем-то. Поэтому упомянуты уровни абстракции.
В том смысле, о котором я говорил, класс - абстракция над объектом, который относительно класса - конкретика: конкретные значения свойств, конкретные методы, и они все запакованы в конкретный объект, экземпляр класса. Вот класс:
<__main__.C object at 0x000001508C94EE20> <__main__.C object at 0x000001508C9E27F0> Видите в конце идентификаторы объектов? Они уникальны, это и есть конкретика. А если распечатать сам класс, будет: <class '__main__.C'> Это абстракция.
0
|
||||||
|
Заблокирован
|
||||
| 13.10.2020, 14:45 | ||||
|
Википедия:
При этом, уровни абстракции, разумеется, можно выделять. Если теоретизировать (я-то точно этим заниматься не буду), то нужно точно определять понятия и, при этом, следовать канве общепринятых в некой области знания смыслов. В том числе - понятия абстрактного и конкретного. Да, экземпляр класса по отношению к классу конкретен. Но он же абстрактен по отношению к сущностям предметной области. Я отреагировал вот на это: Абстракция класса рождается не при переходе от экземпляра класса к более высокому уровню абстрагирования (классу), а при анализе и применении метода абстрагирования к предметной области. То есть, тут цепочка такая: "предметная область" - "система классов" - "экземпляры классов". Классы, как объекты абстрактного появляются при анализе предметной области. А не при переходе от экземпляра класса к классу. Возможно, что именно это Вы и имели ввиду. Но тогда нужно было сразу точно определить что такое объект. Если речь в рамках ООП, то объект - это экземпляр класса). И тогда абстрагирвание от объекта к классу - это вырожденное, умозрительное абстрагирование, а не метод мышления, как метод познания. Абстрагирование как метод познания, на мой взгляд, идёт по другой цепочке, я выше написал как. Однако, во втором сообщении вы написали: Я, с вашего позволения, откланяюсь, предоставлю право продолжения диалога более осведомленным в ООП участникам.
0
|
||||
|
4 / 3 / 1
Регистрация: 30.08.2019
Сообщений: 37
|
|
| 13.10.2020, 15:13 | |
|
Правильная работа с объектной моделью приближает язык решения задачи - к языку самой задачи. Такое продвижение языка - и есть абстрагирование.
0
|
|
|
|
|
| 13.10.2020, 15:29 | |
|
"Прототипное программирование — стиль объектно-ориентированного программирования, при котором отсутствует понятие класса, а наследование производится путём клонирования существующего экземпляра объекта — прототипа. Каноническим примером прототип-ориентированного языка является язык Self."
Более того, сам объект может быть собран динамически, в зависимости от текущей задачи - то есть даже прототипа не иметь. Единственное, что во всех моделях ооп можно имхо выделить - это структура. "Структура - это расположение и организация взаимосвязанных элементов в материальном объекте или системе или объекте или системе, организованной таким образом."
0
|
|
|
Модератор
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,898
|
|||
| 13.10.2020, 15:51 | |||
|
"Собака - это млекопитающее с четрымя лапами и хвостом". С одной стороны - верно, с другой стороны - бесполезно, так как не вносит ясности (большинство млекопитающих имеют четрые лапы и хвост). Полиморфизм бывает разный. В ООП используется полиморфизм подтипов.
0
|
|||
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
|
||
| 13.10.2020, 16:46 | ||
|
1
|
||
|
4 / 3 / 1
Регистрация: 30.08.2019
Сообщений: 37
|
||
| 13.10.2020, 17:02 | ||
|
0
|
||
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
|
||
| 13.10.2020, 17:24 | ||
|
1
|
||
|
4 / 3 / 1
Регистрация: 30.08.2019
Сообщений: 37
|
||
| 13.10.2020, 18:50 | ||
|
Добавлено через 19 минут В чём заключается абстрагирование, не привязанное к объектно-ориентированному проектированию?
0
|
||
|
Заблокирован
|
||
| 13.10.2020, 19:02 | ||
|
Википедия
0
|
||
|
4 / 3 / 1
Регистрация: 30.08.2019
Сообщений: 37
|
|
| 13.10.2020, 20:47 | |
|
Постулируете абстрагирование, не связанное с объектно-ориентированным мышлением?
0
|
|
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
|
|
| 13.10.2020, 23:25 | |
|
1
|
|
|
820 / 579 / 75
Регистрация: 20.09.2014
Сообщений: 3,814
|
||
| 14.10.2020, 07:42 | ||
|
1. В императивной парадигме нет другого абстрагирования, кроме именования переменных. 2. В процедурной парадигме ряд инструкций заменяется на процедуру (функцию) и ей дается имя. Это абстрагирование! 3. Структурное программирование (как я понимаю) - это то же самое процедурное программирование, в котором не используется goto. 4. В ООП функциям и переменным дается общее имя и это называется объектом. То есть фактически абстрагированием является: 1. Присвоение имени ячейкам памяти (имена переменных) 2. Присвоение имени набору последовательных инструкций (имена функций) - при этом допускается вложение в одну функции других функций 3. Присвоение имени группе переменных (имена структур) - при этом допускается вложение в одну структуру других структур 4. Присвоение имени переменным и функциям (имена объектов) Просто ООП замкнул все необходимые виды абстрагирования (с 1-го по 4-й), на самом деле его нет смысла сравнивать со структурным программированием, в котором нет п.4. Добавлено через 16 минут Забыл подписать, что объекты могут включать себя другие объекты. Далее пошли: Для п.2 и 4 имеет смысл полиморфизма. Для п.3 и 4 появляется смысл наследования. Для п.4 появляется смысл инкапсуляции. Как видно, ООП просто взял в себя все рюшечки для абстрактного программирования, однако, вы можете их не использовать.
1
|
||
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
|
||
| 14.10.2020, 10:02 | ||
|
0
|
||
|
4 / 3 / 1
Регистрация: 30.08.2019
Сообщений: 37
|
|
| 14.10.2020, 10:38 | |
|
Простите если усмотрите офтоп, но не удержался, принёс с Хабра:
"Каждое интервью я начинаю с очень простого и основного вопроса: — Что такое класс в Ruby, что такое модуль, в чем их отличия и для чего они нужны? Вы бы удивились, узнав, как много людей на самом деле не знает ответа на этот вопрос! И это люди, которые хотят стать разработчиками программного обеспечения. Все они могут создать блог с постами и комментариями в считанные минуты — и на этом все. Был у меня один кандидат, на должность mid разработчика, который утверждал, что работал в течение года над клиентским приложением в качестве руководителя команды — так он до сих пор не знает, что такое модуль Ruby. "
0
|
|
|
Модератор
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,898
|
|
| 14.10.2020, 11:04 | |
|
1
|
|
| 14.10.2020, 11:04 | |
|
Объясните кое что по ООП ООП в паскале. Объясните что к чему Объясните некоторые принципы ООП в конкретной реализации
Начинаю изучать ООП. Объясните, что такое интерфейс? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 33. открытые вопросы от клауде
anaschu 19.07.2026
"Что накопилось за эту часть А — тринадцать правок, из которых шесть пришли из ваших вопросов и каждая оказалась реальной ошибкой, а не калибровкой: односторонний симбиоз, отсутствующий листопад,. . .
|
32 сукцессия
anaschu 19.07.2026
сукцессия 28‑мерное ядро стабилизировано
Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не «подкручивает» сходимость —. . .
|
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано
Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
|
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0)
Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона
Уважаемые коллеги!
В продолжение. . .
|
|
Грибы - это женщины, деревья - это мужчины. Анти инь янь для союза мужчины и женщины.
anaschu 18.07.2026
ГЛАВНЫЙ НАУЧНО-ФИЛОСОФСКИЙ ВЫВОД: Сексуально-Репродуктивный Капитализм против Государства Моногамии
Коллеги, мы вышли на финишную прямую 20-мерного ОДУ-моделирования вековой сукцессии (ветка. . .
|
Текстовый слайдер с нумерацией страниц и кроссбраузерность.
russiannick 18.07.2026
Один мой друг написал текстовый слайдер с нумерацией страниц. Сегодня я расскажу как он умудрился подружить его с кроссбраузерностью.
Очевидно сложно угодить с шириной каждому браузеру. Один крадет. . .
|
Грибы - это мемы, дерево - это человек. Применение микоризной модели к теории меметики Докинза.
anaschu 18.07.2026
Меметический изоморфизм теории «всего»: Грибная сукцессия как модель эволюции идей Докинза
Базовый код системы ОДУ микоризной сукцессии описывает не просто биологию, а универсальную. . .
|
Грибы - это корпорации, деревья - это государства. Механизм массонского захвата власти
anaschu 18.07.2026
Макроэкономический изоморфизм теории «всего»: Грибная сукцессия как модель транснационального капитализма
Базовый код системы ОДУ микоризной сукцессии описывает не просто биологию, а. . .
|