Objects: state, behaviour and an interface
導入済み| English | 意味 |
|---|---|
| instance/ˈɪnstəns/ | インスタンス |
| encapsulation/ɪnˌkæpsjʊˈleɪʃn/ | カプセル化 |
この観察を説明する要因は何か?
- 2つの銀行口座モデルオブジェクトは、異なる残高を保持しながらも、同じ預金操作に応答できる。
- まず予測を立てる。比較したい量や特徴を明記し、2つの説明を区別できる証拠は何かを決定せよ。
モデルを構築する
- クラスは状態と振る舞いを持つ型を定義する。オブジェクトはインスタンスである。カプセル化は、操作が不変式を維持できるようにするためのインターフェースを通じてアクセスを制御する。継承は適切な型の関係性をモデル化し、合成(コンポジション)はオブジェクトが他のオブジェクトを含んでいるか使用している関係をモデル化する。
- エンカプスレーション: インターフェースを通じて状態へのアクセスを制御すること;インスタンス: クラスの個々のオブジェクト。
What should prevent an invalid state change?
難易度 1/5 · 100 コイン + 今日初回完了時に小ボーナス付与
Encapsulation works when every state change passes through an operation that checks the invariant before applying it. Publicly writable fields bypass the check entirely, and users will eventually make errors.
Match each technical term to its precise meaning.
難易度 2/5 · 140 コイン + 今日初回完了時に小ボーナス付与
Use the definitions to distinguish related quantities and processes.
これを検証できる証拠を選ぶ
- メソッド呼び出しは特定のインスタンスに対して動作する。状態の変化は前条件と後条件を満たすべきである。ポリモルフィズムは、契約が遵守される場合、異なる実装でも共通のインターフェースを使ってコードを記述することを可能にする。
- 小型の架空の口座や在庫モデルを実装せよ。2つの独立したインスタンスをテストし、無効な操作や境界値を拒否せよ。モデルを実際の金融口座や認証情報から遠ざけておけ。
Which two habits make the investigation or model in this case more defensible?
難易度 2/5 · 140 コイン + 今日初回完了時に小ボーナス付与
Stating the conditions and assumptions lets others repeat the work exactly, and recording the supporting evidence lets them check the conclusion. Hiding disagreeing results removes the evidence that could challenge a wrong conclusion, and one measurement can never establish a wider claim.
既知の量から始める
- 既知の値と単位を明記する。このケースに適応する仮定を持つ関係式を選び、代入前に変形する。
- 既知: オブジェクトAは 40 単位から始まり 15 を受け取る;オブジェクトBは 20 から始まり 5 を受け取る。最終残高は 55 と 25 である。それらの合計は 80 だが、いずれの個別オブジェクトの残高も 80 ではない。
ある値が12単位から始まり、8を加え、3を引きました。最終値を求めよ。同じ手順を用いてください: 既知量 → モデル → 関係式 → 代入 → 単位と解釈。
An instance starts at 12 units, adds 8 and removes 3. Find its final value.
難易度 2/5 · 140 コイン + 今日初回完了時に小ボーナス付与
The result is 17 units. Known: start 12; add 8; remove 3. Track the state step by step: 12 + 8 = 20; 20 - 3 = 17 units. Each operation changes only this instance's state.
結論とその限界を確認する
- クラスは単一のインスタンスと同じものではない。継承が常に合成より優れているわけではない。フィールドを隠蔽するだけでは、すべての操作が有効な状態を維持することが保証されない。
- 元の観察に戻り、結果が何を裏付けているか、どのような条件を前提としているかを説明し、対立する説明を検証する方法を一つ示す。
クラスの2つのインスタンスは常に1つの残高を共有する。この主張は誤りである:各インスタンスは独自の状態を持つため、同一クラスの2つのアカウントは異なる残高を持つことができる。操作や構造などのクラス定義は共有するが、フィールド値は共有しない。
オブジェクト: 状態、振る舞い、およびインターフェース: メソッド呼び出しは特定のインスタンスに対して動作する。状態の変化は前条件と後条件を満たすべきである。ポリモルフィズムは、契約が遵守される場合、異なる実装でも共通のインターフェースを使ってコードを記述することを可能にする。
Two instances of a class must always share one balance.
難易度 1/5 · 100 コイン + 今日初回完了時に小ボーナス付与
Each instance owns its own state: two accounts of the same class can hold different balances. They share the class definition - the operations and structure - not the field values.
Controlling access to state through an interface: write the technical term.
難易度 1/5 · 100 コイン + 今日初回完了時に小ボーナス付与
encapsulation means Controlling access to state through an interface.