アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になります。C#を趣味で勉強している初心者です。本で勉強しているのですが、肝心のクラスのあたりから(メソッド、継承…)理解するのが難しくなりました。C言語の知識はあった方が理解しやすいのでしょうか?それとも今やってる本を理解しないで、進めていく方がいいのでしょうか?If Then,For~Next、配列などは大体、理解出来ましたが、クラスは急に難しくなった気がします。

質問者からの補足コメント

  • 勉強したいのですが、なかなか漠然としてどうしたら良いか、難しいですね。本を読んでみます。

    No.1の回答に寄せられた補足コメントです。 補足日時:2015/08/27 21:09
  • 回答有難うございます。少しづつC言語の勉強もしてみようと思います。

    No.2の回答に寄せられた補足コメントです。 補足日時:2015/08/28 18:54
  • 回答有難うございます。考え方としての「構造化プログラミング」について勉強した方が良い方法なのでしょうか?少し調べてみます。

    No.3の回答に寄せられた補足コメントです。 補足日時:2015/08/29 14:35
  • 返事遅くなり失礼しました。回答ありがとうございました。
    今は入門書でオブジェクト指向について勉強しています。
    割りと細かく書かれているのでゆっくり取り組んでみようと思います。

    No.4の回答に寄せられた補足コメントです。 補足日時:2015/09/03 15:49

A 回答 (4件)

> 回答有難うございます。

少しづつC言語の勉強もしてみようと思います。

今はやめておくべきだと思います。



○お勧めした「構造化プログラミング」は、プログラムの構造や考え方についてのものです。
特定の言語に特化した話ではありません。
言語によっては扱い辛いものもありますが、C#なら問題なく適用できます。


○オブジェクト指向を支援する仕組が、Cにはありません。
「オブジェクト指向」自体は、考え方であって、言語を問いません。
実際、C#で書いたプログラムは、最終的には「(クラスだの継承だのという機能が無い)機械語」で実行されるのですから。

とはいえ、機能の無い言語でオブジェクト指向のプログラムを書くのは大変です。

継承とかクラスとかを理解するために、継承やクラスの無い言語ではどうやったらよいかを考える
というのも面白い手法ですが、上級者向けです。


○ C# と C とは、文法や動作等がよく似ています。
// というか、 C#はC言語に似せています。
似てはいますが、「同じ」ではありません。

例えば、Cをマスターした人がC#を使うときなら、この「似ているけど違う」部分に注意すれば、Cの知識の多くが応用できて、C#のマスターへの近道になります。

ですが、一つマスターできないままもう一方を始めれば、「似ているけど違う」部分で混乱すること必須です。
結果、両方わからないまま、となりかねません。
この回答への補足あり
    • good
    • 0
この回答へのお礼

色々と詳しく有難うございました。

お礼日時:2015/09/03 21:12

趣味で勉強ということでしたら、じっくりオブジェクト指向に


取り組んでみてはいかがでしょう?

「構造化プログラミング」はコードを組織化して大きなプログラム(コード)を
作るための手法ですが、オブジェクト指向プログラミングは、構造化の
手法をある程度含みつつ、別のアプローチでの「データとコード」の
組織化を試みます。

私はバートランド・メイヤーの

 「オブジェクト指向入門(Object Oriented Software Construction=OOSC)」

から始めましたが、
今はもっと優しい解説本がたくさん出ていますので、言語に深入りする前に
一読しておくほうが良いと思います。

オブジェクト指向の効能や手法を C# でひとつづつ確かめてゆくのも
面白いと思います。

私が始めたころは、オブジェクト指向を C で学びましたが、それは
Cしかなかったからです。

やろうと思えば アセンブラでもできるのですが、オブジェクト指向のやり方と
実装方法を熟知していないとなかなか難しいです。

やっかいなのでやめといたほうが良いでしょう。
この回答への補足あり
    • good
    • 0

歴史的には、オブジェクト指向は、構造化プログラミングから発展して生れました。


ですから、構造化プログラミングを少しでも勉強してから進めるのはどうでしょうか。


従来の方法ではどうなるのか、それがオブジェクト指向を使うことでどう便利になるのか、あるいはならないのか
そんな目線が無いと、何故「継承」とかみたいなややこしい機能があるのか、理解できないかもしれません。
この回答への補足あり
    • good
    • 0

まず、オブジェクト指向を勉強しましょう。

この回答への補足あり
    • good
    • 0

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