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

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

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

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

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

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

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

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

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

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

188
Модератор
Эксперт функциональных языков программирования
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
14.05.2022, 16:49
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от korvin_ Посмотреть сообщение
Не написано, но прямо говорится в видеолекции: https://youtu.be/yedzRWhi-9E?t=110
Я не хочу слушать часовую лекцию на английском языке только для того, чтобы найти, в каком контексте там упоминается ООП. Как я понял из описания, эта лекция основана на подглаве 2.1. из книги. В этой подглаве (и главе в целом) нет никакого намёка на ООП. Там даже императивное программирование не упоминается. Операция присваивания вводится только в главе 3.

В книге рассматривается два подхода, которые авторы называют object-based и stream-processing. Эти понятия вводятся в главе 3.

Цитата Сообщение от korvin_ Посмотреть сообщение
Что тебя смущает? Такое себе ручное построение объекта без специального синтаксиса, с помощью замыканий.
Меня смущает то, что никакого ООП тут нет. Хотя объекты есть.
0
 Аватар для Tavashi
1172 / 762 / 194
Регистрация: 21.05.2016
Сообщений: 1,858
14.05.2022, 20:10
Цитата Сообщение от Shamil1 Посмотреть сообщение
Я не хочу слушать часовую лекцию на английском языке только для того, чтобы найти, в каком контексте там упоминается ООП.
Не нужно слушать всю лекцию целиком, когда по ссылке есть тайм-код.
0
Модератор
Эксперт функциональных языков программирования
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
14.05.2022, 20:58
Цитата Сообщение от korvin_ Посмотреть сообщение
Не написано, но прямо говорится в видеолекции
По ссылке говорится: "вот для чего мы изобрели ООП". И мне непонятно, каким образом это связано с SICP (книгой) и описанными там техниками.
0
 Аватар для Tavashi
1172 / 762 / 194
Регистрация: 21.05.2016
Сообщений: 1,858
14.05.2022, 21:16
Цитата Сообщение от Shamil1 Посмотреть сообщение
И мне непонятно, каким образом это связано с SICP (книгой) и описанными там техниками.
Дальше в видео идет пояснение и даже на доске наглядно показывают.
0
Модератор
Эксперт функциональных языков программирования
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
16.05.2022, 10:41
Цитата Сообщение от korvin_ Посмотреть сообщение
А показано ровно оно — передача сообщений и разная реакция объектов на одинаковые сообщения.
В главе 2 это тоже показывается - передача сообщений и разная реакция объектов на одинаковые сообщения. И называется это "функциональным программированием".
0
 Аватар для Tavashi
1172 / 762 / 194
Регистрация: 21.05.2016
Сообщений: 1,858
16.05.2022, 11:13
Цитата Сообщение от Shamil1 Посмотреть сообщение
{
  mpz_t integ;
  mpz_init (integ);
  …
  mpz_add (integ, …);
  …
  mpz_sub (integ, …);
/* Unless the program is about to exit, do ... */
  mpz_clear (integ);
}
Мне кажется, что если уж вы скопировали пример, то стоит указывать и сам его источник.
0
7 / 55 / 9
Регистрация: 03.02.2022
Сообщений: 570
17.05.2022, 00:17
Про ООП следует узнать и забыть. ООП-проект разваливается за 3 года максимум. Сопровождать сколько-нибудь большое нагромождение классов просто невозможно. Причина в основном во внутреннем состоянии классов, которое становится практически невозможно отследить.
0
 Аватар для vantfiles
1018 / 1921 / 177
Регистрация: 07.05.2013
Сообщений: 3,931
Записей в блоге: 12
17.05.2022, 08:09
Цитата Сообщение от qtkoder777 Посмотреть сообщение
ООП-проект разваливается за 3 года максимум.
Я поддерживаю такой проект с 2011 года. А начался он в 1999 году.
Цитата Сообщение от qtkoder777 Посмотреть сообщение
Сопровождать сколько-нибудь большое нагромождение классов просто невозможно.
Разумеется. А не надо нагромождать.
Цитата Сообщение от qtkoder777 Посмотреть сообщение
Причина в основном во внутреннем состоянии классов, которое становится практически невозможно отследить.
Есть инструменты, позволяющие отслеживать все что угодно при любом уровне сложности.

Shamil1 в этой теме продвигает тему наследования. А нет в нашем проекте наследования. Что, на мой взгляд, сильно упрощает ситуацию.
0
7 / 55 / 9
Регистрация: 03.02.2022
Сообщений: 570
17.05.2022, 09:45
vantfiles, без наследования это не ООП. ООП это цепочки наследников в которых часто более 10 классов. Java - канонический пример ООП. К цепочкам из десятков классов в базовой поставке языка говнокодеры добавляют десятки классов-наследников.

Писать System.out.println чтоб вывести строку уже извращение.
0
 Аватар для vantfiles
1018 / 1921 / 177
Регистрация: 07.05.2013
Сообщений: 3,931
Записей в блоге: 12
17.05.2022, 09:51
Цитата Сообщение от qtkoder777 Посмотреть сообщение
часто более 10 классов.
Пример сумеете привести?

говнокодеры - это слово очень любят говнокодеры
2
7 / 55 / 9
Регистрация: 03.02.2022
Сообщений: 570
17.05.2022, 10:02
Цитата Сообщение от vantfiles Посмотреть сообщение
Пример сумеете привести?

говнокодеры - это слово очень любят говнокодеры
Для затравки - цепочка из 7 классов. Учтите, что это импорт, то есть у 7-го класса ещё наследники есть.
https://github.com/kubernetes-... rTest.java

