Форум программистов, компьютерный форум, киберфорум
ООП и паттерны
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.92/63: Рейтинг темы: голосов - 63, средняя оценка - 4.92
5 / 3 / 2
Регистрация: 27.04.2022
Сообщений: 63

Понимание основ ООП

27.04.2022, 16:33. Показов 16526. Ответов 188
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!

Начал изучать ООП и сразу возникло непонимание на изучении классов.

У любого класса есть набор своих индивидуальных свойств, но ведь есть и свойства, которые будут общими для всех классов. Например, температура и плотность, если мы говорим о материальных вещах. Да и вообще любые физические и химические свойства для всех материальных вещей будут общими: электропроводность, молярный вес и т. д. Понятно, что они будут иметь различные значения, но фундаментально эти понятия будут едиными для любых классов, выражающих эти самые материальные вещи.

Соответственно, при создании объектов мне необходимо будет для каждого из них задавать свойство, допустим, «Температура» или языки ООП позволяют создать некое «глобальное, общее» свойство и при создании конкретного объекта я смогу присваивать ему это «глобальное» свойство, задавая лишь значение?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.04.2022, 16:33
Ответы с готовыми решениями:

ООП, понимание абстрактных классов/методов и т.п
Работаю программистом и столкнулся с тем, что на проекте отказались от абстрактного класса в пользу интерфейса, но я не совсем понимаю...

Знание основ ООП/Джава
Здравствуйте. Хочу записаться на курсы по Java, но там требование: знание основ ООП/Java. Подскажите, что именно входить в знание основ...

освоение основ
я учусь на инженера программного обеспечения на втором курсе. Нам дают всего по чу-чуть, возникла нужда в самообразовании. Как я выяснил...

188
 Аватар для Tavashi
1172 / 762 / 194
Регистрация: 21.05.2016
Сообщений: 1,858
24.06.2022, 18:57
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Shamil1 Посмотреть сообщение
данное видео записано в 1886 году?
В 1886 вряд ли, а в 1986 - да.
Цитата Сообщение от Shamil1 Посмотреть сообщение
Но самое главное - упомянул вскользь.
С таким подходом можно и к интонации автора придраться.
Цитата Сообщение от Shamil1 Посмотреть сообщение
Я с Вами не согласен.
А я согласен с тем, с чем вы не согласны, потому что не было предоставлено на основании чего упомянутые книги стали "классикой".
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
26.06.2022, 03:02
Цитата Сообщение от Shamil1 Посмотреть сообщение
В одной лекции упомянул. Или Вы утверждаете, что он в каждой лекции упоминает ООП?
Зачем в каждой лекции упоминать ООП?

Цитата Сообщение от Shamil1 Посмотреть сообщение
Сам курс подписан "© 2001–2022 Massachusetts Institute of Technology". Или Вы утверждаете, что данное видео записано в 1886 году?
Кем подписан? Где? Курс 1986-го года для сотрудников Hewlett Packard.

https://www.hpmuseum.org/cgi-s... ead=232014

Опубликован, видимо, позже.

Цитата Сообщение от Shamil1 Посмотреть сообщение
Я с Вами не согласен.
Рад за Вас. Но это не содержательный комментарий, не могу ответить ничего больше.

Цитата Сообщение от Shamil1 Посмотреть сообщение
Передача сообщений и разная реакция объектов на одинаковые сообщения в примере перестанет присутствовать?
Да.

Цитата Сообщение от Shamil1 Посмотреть сообщение
Про Netflix не знаю, что они там пишут на Clojure.
Я тоже не знаю. Вот пример, например: https://www.reddit.com/r/progr... t_netflix/

Цитата Сообщение от Shamil1 Посмотреть сообщение
Добавлением 100500 проверок?
Вместо 100500 строк описания типа? Да.

Цитата Сообщение от Shamil1 Посмотреть сообщение
И использование сторонних библиотек может превратиться в головную боль. Не всегда ясен тип значения возвращаемого функцией.
1) обычно описывают в доке к функции.
2) можешь проверить в месте вызова. В разных местах можешь проверять разные типы. Это не такая большая проблема.

Цитата Сообщение от Shamil1 Посмотреть сообщение
К сожалению.
Относительно. С другой стороны --- описывать 100500 типов в мельчайших подробностях не всегда способствует продуктивности.

Цитата Сообщение от Shamil1 Посмотреть сообщение
Сильная типизация - более критичное требование. Лучше сильная ДТ, чем слабая СТ.
Ага, но это пример, что СТ сама по себе не так много даёт, как кажется.
0
Модератор
Эксперт функциональных языков программирования
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
26.06.2022, 09:19
Цитата Сообщение от korvin_ Посмотреть сообщение
Зачем в каждой лекции упоминать ООП?
То есть, в одном году он упоминал, а в следующем не упоминал?

Цитата Сообщение от korvin_ Посмотреть сообщение
Кем подписан? Где? Курс 1986-го года для сотрудников Hewlett Packard.
Конкретно данный видеокурс подписан "© 2001–2022 Massachusetts Institute of Technology".
Сам курс 6.001 читается с 1986 года. Но это не значит, что данный конкретный видеокурс записан в 1986 году. И, очевидно, что лекция 2005 года не является дословным повторением той же лекции 2004 года, и т.д.

Цитата Сообщение от korvin_ Посмотреть сообщение
Да.
Сами функции - те же самые. Таблица, которую они используют, та же самая. Куда делись передача сообщений и разная реакция объектов на одинаковые сообщения?

