LINUX.ORG.RU

понять суть ООП

 ,


5

1

собственно САБЖ подскажите что почитать/посмотреть, чтобы вникнуть в предметную область. Понимаю, что пишу как-то не так, ибо передаю методам кучу параметров и почти не использую свойств.



Последнее исправление: cetjs2 (всего исправлений: 2)
Ответ на: комментарий от unt1tled

Да у тебя троллефобия... и часто тебе тролли мерещатся? Хочешь поговорить об этом? ... я у тебя спросил, вполне конкретный вопрос, ты сам его инициализировал, а в ответ я слышу херню про «неокрепшую психику», «простреленных ног» и тп и тд. То есть ни какой конкретики. Зачем тогда было начинать?

ihappy
()
Ответ на: комментарий от comp00

«да но порой защита от «пристрелить себе ногу» на уровне паранойи утомляет, а когда я осознаю что такой же код, написанный на яве работает в 10 медленней и куда более прожорливый при этом, мне становится смешно.»

//fixed

AIv
()
Ответ на: комментарий от unt1tled

Кто, КТО, вернет мне тысячную долю секунды времени моей жизни, КТО я тебя спрашиваю, а?

Ваша жизнь вообще никому ненужна. А вот прирост производительности на порядок для числодробилок например, при времени счета дни или даже недели, весьма актуален.

AIv
()
Ответ на: комментарий от ihappy

Ничего я не начинал. Я сказал как есть, те кто «знает C++» тоже это знают и спрашивать глупые вопросы не станут. О том, что плюсы могут научить плохому повествует хотябы энное кол-во книл типа «как писать хороший код на C++». Говорит само за себя, правда?
Хочешь ответа - вот тебе один: множественное наследование. Щас пойдут вопросы типа «ну-ка ну-ка расскажи чем тебе МН не угодило?», на них просто не хочу отвечать, сходи в вуз, там спроси.

unt1tled
()
Последнее исправление: unt1tled (всего исправлений: 1)
Ответ на: комментарий от unt1tled

дело не в языке...какой бы язык ни был, не главное ли понимание структуры программы? То есть, что взять за класс, какие выделить методы и свойства, и как организовать иерархию? Мне важно понять именно принципы ООП.

r0ck3r
() автор топика
Ответ на: комментарий от unt1tled

А я вот не знаю и мне это интересно, а твой ответ на отстань. Я как раз занимаюсь изучением плюхи и мне интересны его минусы. Но, от тебя вменяемого ответа, я как понимаю не услышу.

ihappy
()
Ответ на: комментарий от unt1tled

А вот передергивать не надо.

А вот не надо писать таких категоричных глупостей - и не будут передергивать;-)

Числодробилки - это отдельная тема и в эту тему вообще никаким боком не влазиют.

В какую эту? В ООП? Вполне себе влазят.

AIv
()
Ответ на: комментарий от r0ck3r

В данном случае дело и в языке тоже. Есть языки, которые учат хорошему стилю и практикам изначально. Ява - один из них (имхо лучший).
Начинай отсюда http://docs.oracle.com/javase/tutorial/java/concepts/

Также написано много учебников с изучением ооп и явой в качестве примеров.

unt1tled
()
Ответ на: комментарий от unt1tled

О том, что плюсы могут научить плохому повествует хотябы энное кол-во книл типа «как писать хороший код на C++»

Полностью согласен. Плюсы ужасный ЯП, и писать на нем хороший код сложно, поэтому такие книги и выходят. Вся беда в том, что на многих ЯП (например фортране) писать хороший код НЕВОЗМОЖНО.

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

AIv
()

спасибо всем причастным!

r0ck3r
() автор топика
Ответ на: комментарий от AIv

Так может, это не в языке дело? Это как все кричат про ПХП, что он плохой язык, потому, что... школоло на нем плохо пишет. Занавес. Так и тут. С++ плохой, потому что на нем надо писать правильно.

ihappy
()
Ответ на: комментарий от AIv

А вот не надо писать таких категоричных глупостей - и не будут передергивать;-)

Это не глупости, это сегодняшние реалии. Академики вообще не смотрят на те 20% с которых все началось и пишут абстракции на прологах/хацкелях.

В какую эту? В ООП? Вполне себе влазят.

в «понять суть ооп»

unt1tled
()
Ответ на: комментарий от comp00

как это можно в с++ с указателями

кроме как для спичкоэкономистов - не нужно

java более допиленная

11 стандарт сильно поменял ситуацию

Но С++ красивее.

но вот это как было враньем, так и осталось

lazyklimm
()
Ответ на: комментарий от ihappy

Так и тут. С++ плохой, потому что на нем надо писать правильно.

