|
0 / 0 / 0
Регистрация: 02.10.2019
Сообщений: 20
|
|
Объясните понятие ООП13.02.2020, 23:25. Показов 22185. Ответов 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
|
|
|
Модератор
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,912
|
|||
| 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
|
|
|
821 / 580 / 75
Регистрация: 20.09.2014
Сообщений: 3,825
|
||
| 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
|
|
|
Модератор
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,912
|
|
| 14.10.2020, 11:04 | |
|
1
|
|
| 14.10.2020, 11:04 | |
|
Объясните кое что по ООП ООП в паскале. Объясните что к чему Объясните некоторые принципы ООП в конкретной реализации
Начинаю изучать ООП. Объясните, что такое интерфейс? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Скрипты 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 (Первое измерение):. . .
|