投稿日時:

当校では、さまざまなプログラミング言語の講座を設けておりますが、教材を作るにあたり苦労しているのが「さまざまな名称」です。プログラミング言語には、同じ意味を表す物に異なる名称が付けられており、表記を統一する事に苦労しています。

これには、受講者の方も苦労されているご様子です。
書籍やWebサイトにより、名称が異なるので「コレとコレは違うんですか?」「同じものです」なんて質疑応答がやりとりされる事もしばしば見られます。

そこで、今回は特に異なる名称が多い「クラス関連の名称」についてご説明しましょう。

さまざまな機能を有し、道具として使われる「クラス」。
JavaScriptでは、正確にはクラスは無く、クラス的な物を「オブジェクト」と呼んでいます。

new演算子で作成される「インスタンス」。
VB等では「オブジェクト」と呼んでいます。JavaScriptの「オブジェクト」と混同しやすいのでご注意下さい。

クラスが保有している変数は「属性」「メンバ変数」「フィールド」、PHPでは「プロパティ」とも呼ばれています。
クラスが保有している機能は「操作」「メンバ関数」「メソッド」と、さまざまな名称が付いています。

カプセル化に基づき、private化したフィールドとやりとりするのにJavaでは「アクセッサメソッド(setter、getter)」を使用しますが、C#やVBでは「プロパティ」を使用します。C#やVBではフィールドとプロパティはまったくの別物となります。

各言語ごとに一般的な名称を以下の表にまとめました。

C++ Java C# VB PHP JavaScript UML
クラス クラス クラス クラス クラス オブジェクト クラス
インスタンス インスタンス インスタンス オブジェクト インスタンス インスタンス オブジェクト
メンバ変数 フィールド フィールド フィールド プロパティ フィールド 属性
メンバ関数 メソッド メソッド メソッド メソッド メソッド 操作
アクセッサ アクセッサ プロパティ プロパティ アクセッサ

「インスタンスとオブジェクトは同義語なのか否か?」ですが、これは明確な定義が無いため、諸説あります。
今回ご紹介した名称は、あくまでも一般的に使用される名称である事をご留意下さい。

(担当:奥田 英太郎