機械には、外から利用できるスイッチやボタン、ディスプレイとは別に、内部に隠蔽された基盤や配線が存在します。そして、内部に触れられないように外装が取り付けられています。
これは、利用者が誤って内部の装置に触れて壊さないようにという配慮です。
┏機械━━━━━━┓ ┃ ┃ ┃内部 ┃外部 ┠─●内部の基盤 ┠─○外部のスイッチやボタン ┠─●内部の配線 ┠─○外部のディスプレイ ┗━━━━━━━━┛
オブジェクトも機械と同じように、外から利用できる値や機能と、内部処理用の値と機能が分離しています。そして、内部向けの値や機能は、外部から利用することができないようになっています。
このように、値や機能の公開範囲を制御することで「アクセス制御」と呼びます。
┏オブジェクト━━┓ ┃ ┃ ┃内部 ┃外部 ┠─●内部の値 ┠─○外向けの値 ┠─●内部の機能 ┠─○外向けの機能 ┗━━━━━━━━┛
Javaのオブジェクト指向では、外向けの値や機能を「public」、内向けの値や機能を「private」と呼びます。
┏オブジェクト━━┓ ┃ ┃ ┃private(内部) ┃public(外部) ┠─●内部の値 ┠─○外向けの値 ┠─●内部の機能 ┠─○外向けの機能 ┗━━━━━━━━┛