> 最近ようやく内容が理解できるようになりました。
塚越氏の本を読んで私はこんな風に理解しました。
ある機能を実現するためにプログラム言語の命令を並べたものが関数(や手続き)である。
また、特定の様式のデータの塊をレコード型として扱うことができる。
レコード型は基本的にデータを記憶する物だが、ポインタ型により関数(の開始アドレス)を登録できる。
それにより、レコード型はデータと関数機能の両方を保持できるようになりオブジェクトになった。
つまり、オブジェクト型はデータと関数の両方を持ったレコードである。
例えば、TStringList(クラスだが…)はTextというデータを保持する部分(プロパティ)を持っているし、
AddとかSortとかの関数の機能(メソッド)も持っていることからも分かる。
このオブジェクト型は自己完結的で自分自身を生成する.Createとかメモリから解放する.Freeとかの
機能まで持ち、プロパティにふさわしくないデータをチェックする機能(アクセス手続き)とかも持っている。
オブジェクト型は、コンパイル時にメモリに配置される静的オブジェクトとプログラム実行時に生成できる
動的オブジェクトの両方があります。(本にそのように書いてあります。^_^;)
OSのWindowsは限られたメモリを有効に使う為、機能が必要になった時にオブジェクトを生成し、
不要になったらメモリを解放する手法をとっています。
だから、動的オブジェクトであれば、ポインタで必要な時に必要な数メモリに配置することができ便利です。
この動的オブジェクトを専用に扱う型がClass型になります。
Class型はT新クラス=class(元クラス)と定義すると、新クラスは元クラスの全機能を引き継いでくれます。
卵を割ったらその中に小さな卵(元クラス)が入ってたような感じです。
この、継承という機能が便利で、単純な元クラスに少しずつ新たなデータ(プロパティ部分)と
機能(メソッド)をくっつけて新しいクラスを作れるので、機能の拡張が安全にかつ簡単にできます。
それで、クラス名とはその時に付けられる名前です。
えっ!分かってないって?
石は投げないでください。
|