|
0 / 0 / 0
Регистрация: 02.10.2019
Сообщений: 20
|
|
Объясните понятие ООП13.02.2020, 23:25. Показов 22381. Ответов 242
0
|
|
| 13.02.2020, 23:25 | |
|
Ответы с готовыми решениями:
242
Понятие ООП
Дать понятие понятие НОК в кольце целых чисел |
|
4 / 3 / 1
Регистрация: 30.08.2019
Сообщений: 37
|
||
| 14.10.2020, 11:27 | ||
|
Мне нужно посчитать ускорение по второму закону Ньютона. ускорение = Сила / масса .
Создаю свойства "масса" и "сила", они будут проверять корректность данных, ну и хранить их к ним метод "делилка", который будет разбираться с целочисленностью-нецелочисленностью деления и погрешностью. Могу упаковать это всё в модуль, но там не будет проксирования; это то же, что использовать поля и методы класса; в них по дороге к вычислениям кто-нибудь может сдуру влезть и что-то переопределить, и я получу на выходе не весть что. Поэтому я упакую всё в объект, и буду работать внутри него. А что дам пользователю наружу? Конструктор, которому пользователь скормит силу и массу. Класс назову "Считалка_ускорения". Работать с ним пользователь будет мак. моё_укорение = считалка_ускорения (масса: 10, сила: 5) Вот это и есть абстрагирование: реализация вычислений спрятана под капот, а пользователь, посмотрев в инструкцию и прочитав, что здесь ему нужно вычислить ускорение - прямо по инструкции - вызывает считалку ускорения и скармилвает ей параметры. У пользователя в инструкции стоит директива: посчитай ускорение - и он, на заморачивая себе голову деталями, прямо выполняет инструкцию - то есть, работает на уровне языка самой задачи - а не уровне языка решения задачи. У него задача - посчитать ускорение - а не вникать в дебри второго закона Ньютона. Вот в этом состоит абстрагирование. Чем больше пользователь разгружен от деталей решения задачи - тем выше уровень абстрагирования. Добавлено через 9 минут Но есть разная приспособленность парадигм для абстрагирования. Есть более удобные инструменты достижения высокоуровневых абстракций - и менее, соответственно. Чем ближе текст программы к человеческому языку - тем выше работа по уровню абстрагирования. Тем приспособленнее парадигма для абстрагирования.
0
|
||
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
|
||||||||
| 14.10.2020, 11:36 | ||||||||
1
|
||||||||
|
Модератор
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,912
|
|
| 14.10.2020, 11:42 | |
|
2
|
|
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
|
||||||
| 14.10.2020, 11:57 | ||||||
1
|
||||||
|
Модератор
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,912
|
|
| 14.10.2020, 12:08 | |
|
Если Вас спросят "Что такое двигатель внутреннего сгорания", то ответ типа "это машина, в которой внутренняя энергия топлива превращается в механическую энергию" будет неудовлетворительным. Под это определение подходят и паровой двигатель, и реактивный, и даже огнестрельное оружие.
В любой книге по ООП вы найдёте основные принципы ООП: инкапсуляция, наследование, полиморфизм. В некоторых ещё и абстрация, но это совсем уж тавтология, ибо этот принцип лежит в основе (почти) всего. Всё верно, но нужно понимать две вещи: 1. Принципиальное отличие ООП от других парадигм - в использовании полиморфизма подтипов (а для этого нужно наследование или создание по образцу). 2. Использование ключего слова "class" не означает использование ООП-концепции (не является достаточным условием).
1
|
|
|
4 / 3 / 1
Регистрация: 30.08.2019
Сообщений: 37
|
||
| 14.10.2020, 15:07 | ||
|
Масса должна быть неотрицательной, пользователю при ошибке нужно дать возможность её подкорректировать
Переменная mass - глобальная у соседа. У него вообще все переменные всегда глобальные ![]() Добавлено через 11 минут Парадигма это способ думанья о задаче. Объектно-ориентированному мышлению соответствует объектно-ориентированная парадигма. О задаче может оказаться удобно думать в элементарных или стандартных типах языка программирования. Тогда заниматься объектно-ориентированным проектированием некуда. О задаче может оказаться удобно думать в неких абстрактных категориях, не соответствующих встроенным типам языка программирования. Тогда эти типы можно создать самостоятельно, это будут классы - и думать в них. Тогда текст программы будет близок языку и категориям, которыми человек думает о задаче. Добавлено через 1 час 4 минуты
0
|
||
|
Модератор
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,912
|
|||
| 14.10.2020, 15:19 | |||
|
В C# и Java это будут классы, но только потому, что в них всё делается через... классы. И думать об этом типе мы будем по-разному - в зависимости от того, чем он фактически является - Абстрактным Типом Данных, Миксином и т.д. Причём, зачастую думать в терминах ООП гораздо менее удобно. Например, для сортировки Списка проще передать функцию делегат для сравнения, чем создавать класс реализацию IComparer с перегруженным методом Compare. Например, для обобщённого Списка проще передавать параметр типа, чем писать для каждого типа элементов отдельный класс наследник. Например, ипользовать Алгебраический Тип Данных проще, чем реализовывать паттерн Посетитель или писать класс наследник для каждого возможного варианта данных. (Представьте, например, парсер, который возвращает либо положительный результат разбора, либо детальную информацию о причинах неудачи)
1
|
|||
|
821 / 580 / 75
Регистрация: 20.09.2014
Сообщений: 3,826
|
||
| 14.10.2020, 18:00 | ||
|
0
|
||
|
4 / 3 / 1
Регистрация: 30.08.2019
Сообщений: 37
|
||
| 14.10.2020, 18:15 | ||
|
https://www.youtube.com/watch?... =UN%D0%98X
0
|
||
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
|
||||
| 14.10.2020, 21:00 | ||||
|
Добавлено через 1 час 40 минут
0
|
||||
|
821 / 580 / 75
Регистрация: 20.09.2014
Сообщений: 3,826
|
||
| 15.10.2020, 06:49 | ||
|
Разве нужна моя помощь в дальнейшем осмыслении?
0
|
||
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
|
|||
| 15.10.2020, 07:32 | |||
|
0
|
|||
|
Модератор
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,912
|
|
| 15.10.2020, 12:09 | |
|
0
|
|
|
Модератор
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,912
|
||
| 15.10.2020, 12:16 | ||
|
Абстрагирование. Любое программирование есть суть абстрагирование. Инкапсуляция. Есть во всех (практических) языках, независимо от парадигмы. Наследование. Способ повторного использования кода. Полиморфизм. То, что он говрит про полиморфизм, лучше не слушать. Для него полиморфизм - это утиная типизация. ("Динамически типизируемые языки единообразно представляют разновидности полиморфизма, что формирует самобытную идеологию в них и влияет на применяемые методологии декомпозиции задач." (с) вики)
0
|
||
|
Модератор
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,912
|
||||||
| 15.10.2020, 12:56 | ||||||
|
У меня есть функция SayHello:
Если некий код можно выполнить для некого класса, то его можно выполнить и для любого класса наследника. То есть, класс наследник умеет всё то, что умеет базовый класс. Эта концепция называется "полиморфизм подтипов". Она влияет на суть проектирования. Если мы хотим, чтобы некий код выполнялся для разных типов, мы должны связать их наследованием. В этом и заключается ООП.
1
|
||||||
|
821 / 580 / 75
Регистрация: 20.09.2014
Сообщений: 3,826
|
||
| 15.10.2020, 21:09 | ||
|
0
|
||
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
|
|
| 15.10.2020, 21:25 | |
|
0
|
|
|
821 / 580 / 75
Регистрация: 20.09.2014
Сообщений: 3,826
|
|
| 15.10.2020, 21:31 | |
|
Ну если модуль ничем неотличим от объектов, то он является объектом. Еще вопросы есть?))
0
|
|
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
|
|
| 15.10.2020, 21:48 | |
|
0
|
|
|
821 / 580 / 75
Регистрация: 20.09.2014
Сообщений: 3,826
|
|
| 15.10.2020, 22:31 | |
|
Так определитесь уже, отличим или нет
0
|
|
| 15.10.2020, 22:31 | |
|
Объясните кое что по ООП ООП в паскале. Объясните что к чему Объясните некоторые принципы ООП в конкретной реализации
Начинаю изучать ООП. Объясните, что такое интерфейс? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты 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
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|