|
2 / 2 / 0
Регистрация: 22.08.2013
Сообщений: 38
|
|
Объяснение принципов ООП22.08.2013, 11:26. Показов 9433. Ответов 69
Метки нет (Все метки)
Простите если пишу не в той ветке. Уважаемые старшие братья, великие гуру, наставники и просто хорошие люди разбирающиеся в данном вопросе, не могли бы вы объяснить чайнику принципы ООП.
Когда в далеком 1997 г. в школе мне довелось встретиться с BASIC, что там была за версия мне не ведомо, но линейные алгоритмы, несколько ветвителей и пару циклов плюс отдельно написанная функция или процедура в последующем вызванная в главном алгоритме программы рождали в моем мозгу четкое представление что происходит. Теперь пришло время объяснить все это ребенку и пока мы ковыряемся в ПИКТОМИРе, мир в моих глазах не рушиться. Но ныне время ООП и тут в моем разуме рождается хаос Классы, Экземпляры, Методы - ужас! (не корите меня что я не читаю книг, читаю, но мой закоренелый мозг не в состоянии воспринять новый мир, а очень надо). Поначалу все шло хорошо, действительно удобно: создаем Класс с методами (как я понимаю, это те же функции и процедуры), потом создаем объект и интенсивно используем методы, которые он имеет как представитель класса. Ну действительно, чтобы убить зомби, берем объект "пистолет" относящийся к классу "пистолеты" и используем метод "выстрел". (извините что пользуюсь такими примерами). Но всю логику ломают методы с пометкой static, это что за зверь????? В умных книжках умными людьми написано, что якобы такой метод можно вызвать без создания экземпляра класса!!! Сразу в голове возникает следующее: "Понятно! А на хера???" У умных людей есть и на это ответ: "Чтобы писать меньше кода!" - "Логично! А за каким тогда "нестатические методы"??? На фиг тогда писать эти классы и создавать экземпляры??? И на хрена тогда вообще это ООП???" Пожалуйста, не поможете разобраться с этими статическими методами и в частотности с "main" может на примере с теми же зомби, чего мы берем и откуда если нет экземпляра????
0
|
|
| 22.08.2013, 11:26 | |
|
Ответы с готовыми решениями:
69
Нужна идея по реализации принципов ООП Объяснение принципов построения сети
|
|
2 / 2 / 0
Регистрация: 22.08.2013
Сообщений: 38
|
||
| 24.08.2013, 20:46 [ТС] | ||
|
Почему я еще тяготею к языкам C# и JAVA там есть визуальные компоненты, то есть чтобы ей было интересно не просто в консоль пялится а какую нибудь кнопочку запрограммировать. делегаты, события, лямбда-выражения, многопоточность, рефлексия действительно приводят в ужас! Думаете все же с Delphi начать (как с визуальной среды Паскаля)? Но это синтаксис совсем отличный от Си-подобных языков (на сколько я слышал). Не уж то совсем не понять вышеперечисленные структуры через ту же JAVA?
0
|
||
| 24.08.2013, 21:40 | |
|
0
|
|
|
2 / 2 / 0
Регистрация: 22.08.2013
Сообщений: 38
|
||
| 24.08.2013, 21:45 [ТС] | ||
|
К тому же там роботы ездят, ей нравится )))) Я на этом форуме один пост читал, так в нем участник сообщал, что уже в 6 лет он сам писал драйвера )))))
0
|
||
|
54 / 53 / 5
Регистрация: 14.08.2012
Сообщений: 252
|
|
| 24.08.2013, 22:12 | |
|
2
|
|
|
Антикодер
1889 / 871 / 48
Регистрация: 15.09.2012
Сообщений: 3,092
|
|||||||
| 25.08.2013, 00:09 | |||||||
|
до меня недавно дошло, чтоб быть хорошим программистом не нужно хорошо знать язык программирования. давайте спросим, что мы можем реально дать ребенку? У нас есть некоторое множество наук, которые развиваются с разной скоростью. Очевидно ребенку можно давать только те вещи, которые не потеряют актуальности, когда он вырастет. ну давайте посмотрим на C# и Java через 10 лет. C# поддерживает Microsoft, то есть без Microsoft язык потеряет актуальность, с другой стороны в Microsoft постоянно изобретают новые языки программирования, и они могут прекратить развитие C#, когда это будет не выгодно. Язык Java, более независимый от конкретной фирмы, но его также поддерживает некоторая группа людей в актуальном состоянии. Когда ребенок вырастет static-и могут потерять(а я уверен, что потеряют) актуальность. Скорее всего операции сложения, вычитания, мат функции, статистика и т п не потеряют актуальность. Поэтому что мы можем дать ребенку в 8 лет? ну показать некоторые абстракции, которые напридумывали люди, типа чисел, мат. операций, которых в природе не существует, и показать, как использовать такие абстракции для решения конкретных задач, как они могут облегчить жизнь ребенку. Поэтому советую такую методику, показываете ребенку фундамендальное математическое понятие и сразу пытаетесь показать как применить его в реальной жизни. Это легче всего делать через языки программирования. У дейтела в книге по C++ как раз простые примеры на мед. тематику(правда далеко не все), решение которых может реально помочь в жизни. То есть совсем не изучать языки программирования не получится. но изучать их детально лучше на пенсии. их слишком много. Найти универсальный язык тоже не получится. Поэтому для ребенка 7-8 лет новые для него возможности из языков программирования можно показывать только один раз в неделю(в месяц) вечерком. Основную часть учебного времени ребенка лучше занять математикой, шахматами, и прочими полезными вещами(ещё англ приходиться ребенку давать, чтоб его...). К чему такой подход? - Сложно представить, что ребенку не пригодится умение грамотно применять математику в жизни, кем бы он ни работал. Хорошее знание языка программирования, нужно людям, которые работают над большими проектами. До 18 лет желательно выполнять только учебные проекты(а я до сих стараюсь не углубляться в большие проекты, заниматься ими только поверхостно) вот что я нашёл полезного - видеоуроки для детей на английском вот я создал класс Сердце, по Дейтелу.
я нашёл окончательные ответы по ООП в этих видеолекциях на которые я давал ссылку Для того чтобы выучить С++ по книге Бьёрна Страуструпа для новичков сложновато, но там собрано всё то о чем скромно умалчивают в книгах(так как у книг и видео разные способы подачи информации) Добавлено через 4 минуты вот скока работаю, статитечкие методы только убиваю в проектах. в последние полгода их не создавал.
0
|
|||||||
|
2 / 2 / 0
Регистрация: 22.08.2013
Сообщений: 38
|
|||
| 25.08.2013, 12:12 [ТС] | |||
|
XRuZzz, спасибо за развернутую помощь хоть и не совсем по теме, но ваши измышления вполне актуальны для меня.
Наследование это создание класса на основе другого класса с возможностью переназначения методов. Инкапсуляция сокрытие доступа к переменным класса напрямую, чтобы случайно не похерить его логику присвоив им другое значение. Полиморфизм – возможность иметь в классе несколько методов с одинаковыми именами но разными аргументами. Если я где-то ошибся прошу поправьте!!! С С++ у меня проблемы, я его боюсь, неоднократно пробовал читать по нему литературу, но где-то после условных операторов мой мозг начинает каротить. Меня пугают его операторы « . », « :: », « -> » От static в С++ вообще с ума схожу, зачем он этому языку вообще понять не могу, ведь на сколько я понимаю в C++ есть возможность написать обычную функцию вне класса и легко использовать ее, на кой черт создавать Класс чтобы прибегнуть к формуле класс.метод();
0
|
|||
|
Модератор
2939 / 1802 / 180
Регистрация: 19.02.2011
Сообщений: 6,559
|
||||
| 25.08.2013, 12:22 | ||||
|
1
|
||||
|
Комп_Оратор)
|
|||||
| 25.08.2013, 12:44 | |||||
|
Не нужно сходить с ума. ![]() Девочке лет этак в 14-15 будет видно нужен ли ей С++. Нельзя утверждать, что обязательно будет отрицательный ответ. А сейчас и Делфи ещё рановато.(имхо)
2
|
|||||
|
Антикодер
1889 / 871 / 48
Регистрация: 15.09.2012
Сообщений: 3,092
|
||
| 25.08.2013, 12:56 | ||
|
Есть хорошие видеолекции по C++, которые помогают снять страх перед C++ от специалистов яндекса, на которые я давал ссылку Для того чтобы выучить С++ по книге Бьёрна Страуструпа
А ещё лучше с вашей предметной области. Ну как рассказать другому человеку доходчиво о предметной области? С помощью текста и UML. Нам нужно создать некоторую систему для конкретных целей. Набросаем простенькую диаграмму бизнес объектов(я её уже давно нарисовал и она особо не теряет актуальности, но требует проверок и уточнений, ведь я не врач). Где тут наследование?
0
|
||
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
|
||
| 25.08.2013, 14:40 | ||
|
0
|
||
| 26.08.2013, 21:12 | ||||||||||||||||||||||
1
|
||||||||||||||||||||||
|
Антикодер
1889 / 871 / 48
Регистрация: 15.09.2012
Сообщений: 3,092
|
|||||||
| 27.08.2013, 01:53 | |||||||
|
Добавлено через 21 минуту да и название объекта должно быть говорящим.
0
|
|||||||
| 27.08.2013, 16:05 | ||
|
А позвольте я из Вашего примера выдеру кусок
0
|
||
|
1 / 1 / 0
Регистрация: 14.05.2013
Сообщений: 6
|
|
| 27.08.2013, 16:39 | |
|
Класс представляет собой шаблон, по которому определяется форма объекта. В нем указываются данные и код,
который будет оперировать этими данными. Класс, по существу, представляет собой ряд схематических описаний способа построения объекта. Класс является логической абстракцией. Физическое представление класса появится в оперативной памяти лишь после того, как будет создан объект этого класса.
0
|
|
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
|
|||
| 27.08.2013, 16:46 | |||
|
0
|
|||
|
1 / 1 / 0
Регистрация: 14.05.2013
Сообщений: 6
|
|
| 27.08.2013, 17:05 | |
|
Класс представляет собой шаблон, по которому определяется форма объекта. Класс является логической абстракцией. Физическое представление класса появится в оперативной памяти лишь после того, как будет создан объект этого класса.
0
|
|
| 27.08.2013, 18:22 | |||
![]()
0
|
|||
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
|
|||||
| 28.08.2013, 00:41 | |||||
0
|
|||||
| 28.08.2013, 09:18 | ||
Я показал что использование static может сделать код гораздо более понятным, и это важно. А бросаться сразу в обобщения (напр history полиморфный класс или template) считаю неуместным, это должно созреть в задаче, да и человеку надо сначала опыта поднабраться.
0
|
||
|
Антикодер
1889 / 871 / 48
Регистрация: 15.09.2012
Сообщений: 3,092
|
|
| 28.08.2013, 16:33 | |
|
Макконелл в книге "Совершенный код" рекомендует не использовать сокращения типа FileUtil
0
|
|
| 28.08.2013, 16:33 | |
|
Реализация принципов ООП на примере Написать программу с использованием 3 принципов ООП Написать программу с использованием принципов ООП Применение принципов ООП на практике (мнение о приведенном коде) Оценить код с точки зрения принципов ООП и корректность в целом Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
|
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи.
. . .
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
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.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|