Java
1
2
3
import io.kubernetes.client.extended.leaderelection.resourcelock.ConfigMapLock;
import io.kubernetes.client.extended.leaderelection.resourcelock.EndpointsLock;
import io.kubernetes.client.extended.leaderelection.resourcelock.LeaseLock;
0
 Аватар для vantfiles
1018 / 1921 / 177
Регистрация: 07.05.2013
Сообщений: 3,931
Записей в блоге: 12
17.05.2022, 10:56
Цитата Сообщение от qtkoder777 Посмотреть сообщение
Для затравки - цепочка из 7 классов. Учтите, что это импорт, то есть у 7-го класса ещё наследники есть.
Спасибо. Не видал такого изврата.

За такое следует бить бамбуковыми палками по пяткам.
0
Модератор
Эксперт функциональных языков программирования
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
17.05.2022, 11:56
Цитата Сообщение от qtkoder777 Посмотреть сообщение
Для затравки - цепочка из 7 классов
Тут точно 7 классов, а не 3? Я код не видел, но предположу (исходя из имён), что "io.kubernetes.client.extended" - это пространство имён (гуглить лень).

Добавлено через 4 минуты
Цитата Сообщение от vantfiles Посмотреть сообщение
говнокодеры - это слово очень любят говнокодеры
Код называют "говнокодом" в двух случаях:
1. Когда понимают, почему написано так, понимают, почему так писать плохо и знают, как написать лучше (на том же яп)
2. Когда не понимают, почему написано так

Добавлено через 41 минуту
Цитата Сообщение от qtkoder777 Посмотреть сообщение
Для затравки - цепочка из 7 классов. Учтите, что это импорт, то есть у 7-го класса ещё наследники есть.
https://github.com/kubernetes-... rTest.java
Кликнул по ссылке.
Java
1
package io.kubernetes.client.e2e.extended.leaderelection;
Это НЕ иерархия классов. Это имя пакета.
0
7 / 55 / 9
Регистрация: 03.02.2022
Сообщений: 570
17.05.2022, 12:13
В кодах Chromium нашёлся импорт на 9 вложенных позиций. 10 пока не нашёл. 7-8 вложенных позиций для гуглокодеров обычное дело. Классы, импорты это или пакеты - не принципиально. Важно экспоненциальное разрастание содержимого и следовательно, необозримость как человеческим интеллектом так и искусственным на определённом этапе.
https://github.com/JackyAndroi... ndler.java
Java
1
import com.google.ipc.invalidation.external.client.android.service.AndroidLogger;
0
Модератор
Эксперт функциональных языков программирования
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
17.05.2022, 12:24
Цитата Сообщение от qtkoder777 Посмотреть сообщение
Классы, импорты это или пакеты - не принципиально.
Принципиально. Сложность кода никак не связана с названием проекта/пакета. Назову я свой проект А или А.Б.С - на сложность не влияет.

Цитата Сообщение от qtkoder777 Посмотреть сообщение
Важно экспоненциальное разрастание содержимого.
Не вижу связи.

Добавлено через 4 минуты
Цитата Сообщение от vantfiles Посмотреть сообщение
Shamil1 в этой теме продвигает тему наследования. А нет в нашем проекте наследования. Что, на мой взгляд, сильно упрощает ситуацию.
Я не продвигаю тему наследования. Я в этой теме не говорил, как лучше писать. Я говорил, что такое ООП.
0
7 / 55 / 9
Регистрация: 03.02.2022
Сообщений: 570
17.05.2022, 20:14
Java
1
import com.google.ipc.invalidation.external.client.android.service.AndroidLogger;
Можно предположить что такое AndroidLogger. Что говорит про AndroidLogger предшествующий текст? Зачем тогда его писать?
0
 Аватар для Tavashi
1172 / 762 / 194
Регистрация: 21.05.2016
Сообщений: 1,858
17.05.2022, 22:55
Цитата Сообщение от Shamil1 Посмотреть сообщение
Я не продвигаю тему наследования. Я в этой теме не говорил, как лучше писать. Я говорил, что такое ООП.
Разве по вашей логике ООП невозможно без наследования? Если ответ утвердительный, то это и означает, что продвигаете тему наследования.
0
821 / 580 / 75
Регистрация: 20.09.2014
Сообщений: 3,827
18.05.2022, 06:40
Есть базовый ООП, а есть хардкор-маст-хэв-хэви-металл-блеать-ООП.
0
7 / 55 / 9
Регистрация: 03.02.2022
Сообщений: 570
18.05.2022, 09:37
Цитата Сообщение от qtkoder777 Посмотреть сообщение
Java
1
import com.google.ipc.invalidation.external.client.android.service.AndroidLogger;
Можно предположить что такое AndroidLogger. Что говорит про AndroidLogger предшествующий текст? Зачем тогда его писать?
Допустим, я новый программист в компании. Мне нужен класс, который будет писать логи в системе Андроид. Тот самый AndroidLogger.

Как мне догадаться, что он вложен в категории com.google.ipc.invalidation.external.cli ent.android.service?

Изучить документацию по всем этим категориям? Если она есть. Прочитать коды всех этих пакетов? Какие ещё идеи?
0
821 / 580 / 75
Регистрация: 20.09.2014
Сообщений: 3,827
18.05.2022, 09:52
Цитата Сообщение от qtkoder777 Посмотреть сообщение
Какие ещё идеи?
Язык разработки Рафинад
Концепт абстрактного языка разработки Рафинад
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.05.2022, 09:52

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
140
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
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, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru