「これは参考になるよ」というような、
オブジェクト指向プログラミング学習向けのサンプルプログラムを教えていただけませんか?
言語はDelphiです。
Delphiに限らず、他言語(Java、C#、C++あたり)でも結構です
(移植しますので、出来ればCUI、GUIが少ないものが理想です)
よろしくお願いいたします。
Delphiにてオブジェクト指向プログラミングを学んでいます。
書籍等で、基本的なことは学びました。
理解度およびスキルを上げるために、実際にプログラミングしたいと思います。
(入門書を利用してや、
自分で考えながらのテスト的なプログラミングには限界を感じてまして^^;)
No.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という言語を見ることが出来るのではないかと思います。
回答、ありがとうございます。
>オブジェクト指向において、一番重要なのは、ある問題を解決する為に、
>その問題領域をいかにオブジェクトとして表現できるようになるかです。
非常に重要な点ですね。
忘れていた、もしくは理解していなかったのかもしれません。
>※個人的なお奨めは、目的がオブジェクト指向プログラミングなのであれば、
>一度JavaかRubyに浮気することです。
Delphiは言語仕様が分りやすく、Windowsプログラミングが他言語より比較的に楽という
理由から、中心に扱いたい言語としていました。
また、書籍から得た知識ではありますが、(絶対にとは言わないけれども)
「Delphiを学ぶなら、オブジェクト指向プログラミングは必要」という理由もありました。
「目的がオブジェクト指向プログラミングなのであれば、…」と言われますと、
どうなのか?疑問です。(最近、言語マニアと化している私は、)そもそも自分の
やりたいことはなんなのかと考えたりします。
ただ、オブジェクト指向プログラミングを学んでいると楽しいです。実際、Javaでの
オブジェクト指向プログラミングはどうなのか?と調べているときも楽しく感じました。
ですから、Javaを「浮気」相手としたいと思います(^^)
正直なところ、変な質問かな?と取り消そうと考えていました。
そこへ今回の回答をいただきました。
的確な指摘、対策方法をうれしく思いました。
ありがとうございました。
うまく、文章がまとまりませんでした。
感謝の意が伝わっていればいいのですが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java オブジェクト指向プログラミングの実践本を紹介してください 3 2022/09/19 04:56
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/05/21 02:41
- その他(自然科学) 科学技術計算の仕事について 2 2023/02/04 18:09
- C言語・C++・C# 参考にいろいろとc言語、c++言語プログラミングでレジストリーを操作したいのですが、無料配布のc++ 3 2022/12/22 01:49
- 書類選考・エントリーシート 僕はコンピューターの専門に行こうと思ってます。志望理由こんな感じでいいですかね? ①進学先に選んだ理 2 2022/09/11 17:41
- その他(プログラミング・Web制作) プログラミングって本来数学的な計算をする為のものではないのですか? 学校で配られたFortran90 11 2022/08/25 22:14
- C言語・C++・C# 画像の画素値を変えるC言語のプログラムで指定された画像の中に白い三角形を右上に表示させるにはどのよう 3 2022/10/30 01:16
- IT・エンジニアリング 21歳の大学3年男です。 現在プログラミングを習得できるところに入ろうか悩んでます。 そのスクールは 3 2022/06/21 00:43
- 高校受験 中学校3年生です。 今回の前期中間のテストが9教科 900点中364点でした。 僕は高校に進学を取る 3 2022/06/25 01:56
- 大学・短大 早稲田大学基幹理工学部で使用する教科書 4 2022/11/13 20:55
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
楽しくて最高のプログラミング...
-
rpa化する言語としてら何があり...
-
Pythonって何を意識した言語な...
-
最新のプログラム言語を学ぶに...
-
Int('1234') で、strをかんたん...
-
質問失礼します。 プログラム言...
-
プログラミング言語の制作方法...
-
C言語とhtmlの違いを どな...
-
C++における継続行
-
UNITY Float型の接尾辞fって
-
Delphiに詳しい方助けてくださ...
-
プログラミング言語について
-
CとC++は別物なんですか?
-
VBSでDim、Private、Publicの違い
-
F#って何??
-
チューリング完全とは何か?
-
accessという言語らしいのですが
-
引用符と二重引用符
-
初めてのプログラミング言語は...
-
今後必要とされる開発言語
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語、C+、C++、C#の違い
-
楽しくて最高のプログラミング...
-
Pythonって何を意識した言語な...
-
C言語とhtmlの違いを どな...
-
プログラムに書かれる"%"記号の...
-
COBOLでのNOT = の AND条件
-
C++ ってなんて読む?
-
質問失礼します。 プログラム言...
-
プログラミング言語の制作方法...
-
UNITY Float型の接尾辞fって
-
C言語って古いですか?
-
Int('1234') で、strをかんたん...
-
COBOLで文字タイプを数字...
-
TO_CHARで小数点以下がある場合...
-
最新のプログラム言語を学ぶに...
-
C++における継続行
-
vbaとc言語の関連性について
-
VBScriptで引数を省略したい場合
-
VBSでDim、Private、Publicの違い
-
HTMLとC++で、どんなホームペー...
おすすめ情報