クラス型
クラスって学校の組のようですね。
- 「クラス」とは、特定のデータや処理をひとまとめにしたものです。英語では「class」と書き、「分類」「種類」「仲間」といった同種の集まりの意味があります。クラスから作られたものを「オブジェクト」(もの)といい、オブジェクト指向では、クラスやオブジェクトを組み合わせてプログラムを作ります。
- オブジェクト指向のクラスは、オブジェクトの性質と振る舞いを決める設計図とも言えます。 「クラス」という設計図を基にしてオブジェクトの実体を作りますが、この実体をインスタンス(instance:実例)といいます。クラスに対して、具体的なデータを持つ個々のオブジェクトがインスタンスです。
- クラス型は、レコード型のように複数の要素を保持できますが、データ型だけでなく、手続きや関数も要素とすることができます。この要素をメンバーと呼ぶこともあります。
- スコープは、変数や手続きの有効範囲を示します。
private プライベートメンバー(クラス内部でのみ利用) protected プロテクテッドメンバー(子クラスからは直接メンバーを使用できる) public パブリックメンバー(クラスの外からも使用可能) published パブリッシュドメンバー(実行時型情報を生成)
- 各メンバーには次の3種類があります。
フィールド(変数)、メソッド(関数や手続き)、プロパティ(フィールドとメソッドの組み合わせ)
【書式】
Type 識別子 = class フィールド; メソッド; プロパティ; end;
【定義方法】
- 新しいユニットファイルを作ります(ファイル→新規作成→ユニット)
- 空っぽのユニットファイルができますので、名前を付けて保存します。
- interfaceの下にuses節を追加し、インポートする外部ユニットを記述します。
※unit1を参考にするとよいかも。 - implementaitionの下に具体的に手続きや関数を、「クラス名.メソッド名」という形で記入します。
クラス名は、Typeを意味する「T」で始められることが多く、フィールド名は「F」で始められることが多いようです。
本の説明ではよくわからないので、こちら様(Seventh Delphi)のソースをお借りして試してみました。だいぶ前にアップロードされた記事のようですが、Delphi2006でも動きました。
TEditを使って新しく、TMyEditというクラスを生成しているのではないかと思います。
【実行結果】
【サンプルコード】 こちらは書籍を参考に自分で書いてみました。
unit Unit1; interface uses //外部ユニットを読み込む Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) //クラスの宣言。親と同じ要素を継承 Edit1: TEdit; Button1: TButton; procedure Button1Click(Sender: TObject);//自動でできた手続き宣言 private { Private declarations } public //クラスを構成するメンバーの一部 { Public declarations } Procedure SetMsg; //手続きを宣言 end; var //var宣言部 Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin SetMsg; //手続きの呼び出し end; procedure TForm1.SetMsg; //手続き(クラス名が必要) begin Edit1.Text := 'こんにちは'; //Edit1の前にクラス名は不要 end; end.
【実行結果】