当校では、さまざまなプログラミング言語の講座を設けておりますが、教材を作るにあたり苦労しているのが「さまざまな名称」です。プログラミング言語には、同じ意味を表す物に異なる名称が付けられており、表記を統一する事に苦労しています。
これには、受講者の方も苦労されているご様子です。
書籍やWebサイトにより、名称が異なるので「コレとコレは違うんですか?」「同じものです」なんて質疑応答がやりとりされる事もしばしば見られます。
そこで、今回は特に異なる名称が多い「クラス関連の名称」についてご説明しましょう。
さまざまな機能を有し、道具として使われる「クラス」。
JavaScriptでは、正確にはクラスは無く、クラス的な物を「オブジェクト」と呼んでいます。
new演算子で作成される「インスタンス」。
VB等では「オブジェクト」と呼んでいます。JavaScriptの「オブジェクト」と混同しやすいのでご注意下さい。
クラスが保有している変数は「属性」「メンバ変数」「フィールド」、PHPでは「プロパティ」とも呼ばれています。
クラスが保有している機能は「操作」「メンバ関数」「メソッド」と、さまざまな名称が付いています。
カプセル化に基づき、private化したフィールドとやりとりするのにJavaでは「アクセッサメソッド(setter、getter)」を使用しますが、C#やVBでは「プロパティ」を使用します。C#やVBではフィールドとプロパティはまったくの別物となります。
各言語ごとに一般的な名称を以下の表にまとめました。
C++ | Java | C# | VB | PHP | JavaScript | UML |
クラス | クラス | クラス | クラス | クラス | オブジェクト | クラス |
インスタンス | インスタンス | インスタンス | オブジェクト | インスタンス | インスタンス | オブジェクト |
メンバ変数 | フィールド | フィールド | フィールド | プロパティ | フィールド | 属性 |
メンバ関数 | メソッド | メソッド | メソッド | メソッド | メソッド | 操作 |
アクセッサ | アクセッサ | プロパティ | プロパティ | アクセッサ |
「インスタンスとオブジェクトは同義語なのか否か?」ですが、これは明確な定義が無いため、諸説あります。
今回ご紹介した名称は、あくまでも一般的に使用される名称である事をご留意下さい。
(担当:奥田 英太郎)