с++ плохой, потому что на для того, чтобы на нём писать правильно, нужно потратить дохрена времени, и не далеко не факт, что это оправдает себя.

Да, кто-то уже потратил лучшие годы своей жизни, некоторые даже умудряются успешно зарабатывать бабло. С другой стороны - я знаю питониста с двухлетним стажем, зарабатывающего на уровне(приблизительно, так как о зарплатах в некоторых местах говорить не принято, но по вакансиям оценить можно) плюсовиков со стажем в несколько раз больше.

lazyklimm
()
Ответ на: комментарий от lazyklimm

Холиварненько) Какие тогда есть альтерантивы? Чтобы было платформо-независимым конечно.

ihappy
()
Ответ на: комментарий от lazyklimm

на спичках экономия

А где-то далеко-далеко на Плюке спички это главная ценность. Я о том что для хелловорлда 20 процентов и не важно, а в каких то крупных проектах стремятся ускорить работу системы, радуясь и 5%

comp00
()

ООП начинается с задач, и разбиение задачи на сущности и обьекты

если у вас нет задач для решения, то тупо читать какие то книги - толку не будет

anonymous
()
Ответ на: комментарий от PolarFox

ООП — это когда состояние и функции с ним связанные таскаются рядом. Остальное — свистоперделки.

Плюсую, а то, не давая четкого определения, лепят из ооп чуть ли не абстракцию (уровня инкапсуляции etc), а де факто - всего лишь один из подходов.

anonymous
()
Ответ на: комментарий от ihappy

!!!Прочитай это сообщение очень внимательно!!!

Сначала научись читать не по диагонали и понимать прочитанное. Может после этого такие как я начнут приносить тебе пользу в своих коментариях.

Так и тут. С++ плохой, потому что на нем надо писать правильно.

Никто (не я уж точно) не говорил, что плюсы плохие. Я сказал, что он может ТОПИКСТАРТЕРА научить плохому. Из твоих постов было ясно, что ты знаком с языком.

«неокрепшую психику», «простреленных ног» и тп и тд. То есть ни какой конкретики. Зачем тогда было начинать?

Научить плохому С++ может именно потому, что там можно стрелять себе в ноги. В ява - нельзя. Это и есть конкретика, которую я имел в виду.

unt1tled
()
Ответ на: комментарий от AIv

В «понять суть ООП» ЯП вообще не имеет значения.

Имеет. ООП надо изучать на языке, который кроме этого самого ООП никаких парадигм не проповедует, а уж темболее отступов :D

unt1tled
()

Парадигмы ООП:

  • инкапсуляция
  • наследование
  • полиморфизм

В современных ООП-языках все парадигмы понимаются по-своему. Единства реализации нет.

Механизм обмена сообщениями между объектами извращён до неузнаваемости.

iZEN
()
Последнее исправление: iZEN (всего исправлений: 1)
Ответ на: комментарий от unt1tled

Я как раз прочитал все правильно. Это у тебя, хорошее учит плохому. Парадокс.

Из твоих постов было ясно, что ты знаком с языком.

Лично С++ сейчас изучаю. Поэтому и спрашиваю.

Научить плохому С++ может именно потому, что там можно стрелять себе в ноги. В ява - нельзя. Это и есть конкретика, которую я имел в виду.

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

ihappy
()
Ответ на: комментарий от AIv

Суть таже, похапе/с++/другой ЯП плохой, потому что руки крюки у программиста. Как то так, это все звучит.

ihappy
()
Ответ на: комментарий от ihappy

Это у тебя, хорошее учит плохому. Парадокс.

Плюсы не хороши и не плохи. Это инструмент. Сложный, профессиональный, поэтому плох для «зеленых».

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

Ты все правильно понял. К слову: любой большой проект на любом языке монструозен и требует гигабайты памяти. На яве пишутся именно большие и мощные вещи, потому что похоронить все (под грудами говна из плюсов) гораздо сложнее.

unt1tled
()

Уважаемый топикстартер. Ты выбрал не совсем подходящий ресурс для того, чтобы «понять суть ООП». Вернее, совсем не подходящий.

Дело в том, что /development/ ЛОРа не является сообществом профессиональных разработчиков. Профессионалы (то есть те, кто владеет технологиями на высоком уровне и зарабатывает на жизнь разработкой ПО) здесь в подавляющем меньшинстве и, я бы сказал, на птичьих правах. Абсолютное большинство — это тролли, диванные теоретики, доморощенные гуру, форумные трепачи, лисперы, хаскелисты и прочие ёбнутые на голову адепты маргинальщины, фрики, школьники, хипсторы, петросяны, IT-эзотерики, IT-шарлатаны, IT-небыдло и так далее. Здесь в воздухе густо пахнет мамкиным борщом и нонконформизмом. Здесь модно поливать говном все практические, промышленные технологии и подходы (к которым, несомненно, относится и ООП). Поэтому вместо экспертного мнения ты получишь здесь 100500 тонн говна на ООП и 9000 советов учить лисп, хаскель, Smalltalk, Brainfuck, Agda2 и Coq. Разве это то, чего ты хочешь?

