【ぷろぱてぃ】

プロパティ とは?

💡 オブジェクトの「持ち物(データ)」、状態や属性を表す変数
📌 このページのポイント
プロパティ(オブジェクトの属性) オブジェクト: 車 = "赤" 速度 = 120 メーカー = "Toyota" 燃料 = "電気" プロパティ名 読み取り専用 読み書き可能 計算プロパティ プロパティはオブジェクトの「特徴」を表すキーと値のペア
プロパティのイメージ
ひよこ ひよこ

プロパティとメソッドの違いは?

ペンギン先生 ペンギン先生

プロパティは「オブジェクトが持つデータ」、メソッドは「オブジェクトができる動作」。例えばユーザーオブジェクトなら、name・email・ageがプロパティで、login()・logout()・changePassword()がメソッド

ひよこ ひよこ

privateにするとどうなるの?

ペンギン先生 ペンギン先生

クラス外からアクセスできなくなる。外から直接変更されると困るデータ(例:残高)をprivateにして、メソッドを通じてのみ変更できるようにするのがカプセル化の考え方。

ひよこ ひよこ

ゲッターとセッターって何?

ペンギン先生 ペンギン先生

privateプロパティへのアクセス用メソッド。「getName()(ゲッター)」でpropertyの値を取得、「setAge(value)(セッター)」で値を設定する。セッターに「年齢は0以上でないとエラー」といった検証ロジックを入れられる。

ひよこ ひよこ

CSSにもプロパティってあるよね?同じ意味なの?

ペンギン先生 ペンギン先生

概念は似ていて「属性」「特性」という意味は共通しているよ。CSSではcolor、font-size、marginなどがプロパティ。HTMLのclass、id、srcは「属性(attribute)」と呼ぶ。JavaScriptオブジェクトでは「プロパティ」だから、文脈で使い分けを覚えるのが大事だね。

ひよこ ひよこ

プロパティの命名規則って大事なの?

ペンギン先生 ペンギン先生

とても大事だよ。isActive、hasPermission、canEditのようにブール値のプロパティには「is/has/can」を接頭辞に付ける慣習がある。これだけでコードの可読性が大幅に上がる。面白いことにAppleSwift APIデザインガイドラインでは「ブール値のプロパティは文として読めること」を推奨していて、「user.isLoggedIn」は「userはログインしている」と自然に読めるようにするんだ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
プロパティって出てきたら「クラスやオブジェクトが持つデータ(変数)、オブジェクトの状態を表すもの」と思えばOK!
📖 おまけ:英語の意味
「Property」 = 属性・財産・特性
💬 オブジェクトが「所有している(property)」データという意味。フィールド・アトリビュート・属性と同義で使われることもある
← 用語集にもどる