電子書籍の厳選無料作品が豊富!

Java言語などは「オブジェクト指向」が売り?だと思うのですが
素人や初心者が、ぶち当たる「オブジェクト指向の壁」って何だと思いますか?

暇な時にでも回答ください。

A 回答 (4件)

多分無い


思考停止状態でもプログラミングできるのがオブジェクト指向みたいなものです
まあこれは言いすぎかもですけどw

ただし、しっかりと理解をしようとすると
カプセル化、継承、ポリモーフィズムなど
オブジェクト指向の基本機能が奥が深すぎて難しい気がする

私自身、オブジェクト指向は普段使わないので、説明できないです。
なんとなくこんなものとふんわりと理解はしていますが
正確な説明や、使い道などが全然分かりません

このふんわりとした理解でも使えてしまうのが
オブジェクト指向の欠点
内部の動作を理解できていなくてもプログラムが組めてしまうので
予想外なバグに対応できない初心者が多いみたいです

オブジェクト指向から入ったプログラマーが嫌われがちなのはこういった背景があります
    • good
    • 1

オブジェクトどうしが互いにメッセージをやり取りすると言われても


互いのインスタンスを知り得なければメッセージのやり取りなどできません。
私は最初にここにハマったような記憶があります。

実際には、普通の実装はどうなっているかといえば、それぞれのオブジェクトが、
メッセージをやりとりする相手のインスタンスのポインタを、
コンストラクタ引数やsetterなどを介して、もらうわけです。

ちょっとメッセージをやり取りするだけの相手のポインタを
自身のインスタンスに保持しなければいけないというのは大いに違和感を覚えました。

"テレビ"クラスと"視聴者"クラスがあって
「視聴者がテレビのスイッチを入れたら、テレビは視聴者に映像と音声を届ける」
というケースを考えたとして
"テレビ"クラスは"視聴者"クラスのポインタを、
"視聴者"クラスは"テレビ"クラスのポインタを、
それぞれのクラスの属性として持たなければならない、というのは
現実世界のテレビと視聴者の関係を表現していないような気がしたのです。
    • good
    • 1

プログラミング言語全般に関しては、言語自体の実装をイメージできるだけのコンピュータの基礎知識、プログラミング言語自体の開発に必要な基礎知識の有無。


オブジェクト指向プログラミング言語の場合は、加えてオブジェクト指向プログラミング言語以前の例えばC言語の開発上の問題点の理解、クラス設計者に必要なスキルと知識、ガベージコレクションとメモリ解放タイミングの理解、リファクタリングのためのプロファイラーツールの活用力。
    • good
    • 1

>>素人や初心者が、ぶち当たる「オブジェクト指向の壁」って何だと思いますか?



1.オブジェクト指向について適切な説明をした書籍が少ないこと。(誤解を生む内容の本も多い)
2.COBOLやC言語、Basic等の昔からある言語に比べると、理解すべきことがずっと多いこと。
3.プログラミングに際して、事前にそれなりの設計が要求されること(CやBasicみたいに「とりあえず適当にコードを作っていく」のが難しい)

こんなところではないでしょうか?
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!