|
0 / 0 / 0
Регистрация: 02.10.2019
Сообщений: 20
|
|
Объясните понятие ООП13.02.2020, 23:25. Показов 21480. Ответов 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 | |
|
Объясните кое что по ООП ООП в паскале. Объясните что к чему Объясните некоторые принципы ООП в конкретной реализации
Начинаю изучать ООП. Объясните, что такое интерфейс? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Теория всего 12. ВГК
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики
1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
|
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928
Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
|
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего
Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
|
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы
Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
|
|
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока
Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
|
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
|
Теория всего 7. Дерево - это патриархат, грибы - это феминизм
anaschu 21.07.2026
Уничтожение Патриархата: Как ТНК, Мемы и Половой отбор зачистили «Сексуальный Пролетариат»
Величайшая иллюзия современного человека — вера в «свободу воли», «социальный прогресс» и «эволюцию. . .
|
История и социология Терры на примере борьбы микориз за пространство. 1. Глоссарий терры.
anaschu 21.07.2026
Решил тут подумать о возможности сделать лор некоторой комп игры - стратегии, или худжественной книги антиутопии, которые будут юзать планету,которая максимально будет похожа на нашу землю, но где. . .
|