Лично я бы советовал обратиться к англоязычным сайтам и литературе. По теме — многое можно было бы посоветовать, если бы ты назвал язык программирования, которым пользуешься.

anonymous
()
Ответ на: комментарий от r0ck3r

дело не в языке...какой бы язык ни был, не главное ли понимание структуры программы? То есть, что взять за класс, какие выделить методы и свойства, и как организовать иерархию? Мне важно понять именно принципы ООП.

«что взять за класс, какие выделить методы и свойства, и как организовать иерархию» — это, скорее, задача архитектора. «Принципы ООП» состоят не совсем в этом. Принципы ООП — это, как было уже сказано выше, это инкапсуляция, наследование и полиморфизм. Может, ты можешь привести постановку задачи, которую ты пытаешься решить? Возможно (и даже лучше) в сильно упрощённом виде. А мы бы тебе попробовали подсказать, как твоя задача ложится на парадигму ООП. Ведь лучше всего осваивать это на конкретном примере.

anonymous
()
Ответ на: комментарий от iZEN

В современных ООП-языках все парадигмы понимаются по-своему. Единства реализации нет.

Это не совсем верно. В промышленных или «мейнстрим» языках (Java, C++, C#) единство есть. Python пытается их догнать, и, надо сказать, небезуспешно. Несколько особнячком стоят JavaScript и Ruby. По-настоящему «нет единства» только в маргинальных языках, но они, разумеется, не заслуживают внимания.

Механизм обмена сообщениями между объектами извращён до неузнаваемости.

Но ведь это был ранний, экспериментальный и наивный подход к реализации ООП. Он выполнил свою функцию и отжил своё. Его заменили более эффективными решениями. Что не так?

anonymous
()

а я то думал что сейчас с этими знаниями рождаются

rimsleur
()
Ответ на: комментарий от unt1tled

Плюсы не хороши и не плохи. Это инструмент. Сложный, профессиональный, поэтому плох для «зеленых».

Смотри, еще немного и будешь говорить противоположное. Но сложный и плохой, это разве синонимы?

Ты все правильно понял. К слову: любой большой проект на любом языке монструозен и требует гигабайты памяти. На яве пишутся именно большие и мощные вещи, потому что похоронить все (под грудами говна из плюсов) гораздо сложнее.

Ха. Это смешно читать. Ото, все что пишется на яве глючное, тяжелое и медленное. Спасибо, я буду теперь знать почему. Потому, что программисту лень писать правильно и он пишет как попало на яве.

ihappy
()
Ответ на: комментарий от ihappy

опять все переврал, попетросянил и продолжил флеймить
уйди, ты скучный

unt1tled
()
Ответ на: комментарий от comp00

для хелловорлда 20 процентов и не важно

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

а в каких то крупных проектах стремятся ускорить работу системы, радуясь и 5%

про корень всех зол слышал?

lazyklimm
()
Ответ на: комментарий от ihappy

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

далеко не всё. Можешь, например, на tuxguitar посмотреть

Но зато, ничего плохому не научит.

а в первом классе учат вместо умножения складывать, экие негодяи!

lazyklimm
()
Ответ на: комментарий от unt1tled

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

anonymous
()
Ответ на: комментарий от anonymous

Когда изучал ява отвратила уже хелловорлдом.

Когда папуас пытался изучить английский, он его отвратил уже фразой «My name is Makatumba».

anonymous
()
Ответ на: комментарий от unt1tled

Нет, С++ нормальный язык. То что лично вы пишете врайтонли код говорит лишь о вашем неосиляторстве и не очем более. Ну или просто сказок наслушались. Пишите на ява - ваш уровень не позволяет давать вам в руки полноценные инструменты.

anonymous
()
Ответ на: комментарий от lazyklimm

далеко не всё. Можешь, например, на tuxguitar посмотреть

Большинство. А этого хватит. Да и пример плохой, редактор простенький.

а в первом классе учат вместо умножения складывать, экие негодяи!

Умножение по сути и есть складывание.

ihappy
()
Ответ на: комментарий от ihappy

Большинство

это не все

редактор простенький.

почти на уровне guitar pro (ну, не считая синтеза), а жрёт сравнимо

Умножение по сути и есть складывание.

сложи мне π×e

lazyklimm
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.