基本-クラス型

クラス型

クラスって学校の組のようですね。

  • 「クラス」とは、特定のデータや処理をひとまとめにしたものです。英語では「class」と書き、「分類」「種類」「仲間」といった同種の集まりの意味があります。クラスから作られたものを「オブジェクト」(もの)といい、オブジェクト指向では、クラスやオブジェクトを組み合わせてプログラムを作ります。
  • オブジェクト指向のクラスは、オブジェクトの性質と振る舞いを決める設計図とも言えます。 「クラス」という設計図を基にしてオブジェクトの実体を作りますが、この実体をインスタンス(instance:実例)といいます。クラスに対して、具体的なデータを持つ個々のオブジェクトがインスタンスです。
  • クラス型は、レコード型のように複数の要素を保持できますが、データ型だけでなく、手続きや関数も要素とすることができます。この要素をメンバーと呼ぶこともあります。
  • スコープは、変数や手続きの有効範囲を示します。
    private プライベートメンバー(クラス内部でのみ利用)
    protected プロテクテッドメンバー(子クラスからは直接メンバーを使用できる)
    public  パブリックメンバー(クラスの外からも使用可能)
    published パブリッシュドメンバー(実行時型情報を生成)
  • 各メンバーには次の3種類があります。
    フィールド(変数)、メソッド(関数や手続き)、プロパティ(フィールドとメソッドの組み合わせ)

【書式】

Type
  識別子 = class
       フィールド;
       メソッド;
       プロパティ;
 end;

 

【定義方法】

  1. 新しいユニットファイルを作ります(ファイル→新規作成→ユニット)
  2. 空っぽのユニットファイルができますので、名前を付けて保存します。
    ren12
  3. interfaceの下にuses節を追加し、インポートする外部ユニットを記述します。
    ※unit1を参考にするとよいかも。
  4. implementaitionの下に具体的に手続きや関数を、「クラス名.メソッド名」という形で記入します。
    クラス名は、Typeを意味する「T」で始められることが多く、フィールド名は「F」で始められることが多いようです。

本の説明ではよくわからないので、こちら様(Seventh Delphi)のソースをお借りして試してみました。だいぶ前にアップロードされた記事のようですが、Delphi2006でも動きました。
TEditを使って新しく、TMyEditというクラスを生成しているのではないかと思います。

【実行結果】

ren13

【サンプルコード】 こちらは書籍を参考に自分で書いてみました。

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.

【実行結果】

ren14

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です