- 締切済み
クラス・メソッド・プロパティについて
質問の閲覧ありがとうございます、是非回答お願い致します。 前々からプロミングに興味があったのですが、敷居が高そうという勝手な思い込みから、手を出せずにいましたが 先週ごろからVB.netの方を少しずつではありますが勉強し始めました。 色々なサイトを参考に実際キーボードを叩きながら四苦八苦している最中なのですが、クラス(インスタンシング)・メソッド・プロパティで壁にぶち当たりました TextBox1.AppendText("Hello!!") PictureBox1.Image = Image.FromFile(File1) 上記のコードでいう「AppendText」はメソッド「Image」はプロパティ だと思うのですが、 1:クラス名(orインスタンス)+メソッド 2:何らかの値+メソッド 3:特殊なパターン(MsgBoxなど) これは上記のどのパターンにあてはまるのでしょうか (TextBoxやPictureBoxはクラスとして扱われる・・・?) また、インスタンス化しないと使用できないもの、またその逆の判別が中々付きません 共有・非共有メンバと書かれていたりするのですが、明確な意味がわからず頭を悩ませています 例として、 Graphicsのdrawlineを使用する時にはインスタンス化しなくても描画が可能であるのに、乱数を範囲指定で出したい時にはインスタンス化が必要 など、どちらも値を指定して・・・という内容なのに・・と思ってしまいます 文がわかりにくく、質問の内容も幼稚で申し訳ありませんが、 馴染みのない私にとっては難関なので是非とも 質問内容も含め、クラス(インスタンス)、メソッド、プロパティについてご教授ください、よろしくお願い致します
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- OKbokuzyo
- ベストアンサー率43% (130/296)
オブジェクト指向プログラミングの基本となりますが 端的に言えばクラスというのは型でインスタンスがその実体です。 例えば「車」をオブジェクト指向で捉えると 「車」がクラスです。 「車」には質問者様が所有されている「車」もありますし、 隣人が所有する「車」もあるでしょう。 このように実体のある「車」がインスタンスです。 「車」には「ナンバープレート」や「色」「車種」などインスタンス毎に様々な情報を持ちます。これが「プロパティ」です。 「車」は「走る」ことができます。どんな車でも走らない車なんて無いでしょう。 このようにクラスの行うことができる操作を表したのが「メソッド」です。 >上記のコードでいう「AppendText」はメソッド「Image」はプロパティ だと思うのですが、 >(TextBoxやPictureBoxはクラスとして扱われる・・・?) その理解で概ね良いです。 >1:クラス名(orインスタンス)+メソッド 「クラス名.メソッド名」で呼び出せるメソッドは共有メンバです。 また、「クラス名.プロパティ」で呼び出せるプロパティも共有メンバです。 「インスタンス.メソッド名」で呼び出せるメソッドは非共有メンバです。 また、「インスタンス.プロパティ」で呼び出せるプロパティも非共有メンバです。 >2:何らかの値+メソッド メソッドを持つ以上、「何らかの値」というのは上記で示した通り必ずクラスまたはインスタンスになります。 >3:特殊なパターン(MsgBoxなど) 特殊なパターンをどう捉えるかですが 少なくともMsgBoxはMicrosoft.VisualBasic.Interactionクラスのメンバであり、特殊でもなんでもありません。 ※ 余談ですが、特殊なパターンなら私は「this」や「My」といったキーワード(予約語)を思い浮かべます。 >Graphicsのdrawlineを使用する時にはインスタンス化しなくても描画が可能であるのに、(‥略) インスタンスの持ち物というよりはクラスの持ち物と考える場合や 一般的な(関数的な)機能を提供するだけなら共有メンバとする傾向があります。 しかしプログラム的にはSharedが付いているかいないかというだけの話にすぎません。 すなわち、クラスの作り手のセンスに完全に委ねられており、 「なぜこれは共有メンバなの?」といった疑問にはあまり意味がないと思います。
お礼
とても丁寧な回答ありがとうございます 現段階で、それほど理解にずれのがあるわけではなかったようでホッとしています ある程度のラインを引いて、その部分でそうなるものと理解する といった勉強法も必要だと感じました、性格上難しく考えすぎてしまうようで・・・・