- ベストアンサー
言語C#のクラスとインスタンスを分かりやすく・・
言語C#のクラスとインスタンスを分かりやすく教えてください。 C#を使い簡単な作図機能をもったアプリを作りたいと思っています。 私が自由自在に使いこなせる言語はFortran,Basic(VBではありません)です。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
クラスというのは設計図 インスタンスはその設計図を基に作られた実体 という説明をよく見ます。 以下、例 四角形を表現するためのプロパティ(x座標, y座標, 幅, 高さ)を 二つ分用意するとしたら、 クラスを用いない場合には int block1_x, block1_y, block1_width, block1_height; int block2_x, block2_y, block2_width, block2_height; こんな感じになると思います。 クラスを使うと class Block { public int x, y, width, height; } とクラス(設計図)を用意しておき、 Block block1, block2; とするだけで済みます。 修正する際にも設計図を修正すれば全ての実態に反映されるので非常に楽です。 面積を求める場合 クラスを使わない場合 int getBlockArea(int width, int height) { return width * height; } となり、使用する際には引数に色々な名前の引数を渡し、 コードが複雑化しますが、 クラスの場合はクラスの中で、 public int getArea(){ return this.width * this.height; } と宣言しておけば インスタンス名.getArea()で簡単に呼び出すことができます。 実際はプロパティを使用したり、継承などがありもう少し複雑に作るようになると思いますが、 単純にいえば上のような感じになると思います いろいろメリットがあるので是非調べてみてください。
その他の回答 (2)
- kmee
- ベストアンサー率55% (1857/3366)
知ってる言語に置き換えて、という気持ちもわからなくはないですが.... クラスやインスタンスといったものは、オブジェクト指向という考え方から来ているものです。 旧来のFortranやBasicではサポートされていない手法です。 一度、参考書なり解説サイトなりで「オブジェクト指向」について読んでみてはどうでしょうか。 もちろん、C#で旧来式のベタ書きプログラムを作ることもできます。 # 逆に、旧来のFortranやBasicにオブジェクト指向の考えを持ち込むことも不可能ではありません。 しかし、言語というのは、その思想に近い形のプログラムがしっくりくるように設計されているものです。 同じベタ書きプログラムを作るにしても、バックボーンは知っておいたほうがよいでしょう。
お礼
仰るとうりだと思います。 御回ありがとうございます。
- oktuburero
- ベストアンサー率22% (102/446)
Fortranにも構造体があるはずですが あれと似た位置関係にあります。 構造体を定義する場所するのがクラスでその構造体を使えるように宣言する行為をするのがインスタンスにそれぞれ該当すると考えれば良いと思いますよ。
お礼
ご回答ありがとうございました。
お礼
丁寧親切なご回答ありがとうございました。 勉強してみます。