|
5 / 3 / 2
Регистрация: 27.04.2022
Сообщений: 63
|
|
Понимание основ ООП27.04.2022, 16:33. Показов 16926. Ответов 188
Метки нет (Все метки)
Добрый день!
Начал изучать ООП и сразу возникло непонимание на изучении классов. У любого класса есть набор своих индивидуальных свойств, но ведь есть и свойства, которые будут общими для всех классов. Например, температура и плотность, если мы говорим о материальных вещах. Да и вообще любые физические и химические свойства для всех материальных вещей будут общими: электропроводность, молярный вес и т. д. Понятно, что они будут иметь различные значения, но фундаментально эти понятия будут едиными для любых классов, выражающих эти самые материальные вещи. Соответственно, при создании объектов мне необходимо будет для каждого из них задавать свойство, допустим, «Температура» или языки ООП позволяют создать некое «глобальное, общее» свойство и при создании конкретного объекта я смогу присваивать ему это «глобальное» свойство, задавая лишь значение?
0
|
|
| 27.04.2022, 16:33 | |
|
Ответы с готовыми решениями:
188
Знание основ ООП/Джава освоение основ |
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
|
||||||
| 17.06.2022, 00:31 | ||||||
|
Добавлено через 7 минут
1
|
||||||
|
Модератор
3142 / 2290 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
|
||
| 17.06.2022, 02:16 | ||
|
3.1.3. Programming without any use of assignments, as we did throughout the first two chapters of this book, is accordingly known as functional programming.
0
|
||
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
|
||||||
| 17.06.2022, 02:31 | ||||||
|
ФП рассматривается только в начале (про нормальный порядок вычислений) и в главе про потоки (streams). А DDP из второй главы использует присваивание (точнее mutable state) --- процедуру put:
А фраза, которую ты процитировал, говорит, что ФП использовалось в перввых двух главах, но не говорит, что исключительно ФП. Добавлено через 2 минуты
0
|
||||||
|
Модератор
3142 / 2290 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
|
|||
| 17.06.2022, 02:55 | |||
|
put не является mutable state используемых объектов. при желании можно обойтись без функции install-rectangular-package, а таблицу таблицу сделать read only, если зарегистрировать все типы одновременно. Добавлено через 7 минут В первых двух главах авторы использовали программирование без присваивания и авторы называют это ФП. Присваивание вводится позже. А put используется исключительно в программе инсталяции пакета.
0
|
|||
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
|
|||
| 17.06.2022, 11:37 | |||
|
0
|
|||
|
Модератор
3142 / 2290 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
|
||||
| 17.06.2022, 14:52 | ||||
|
0
|
||||
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
|
|||
| 18.06.2022, 05:51 | |||
|
Добавлено через 56 секунд
0
|
|||
|
Модератор
3142 / 2290 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
|
|||
| 18.06.2022, 10:08 | |||
|
В любом случае, на сегоднешний момент классическими книгами по ООП являются "Мейер Б. Объектно-ориентированное конструирование программных систем" и "Буч Г. Объектно-ориентированный анализ и проектирование". Первую по фундаментальности приравнивают к многотомнику Д. Кнута по алгоритмам. Вторая имеет менее формальный и более описательный характер. Любители С++ часто ориентируются на Страуструпа. И есть ещё (немногочисленные) любители А. Кея. Все 4 вышеперечисленных автора считают наследование обязательным требованием для ООП.
0
|
|||
|
1172 / 762 / 194
Регистрация: 21.05.2016
Сообщений: 1,858
|
|
| 18.06.2022, 13:39 | |
|
0
|
|
|
Модератор
3142 / 2290 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
|
|
| 18.06.2022, 20:54 | |
|
0
|
|
|
Модератор
3142 / 2290 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
|
||||||||||||||||||||||
| 20.06.2022, 13:43 | ||||||||||||||||||||||
|
На javascript:
(Хотя, в некоторых языках есть "сужающее наследование". Лично я не считаю это ООП.) На javascript:
В языках с динамической типизацией интерфейс не обязательно описывать явно. Осознанное использование утиной типизации можно считать неявным наследованием от интерфейса (объект реализует неявный интерфейс. мы ожидаем, что он умеет обрабатывать такие сообщения). з.ы. "метод" в C# - это сокращение от "метод обработки сообщений". Добавлено через 23 минуты Примеры на IO: Наследуем класс Vehicle от класса Object (расширяем, добавляя свойство и метод):
0
|
||||||||||||||||||||||
|
|
|||
| 20.06.2022, 14:11 | |||
|
Спасибо за примеры, они весьма показательны. А могут быть и просто наштампованы в цикле по единой схеме. Добавлено через 17 минут В настоящее время я использую два языка - C++ и Lua. Я понимаю недостатки ООП в этих двух моделях. Фокус в том, что в C++ я не могу управлять действиями new в полной мере. А в Lua мне этому ничего не мешает. Это серьезное отличие этих двух моделей - первая подразумевает иерархию - и запрещает менять предка. Вторая иерархию теряет, но позволяет абсолютно все - в том числе и удаление методов.
0
|
|||
|
Модератор
3142 / 2290 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
|
||
| 20.06.2022, 14:12 | ||
|
0
|
||
|
|
||
| 20.06.2022, 14:26 | ||
|
Впрочем, есть список побольше: https://ru.wikipedia.org/wiki/... е_язык_Lua Мне тоже сложно представить крупную разработку чисто на встраиваемом языке. Но как язык для предметно-ориентированного проектирования/программирования он великолепен.
0
|
||
|
Модератор
3142 / 2290 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
|
|||||||||||||||
| 20.06.2022, 14:46 | |||||||||||||||
|
Например, в IO нет синтаксической разницы между созданием нового класса и созданием экземпляра. Семантическая разница выражается в том, что имя класса начинается с заглавной буквы (но программист не обязан придерживатся такого соглашения). Когда Вы штампуете объекты в цикле (без ифов), то все они относятся к одному классу. В C++, насколько я помню, есть закрытое наследование (то есть, наследование реализации без наследования интерфейса). Добавлено через 8 минут У динамических языков есть свои преимущества, иначе бы их никто не использовал. Но не случайно в них добавляют статическую типизацию (TypeScript, "option explicite" в VB 6.0, Typed Racket и т.д.)
p.s. Если я правильно помню, "хаскель-академики" пытались прикрутить статическую типизацию к erlang, но у них не получилось.
0
|
|||||||||||||||
|
|
||
| 20.06.2022, 15:02 | ||
|
Разработка через тестирование вполне решает возможные проблемы. Обвешать всю программу ассертами? Использовать статические анализаторы кода? Так они в основном занимаются проверками соответствия типов.
0
|
||
|
Модератор
3142 / 2290 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
|
||
| 20.06.2022, 15:33 | ||
|
2. Количеством проверок, которые должна сделать библиотечная функция, чтобы не сгенерировать непонятное исключение (типа NRE). 3. Количеством ошибок, которые отлавливаются на этапе компиляции. Добавлено через 6 минут Абстракция характеризуется предусловиями, постусловиями, инвариантами и исключениями. Чем больше из этого можно выразить явно в коде, тем лучше (код будет проще понимать и сопровождать). Добавлено через 4 минуты И, кстати, языки, которые требуют правильного выравнивая кода, лучше тех, которые не требуют.
0
|
||
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
|
|||||||||
| 23.06.2022, 22:27 | |||||||||
|
Во-вторых, не в 2005-м, а в 1986-м. В-третьих, не просто "лектор", а Джеральд Сассман, один из авторов SICP и создателей Scheme. Добавлено через 5 минут Я уж не говорю про C --- типизация вроде статическая, а на деле полный П.
0
|
|||||||||
|
Модератор
3142 / 2290 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
|
||||||||
| 24.06.2022, 12:22 | ||||||||
|
Сам курс подписан "© 2001–2022 Massachusetts Institute of Technology". Или Вы утверждаете, что данное видео записано в 1886 году? Но самое главное - упомянул вскользь. И использование сторонних библиотек может превратиться в головную боль. Не всегда ясен тип значения возвращаемого функцией.
0
|
||||||||
| 24.06.2022, 12:22 | |
|
Тесты на знание основ C++ Нужны основы основ Разбор основ qt widtgets C для изучения основ программирования
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . .
Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
|
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг.
Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует.
В процессе разработки. . .
|
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
|
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации:
1. Вернуть возможность использования знаков | 1 l I;. . .
|
|
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С.
Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
|
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию?
Фраза «Любая достаточно развитая технология неотличима от магии». . .
|
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль?
Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
|
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология.
«Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
|