Ява хорошее начало для изучения ООП? [закрыто]

У меня есть хороший учитель, который понимает ООП. Однако язык, которым он является экспертом, - это Java, и я не хочу изучать Java.

Мой вопрос: думаете ли вы, если я изучу ООП с использованием Java, я буду тратить свое время? И вы думаете, что хорошо начать изучать ООП?

6 голосов | спросил Goma 18 J0000006Europe/Moscow 2011, 21:48:30

6 ответов


22

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

Принципы ООП являются прочными, и вы можете без каких-либо затруднений провести правильные сравнения между его вариантами дизайна и другими популярными языками ООП, такими как C ++ и C #. Более того, шаблоны проектирования, применяемые в ООП, почти всегда имеют версию Java.

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

ответил celebdor 18 J0000006Europe/Moscow 2011, 22:04:49
13

Прямо сейчас, я бы, наверное, сказал «нет». Например, Java запрещает множественное наследование - потому что реализация немного нечиста. В каких-либо ООП-теориях ничего не говорится о том, что нельзя допускать множественное наследование - это Java, а не ООП. Множественное наследование является вполне допустимой частью ООП, о которой вы никогда не узнаете об использовании Java.

Что еще более важно, я бы не использовал Java для обучения ООП, потому что у вас создалось впечатление, что ООП решает каждую проблему, и это молот, и все это гвоздь, когда на самом деле общее программирование и функциональное программирование имеют значительные преимущества в определенных ситуациях. Изучение ООП заключается не только в том, что он может использовать в ситуации X или Y, но также и при использовании .

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

Если вы хотите узнать о ООП, в том числе, когда это не так жарко или когда его реализация выходит за рамки очевидного, и вы не хотите знать обо всех специфичных для Java вещах, которые они добавили, тогда Java isn Правильная вещь. C ++ был бы намного лучшим выбором - он не боится предложить вам альтернативные парадигмы и позволит вам сделать выбор. Если вы изучите C ++, то вы узнаете многое, гораздо больше, чем если бы вы изучили Java, и вы не будете путаться между ориентацией объектов и управлением памятью, или ориентацией объектов и ссылкой на семантику значений и т. Д. Конечно, это также сложнее, поэтому вы получаете то, что вы платите здесь.

Разумеется, недооценивать преимущество фактического учителя нельзя.

ответил DeadMG 18 J0000006Europe/Moscow 2011, 23:05:01
3

Я видел первые аспекты реальности объектной ориентации в C ++. После того, как я перешел на Java, и теперь я поклонник C #.

Собственно, я слышал, что SmallTalk - это реальный объект, но я ничего не могу сказать для себя.

Я согласен с celebdor, что хорошие примеры из книг моделей и бла-бла на Java. например, Мартин Фаулер - поклонник Java, и вы не можете вообще пропустить его книги.

В конце концов, да, не пропустите хорошего учителя для Java. обучение не так уж плохо:)

ответил Maziar Taheri 18 J0000006Europe/Moscow 2011, 22:10:51
3

Во-первых, пока Java поможет вам изучить ООП, вам это не нужно . Также. Java - это не только OOP , но и универсальный, функциональный и структурированный. Теоретически говоря, Большинство языков ООП имеют комбинацию других парадигм, но ООП является формой основного /доминантного стиля .

Секунды, вы можете узнать ООП с любого языка, который его поддерживает. Сказав это, я бы рекомендовал выбрать «чистый ООП», потому что вы могли бы объединить омы ООП с идиомами других парадигм (многопарадигма). Примеры «чистых» популярных языков ООП, которые помогут вам сохранить фокус OO, могут быть Scala и Ruby .

Наконец, вы можете выбрать книгу агностического языка по объектно-ориентированному анализу и дизайну (OOAD). Это поможет вам отключиться от ООП, ориентированного на язык, и подумать о более общем понятии. Легкая забавная книга (она может быть слишком java-ориентированной для вас), чтобы читать для меня была http: //www.amazon.com/Head-First-Object-Oriented-Analysis-Design/dp/0596008678

Армандо.

ответил Armando 19 J0000006Europe/Moscow 2011, 01:30:16
1

Я изучил Java после того, как узнал VB.NET. Однако мне жаль, что я не изучил Java, хотя, по-моему, я лучше понял основные концепции OOP на Java. И Java (или C #) - следующий логический шаг, если вы уже работали на языках C.

ответил Techgration 18 J0000006Europe/Moscow 2011, 23:05:19
0

Java - очень хороший язык ООП, поэтому это был бы прекрасный выбор для изучения принципов ООП. Принципы, которые вы узнаете, будут применимы практически во всех других языках ООП.

Одним из преимуществ Java от перспективы обучения является относительно простой синтаксис, поэтому вы можете сосредоточиться на изучении основных принципов ООП, а не на чрезмерной чрезмерной сложности языка (что может быть проблемой с C ++ , например, который содержит гораздо более сложные функции).

Кроме того, Java является хорошим языком в своем собственном праве. Игнорируйте «naysayers», у которых есть склонность к bash Java из-за небольшого многословного «старомодного» синтаксиса и отсутствия модных функций - это высокая производительность, удобство обслуживания, портативность, популярность и лучшая экосистема библиотек и инструментов любого языка .

Таким образом, мое личное предложение - изучить ООП с помощью Java, тогда, если вы действительно почувствуете потребность в более «модных» языках позже, вы сможете легко подобрать Clojure, Groovy или Scala (которые имеют преимущество, основываясь на Java-платформа)

ответил mikera 18 J0000006Europe/Moscow 2011, 23:09:51

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132