クラスとオブジェクト
- 更新日2025-08-27
- 4分で読める
オブジェクト指向プログラミングでは、項目の共通する特性がクラスによって表されます。たとえば、クラスは自動車全般にたとえることができます。クラスは、すべてのVehicle(自動車)が共通して持つ特性を定義します。オブジェクトとは、クラスの特定の実体です。Vehicle (自動車) クラスのオブジェクトは、たとえば個々の自動車を表します。クラス定義によって、それぞれの自動車 (オブジェクト) がどのように動作するかが決定されます。
クラスは、クラスのオブジェクトに関連付けられたデータとメソッドを定義します。ここでも自動車を例に取って説明します。市場には数多くの車が存在します。あらゆる乗用車、トラック、バスは、すべて「自動車」として分類することができます。すべての自動車は、車体にドアがあり、トランスミッションにギアが使用されています。ドアの数やトランスミッションのギアの数は、各自動車の「データ」となります。また、自動車は加速したり減速したりします。加速、減速は自動車の動作 (メソッド) です。Vehicleクラスは、各自動車に関連付けられたこれらのデータやメソッドによって定義されます。つまり、クラスを作成して、オブジェクトのデータやメソッドを定義することになります。以下の図は、VehicleクラスをLabVIEWクラスとして表したものです。LabVIEWでは、VehicleクラスのデータはVehicle.ctlに保存され、VehicleのメソッドはStart Vehicle VIおよびStop Vehicle VIに保存されます。
オブジェクトとは、クラスの特定のインスタンスです。個々の自動車は、Vehicleクラスの特定の実装、つまり1つのVehicleクラスのオブジェクトです。以下に示す「Main」VIのダイアグラムは、Vehicleクラスのオブジェクトです。オブジェクトにはクラスによって定義されたデータとメソッドがあります。クラスデータは制御器に保存されます。ユーザは、LabVIEWクラスのメソッドとなるメンバーVIを作成します。
LabVIEWオブジェクト指向プログラミングを概念的にとらえると、LabVIEWクラスのユーザは以下のように分類されます。
- LabVIEWクラス開発者―他の開発者/プログラマのためにLabVIEWクラスを作成します。LabVIEWクラス開発者は、オブジェクト指向プログラミングの経験者であることがほとんどです。また、LabVIEWクラスとその働きを熟知している必要があります。
- LabVIEWクラスユーザ―LabVIEWクラス開発者によって開発されたLabVIEWクラスを使用します。オブジェクト指向プログラミングの未経験者、またクラスのしくみに関する知識がないユーザも、オブジェクト指向プログラミングの特長を活用することができます。LabVIEWクラスユーザは、LabVIEWクラス開発者から配布されたクラスの内部の操作を行うことはできません。開発者は、LabVIEWクラスを変更する場合に、それを利用してクラスユーザが開発したアプリケーションへの影響が最低限になるよう考慮する必要があります。
LabVIEWクラスユーザは、LabVIEWの作成方法についての知識を必要としませんが、クラスによって定義されるデータタイプをアプリケーションで使用する方法、LabVIEWクラスが使われているコードのデバッグに利用できる情報、LabVIEWクラスの更新によって作成済みのアプリケーションが受ける影響などを把握している必要があります。LabVIEWクラスを使用するだけで、作成する必要がない場合は、LabVIEWクラスおよびインタフェースをアプリケーションで使用するトピックでLabVIEWクラス開発者から配布されるLabVIEWクラスについての情報を参照してください。