- 締切済み
オブジェクト指向を理解できない。
友人に「オブジェクト指向思考を理解できない奴に満足なJavaScriptのプログラムは組めない」と言われショックを受けています。 もちろん言葉だけは知っていますし、今現在ネットでいろいろ調べているところです。 その友人には「とりあえず分かることからやっていろいろ組んでいるうちにどこかでいきなり理解できる」とも言われたのですが…皆さんそうなのでしょうか?現在オブジェクト指向を理解しているという方は、いったいどういったところからそれに至ったのでしょうか?
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- ken-etsu
- ベストアンサー率46% (55/119)
ANo.4の様に誤解されていることが多いので、念のため補足しておきます。 JavaScriptは、データ隠蔽がサポートされていない等、オブジェクト指向言語としてJavaより劣る部分があるのも事実です。 しかし、JavaScriptの方が優れている部分もあります。例えば、Javaではクラスは拡張可能ですが、オブジェクト(インスタンス)は拡張不能です。一方、JavaScriptでは、オブジェクト(インスタンス)が拡張可能です(参考URL参照)。 JavaScriptは、その名前のため、また、HTMLの補助のみに使う人が多いため、不当な評価を受けています。JavaScriptとJavaは、同じオブジェクト指向でも方向性が違うと言うのが正当な評価でしょう。ご友人はその辺りを知っていて、助言されたのではないかと想像します。
- taukun
- ベストアンサー率43% (20/46)
こんばんわ。 今ちょうど会社でPGを知らない人にPGを教えています。 私はJavaをやっていたため、PGの基礎よりまずこのオブジェクト指向とは?から教えました。 オブジェクトとは、直訳すると物です。 PGをはじめ、人って何か既存にあるものをコピペして使うといった使い方をされる方がほとんどだと思います。(偏見ですかね?) 1つ2つぐらいならともかく、複数回使用するもので全く同じ内容なのにいくつものファイルに書かれているのは面倒くさいですよね?もし仮にそれに修正が入ったら。。。 同じやつを1つにまとめればいいじゃんってことで、関数やクラスを作成します。同じような関数や似たような処理をまとめて1つのクラスを作る。そうすれば、こういう処理はここを見れば分かるし、機能変更したりするときでもそこだけを修正するだけなので便利ですよね。 MVCでいうMです。 同じやつを複数作らない、わかりやすいようにまとめる、使いたいときだけ使い、使わなければ別にそのまま。それがオブジェクト指向の1歩だと思います。 誤解があるようですが、オブジェクト指向がわからなくてもJavascriptは全然組めますよ。Javaは無理ですが。。。 世間一般でいうJavascriptはHTMLの補佐的なイメージですが、下の方の意見のように >#オブジェクト指向言語としては、ある意味Javaより上かもしれません。 さすがにこれはないですが、Javaに近づくぐらいのJavascriptを作ることも可能ということです。もちろんオブジェクト指向は必須です。 PGの数をこなしていけば、自ずとわかると思いますよ。
お礼
ありがとうございます。 今日初めて『プルダウンメニューの連動』を自作(コピーではなくリファレンスを見て1から)できて、少しばかりオブジェクト指向への理解に前進できた気がしています。
- cametan_42
- ベストアンサー率62% (165/265)
参考文献: なぜArcはとりたててオブジェクト指向でないのか: http://practical-scheme.net/trans/noop-j.html SmallTalk: http://ja.wikipedia.org/wiki/Smalltalk Eiffelに学ぶ「正しいオブジェクト指向」: http://itpro.nikkeibp.co.jp/article/COLUMN/20070626/275990/
お礼
ありがとうございました。
- ken-etsu
- ベストアンサー率46% (55/119)
JavaScriptは、一般に言われているほど低級な言語ではなく、ユニークなオブジェクト指向言語なので、そのご友人の言うことは正しいと思います。 #オブジェクト指向言語としては、ある意味Javaより上かもしれません。 ただ、オブジェクト指向という考え方は、ある程度の規模のプログラムをいくつか実際に組んでみないと有難味は実感できないと思います。そういう意味でも、ご友人の言う「とりあえず分かることからやっていろいろ組んでいるうちにどこかでいきなり理解できる」は正しいように思います。
お礼
ありがとうございます。私が考えている以上に『オブジェクト指向とは何か』という問いはハードルが高いということなんですね。 参考にのせてくださったサイトも見ていました。他にもいろいろ見ているのですが、オブジェクト指向を踏まえた解説をしている(らしき)サイトを読んでプログラムを組んでみると、確かに理解が少し深まった気がします。友人の言葉を信じてまだまだ頑張るしかないのですね。
- buriburi3
- ベストアンサー率44% (353/792)
その友人はJavaScriptとJavaの違いが理解できていない半可通のような気がしますが… オブジェクト指向は突然出てきた全く新しい概念ではなく、プログラミングの歴史の中で問題点を解決する為の一つの方法論として出てきたものです。 オブジェクト指向自体は業務分析から適用することが出来る広い概念であるため、オブジェクト指向デザインとオブジェクト指向プログラミングを分けて考えないと「犬がワンで猫がニャンです」的な話がプログラミングにどう繋がるのか理解できないで終わってしまいます。 オブジェクト指向のパラダイムの意義を分かりやすく説明している書籍『オブジェクト指向でなぜつくるのか』がありますので読んでみると良いです。
お礼
半可通かどうかは私には分かりませんね。ただ私よりJavaScriptを理解しているのは間違いありません。 オブジェクト指向についての解説ありがとうございます。書籍の紹介も参考になります。ただ質問に対しての回答はしていただけなかったのが残念ですが。
お礼
ありがとうございます。 私も、JavaScriptはプログラムの中でもお手軽な部類に入ると思っています。でも不当という意味ではありませんよ。というのも、HTMLの中に放り込むだけで実行でき、なおかつ場を選ばないということで、性能云々とは別次元で優秀だと思っているんです。 さて、勝手ながらこの場をお借りしますが、質問本来の回答をなかなかいただけないのでここで締め切らせていただきます。 いろいろ勉強させていただきありがとうございました。