プロが教えるわが家の防犯対策術!

「これは参考になるよ」というような、
オブジェクト指向プログラミング学習向けのサンプルプログラムを教えていただけませんか?
言語はDelphiです。
Delphiに限らず、他言語(Java、C#、C++あたり)でも結構です
(移植しますので、出来ればCUI、GUIが少ないものが理想です)
よろしくお願いいたします。

Delphiにてオブジェクト指向プログラミングを学んでいます。
書籍等で、基本的なことは学びました。
理解度およびスキルを上げるために、実際にプログラミングしたいと思います。
(入門書を利用してや、
自分で考えながらのテスト的なプログラミングには限界を感じてまして^^;)

A 回答 (1件)

回答がついていないようなので、一応回答します。


残念ながら、そのような目的に最適なサンプルプログラムなるものには心当たりがありません。

しかしながら、そもそもオブジェクト指向プログラミングを学ぶ為に実際のプログラミングをしたいのであれば、サンプルをいくら見ても無駄だと思います。

オブジェクト指向において、一番重要なのは、ある問題を解決する為に、その問題領域をいかにオブジェクトとして表現できるようになるかです。
従って、学習用のテーマを自分で決めてというのではなく、そもそも実際に役にやつものや、作ってみたいものを決めて、それを実現する為にコーディングしてみるというのでなければ、何ら有用なものは身につかないのではないかと思います。
そして、行き詰まったときにこそ、他人の作ったプログラムというのが、初めて意味を為すのだと、私は思います。

こういう処理をする際のサンプル、こういう結果を出す為のサンプルというのであれば、多分あげてくれる人はたくさんいたのでしょうが、ここまで回答がついてないのは、そもそもオブジェクト指向を学ぶのに最適なプログラムなんていう漠然としたものが非常にあげにくいのもあるでしょう。

私は、Delphi(というよりObjectPascal)については良く知らないのですが、同じオブジェクト指向といっても、言語仕様によるできること出来ないことの差はことの他大きいです。Javaで作ったプログラムを、C++へ移植するとか、その逆とかは、不可能ではありませんが、そう簡単でもありません。
クラスとインスタンスの基本的な概念は良く似てても、Javaでは多重継承はできません。Perlのオブジェクト指向対応は、(あくまで個人的な主観では)中途半端で、わかりにくく、少なくともクラス思考の他の言語とは、共有できるノウハウが少ないような気がします。VisualBasic6も、表向きにはオブジェクト指向対応なる文言がありましたし、クラスを定義してインスタンス化できたからといって、私の中ではあれば、オブジェクト指向言語とは到底呼べないと思っています。私は普段Rubyを使ってますが、仕事ではJavaもC++も使う機会があります。場面によって言語の選択は変わりますが、選択はそれなりに慎重に行います。理由は、一度作り始めてしまったら、他言語への移植はとても大変だからです。

さて、私の知る限りPascalは手続き型言語の代表格です。
後付けのオブジェクト指向化は、言語仕様を破綻させないように実装するのが非常に難しいのは、PerlやVBを見るまでも無く明らかなんですが、どの程度の表現力があるか分からない以上(質問者さん自身、オブジェクト指向初心者である以上、その評価は無理でしょうし)、他言語のサンプルをいきなり使うのはとてもリスキーだと思います。

まずは、具体的に作りたいものを考えましょう。何かユーティリティの類でもいいし、ゲームでもいいです。そして、それを自分なりにオブジェクト指向チックに設計して、作ってみることです。そして、デザインパターンの本を一冊買ってきて、設計に詰まったら、それを読んでもう一度考えましょう。順番は前後しても問題ありませんが。一般的なデザインパターンの実装も、JavaにはJavaのC++にはC++なりのやり方があります。DelphiにはDelphiなりのやり方があるのではないでしょうか。

※個人的なお奨めは、目的がオブジェクト指向プログラミングなのであれば、一度JavaかRubyに浮気することです。お手軽さ感ではRubyの方がいいかもしれませんが。その上でDelphiに戻ってくれば、より広がった視野でDelphiという言語を見ることが出来るのではないかと思います。
    • good
    • 0
この回答へのお礼

回答、ありがとうございます。


>オブジェクト指向において、一番重要なのは、ある問題を解決する為に、
>その問題領域をいかにオブジェクトとして表現できるようになるかです。
非常に重要な点ですね。
忘れていた、もしくは理解していなかったのかもしれません。


>※個人的なお奨めは、目的がオブジェクト指向プログラミングなのであれば、
>一度JavaかRubyに浮気することです。
Delphiは言語仕様が分りやすく、Windowsプログラミングが他言語より比較的に楽という
理由から、中心に扱いたい言語としていました。
また、書籍から得た知識ではありますが、(絶対にとは言わないけれども)
「Delphiを学ぶなら、オブジェクト指向プログラミングは必要」という理由もありました。
「目的がオブジェクト指向プログラミングなのであれば、…」と言われますと、
どうなのか?疑問です。(最近、言語マニアと化している私は、)そもそも自分の
やりたいことはなんなのかと考えたりします。
ただ、オブジェクト指向プログラミングを学んでいると楽しいです。実際、Javaでの
オブジェクト指向プログラミングはどうなのか?と調べているときも楽しく感じました。
ですから、Javaを「浮気」相手としたいと思います(^^)


正直なところ、変な質問かな?と取り消そうと考えていました。
そこへ今回の回答をいただきました。
的確な指摘、対策方法をうれしく思いました。
ありがとうございました。

うまく、文章がまとまりませんでした。
感謝の意が伝わっていればいいのですが。

お礼日時:2005/06/26 21:29

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