Цитата Сообщение от korvin_ Посмотреть сообщение
Вместо 100500 строк описания типа?
Во-первых, тип может выводиться компилятором. Во-вторых, указать тип, это явно короче, чем проверять на тип, приводить к этому типу и выдавать сообщение об ошибке, если тип не тот. Всего одно слово, вместо конструкции if then else.

Цитата Сообщение от korvin_ Посмотреть сообщение
С другой стороны --- описывать 100500 типов в мельчайших подробностях не всегда способствует продуктивности.
Обычно пользовательский ввод проходит несколько слоёв (уровней) приложения. И на каждом уровне нужно всё проверять. Например, что это строка длиной от 1 до 20 символов. Но если у нас есть тип "строка длиной от 1 до 20 символов", то достаточно проверить один раз - перед вызовом первой функции в стеке.
0
 Аватар для Tavashi
1172 / 762 / 194
Регистрация: 21.05.2016
Сообщений: 1,858
26.06.2022, 16:07
Цитата Сообщение от Shamil1 Посмотреть сообщение
Но это не значит, что данный конкретный видеокурс записан в 1986 году.
А в каком году, по вашему, он записан, если даже на самом видео указана дата?
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
27.06.2022, 16:06
Цитата Сообщение от Shamil1 Посмотреть сообщение
Всего одно слово, вместо конструкции if then else.
Зачем конструкция if then else?

Lisp
1
2
3
4
5
6
7
8
9
10
11
(define (integer! x)
  (unless (integer? x)
    (error "expected integer, given: " x)))
 
(define (add x y)
  (integer! x)
  (integer! y)
  (+ x y))
 
(display (add 1 2))
(display (add 3 "4"))
— https://rextester.com/EFQAH93323

И вообще.
0
Модератор
Эксперт функциональных языков программирования
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
28.06.2022, 00:35
Цитата Сообщение от korvin_ Посмотреть сообщение
И вообще.
Полезная штука.
https://github.com/Microsoft/CodeContracts/
Правда в C# компиляция замедляется раза в три, если её использовать.
0
Эксперт функциональных языков программированияЭксперт по математике/физике
4316 / 2107 / 432
Регистрация: 19.07.2009
Сообщений: 3,227
Записей в блоге: 24
01.07.2022, 14:46
Котята, я тут как раз решил разобраться таки, что такое ООП, потому что как-то грустно прожить десятки лет и чувствовать себя аутсайдером на фоне молодых и энергичных. А тут вы как раз .

В общем, по прочтении вашей беседы я сформулировал ряд вопросов. Не поленитесь, дайте ответ на них.

0. Разделяем ОО-ЯП и ООП. Первое — это язык, который подходит по определённый стиль программирования, а второе — это стиль + метод проектирования + подлежащая теория + …
Причём с ФП мне понятно: ищем зависимости в предметной области, кладём их в виде функций, декомпонуем их, абстрагируем по необходимости тоже в виде функций; мыслим в терминах λ-исчисления и CL.

1. наличие концепции класса — неотъемлемое свойство ООП (Буч, Кей)
1) Согласен со собственным пониманием того, что есть ООП?
2) Если внести в определение, возникнут ли противоречия или просто понятие сузится?

2. наследование — неотъемлемое свойство ООП (Буч)
1) Согласен со собственным пониманием того, что есть ООП?
2) Если внести в определение, возникнут ли противоречия или просто понятие сузится?

3. наличие состояния объекта — неотъемлемое свойство ООП (Буч, Кей)?
1) Согласен со собственным пониманием того, что есть ООП?
2) Если внести в определение, возникнут ли противоречия или просто понятие сузится?

4. ООП — передача сообщений, локальное хранение и сокрытие изменения состояния, отложенное связывание всего и вся на максималках (Кей)
1) Согласен со собственным пониманием того, что есть ООП?
2) Если внести в определение, возникнут ли противоречия или просто понятие сузится?

И ещё вопросы от меня:
5. ООП по Кею — резве это не просто акторная модель?
6. Буч актуален? Почему @korvin_ считает, что нет.
Я намедни прочитал 80 стр. и пока ещё не преисполнился мудрости, но вроде пишет не полную ересь.
0
821 / 580 / 75
Регистрация: 20.09.2014
Сообщений: 3,827
04.07.2022, 05:54
Да надоело уже... Я ведь не зря говорил в самом начале темы о степенях объектной ориентированности. Первая и базовая степень - это использование объектов (полей и методов с общим именем) вместо переменных и функций. А всякие наследования, полиморфизмы - это как попутный газ, побочный продукт. Хотите, формулируйте ООП 2-ой степени, третьей, десятой... Но база сформулирована четко и ясно: ООП - это использование объектов при программировании.
0
Модератор
Эксперт функциональных языков программирования
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
04.07.2022, 12:26
Цитата Сообщение от Mikhaylo Посмотреть сообщение
Но база сформулирована четко и ясно
Где и кем сформулирована?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.07.2022, 12:26

Тесты на знание основ C++
Здравствуйте. Помогите найти тестовые задания по основам программирования на языке с++. Нужно много тестовых заданий (порядка 200-300), по...

Нужны основы основ
Доступ к полям таблиц баз данных FireBird в в среде разработки Builder C++

Разбор основ qt widtgets
Здравствуйте! В первый раз создал qt gui приложение и сразу появилось множество вопросов. Вот код: header.h ...... namespace Ui...

C для изучения основ программирования
Как вы думаете, подходит ли c как язык для изучения основ программирования и погружения в IT сферу. Имею опыт программирования на Python,...

Что изучать после основ?
Всем доброго времени суток, пробуксировал учебник по плюсам, теперь знаю основы от выделения памяти под переменную, до умных указателей,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
189
Ответ Создать тему
Новые блоги и статьи
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru