重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

クラスの考え方がいまいち分からなくなりました。
車とか物体で良くサイトとかでクラスについて
書かれてあるけど、逆に分からなくなってきてしまいまして・・;
VBで実際のクラスを作成とかになるとどの部分が継承とか
っていうのは分かるんですが、クラス自体がこういうものだと
口で言えない自分がいまして・・
こういうものはクラス化したほうが良い一つの例だよ・・的な
事も教えて欲しいです。
まだ明確に分かっていないので・・

分かる方、ご教授よろしくお願いいたします。
サイトの紹介もありがたいです。

A 回答 (4件)

私もいまVB2005を勉強している最中です。

その質問よくわかります。私も書店にある本をかなり買いまくりました。今まではVBAしか使っていないので、VBを本格的に勉強して壁だらけです。本を数冊じっくり勉強すれば大体理解できますよ。VBでラベルとかテキストとかフォームとか、みんなクラスです。○○○.△△△こんな感じでオブジェクト.プロパティーみたいに何かを記述しますけど、たったこれだけでプログラムが作動するのは、実際には裏で複雑なコードが記述されていますよね。でも、使う人は○○○.△△△のみで動かすことができますよね。VBにはこういったオブジェクト・プロパティー・メソッドが沢山ありますが、クラスを作るということは簡単に言えば、クラスモジュールにこの目に見えない部分を記述しておいて、実際に使うときは、
○○○.△△△というようにして使えるようにすることだと思います。
VBに用意されている、ラベルとか色々な部品は間違っても誤動作しませんよね。クラスを作成するときに、変数を完全に安全な状態にする必要があります。そうしないと、意図しないことから変数が変な値をとったりして誤動作したりするわけで。わたしも、勉強中で人に教授できる身ではぜんぜんありませんが、ともに同じ状況にありそうなので今まで学習した概念をちょっと書いてみました。超初心者なので間違いがあるかもしれませんので、あまり本気で鵜呑みにしないでくださいね。でも、クラスモジュールがわかると、「すご~い!」と感激が走りますよね。C言語なんかはオブジェクト指向のプログラムができないので、このクラス化ができることにより、使いこなせれば開発効率は全く違うと思います。ただ、Cは処理スピードが速いですが。オブジェクト指向やクラスの勉強にはJAVAがいいかもしれませんよね。
    • good
    • 0

クラスは設計書だとも言われます。


設計書を元にし、作った実物をインスタンスといいます。

たとえば、車の設計書(=クラス)があって、それを元に実際に車を作成(=インスタンス化)する、
という感じでしょうか。

車には走る、止まる、ライトをつける、など動きがあって(メソッド)、
ガソリンタンクの容量、排気量、燃費などの属性(プロパティー)が
あります。
    • good
    • 2

んー… よく言われる言い方だと、クラスは「ひな形」と表現されたりしますかね。


他のサイトで どのように説明されているのか わからないので、
ここで長々と書いても無意味かもしれないのでクラスの意味的な部分は
とりあえず省きますが、クラス化の方針としては、
・ある「機能」を持ったものを一まとめにする
と言えばいいですかね?
もちろん、その機能自体をベタで書いても動くには動くでしょうが、
その「機能」を、本来のプログラムとは切り分けてクラスを作成し、
そのインスタンスを使うことによって、本来のプログラムからは、そのクラス(のインスタンス)は
「中身は知らないけど、何か渡したら結果が返ってきたりするもの」に見えるようになります。
その分、本来のプログラムが簡略化されるんですね。
特に、その機能を複数の部分で使いまわしたりする場合は強力な機能となるかと思います。
ちなみに、TextBoxとかLabelとかも、一種のクラスです。
あれの処理を自分で作るとしたら、大変といえば大変でしょうが、逆に
一度作ったら、似たようなものは使いまわせるわけです。
とりあえず、VBの基本的なコントロールから、クラスの意味を類推するのも手かも?
    • good
    • 0

VBを使っているのなら、既にクラスを使いまくっている


はずですが?
Form上にCommandButton, Label等のコントロール(クラス)
を張付け(インスタンスを作成)、Sub()、Function()プロシ
ージャを記述して○○画面(クラス)を作成するといった事
などは普通にやっていませんか?
コントロールのプロパティがゲッタ及びセッタに相当し、
Public宣言されたSub, Functionプロシージャがメソッドに
相当します。
他にも
Form_Load() = コンストラクタ
Form_Terminate = デストラクタ

普段何気無く作っているForm画面もクラスとして見直して
みれば少しは理解の助けになるのでは?
    • good
    • 0

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