Javaのオブジェクト指向では、スタンプを押して紙に印影を作るように、オブジェクトの雛形から、オブジェクトを作ります。
たとえばウィンドウの上に載っているボタンは、ボタンの雛形が用意されています、そして、その雛形を利用してボタンを作り、ウィンドウ上に配置しています。
┏┓ ┃┃ ┏━━┛┗━━┓ ┃ボタンの雛形┃ポンッ! ┗━━━━━━┛ ↓ ┏━━━━━━┓ボタンを作成して ┃// ボタン //┃ウィンドウ上に配置 ┗━━━━━━┛
Javaのオブジェクト指向では、ボタンなどのオブジェクトには、外部に公開された値や機能が用意されています。
オブジェクトを利用する人は、これらの値や命令を利用して、オブジェクトの状態を把握したり、挙動を操作したり、計算結果を受け取ったりします。
┏━━━━━━━━━━━┓ ┃「ボタン」オブジェクト┃ ┃……………………………┃ ┃ ┠─○外向けの値 ┃ ┠─○外向けの機能 ┗━━━━━━━━━━━┛
Javaのオブジェクト指向では、ボタンなどのオブジェクトの内部にも、値や機能が隠されています。
機械が、壊れやすい中身を守るために箱に収められているように、オブジェクトは、外部に公開する必要がない値や命令は、外から操作されないように隠蔽されています。
┏━━━━━━━━━━━┓ ┃「ボタン」オブジェクト┃ ┃……………………………┃ ┠─●内部の値 ┃ ┠─●内部の機能 ┃ ┗━━━━━━━━━━━┛
Javaのオブジェクト指向では、ボタンなどの雛形を、「継承」して改造することができます。
たとえば、「AbstractButton」というボタンの雛形には、ボタン共通の要素である、押されたかどうかを表す値や、描画用の命令が用意されています。
この「AbstractButton」を継承した「JToggleButton」は、オンオフの表示を切り替えられる機能が追加されています。
また、「JToggleButton」を継承した「JCheckBox」は、オンオフの代わりにチェックボックスが表示されるように改造されています。
こうやって、Javaのオブジェクト指向では、手軽に新しい部品を作れるようになっています。
┏━━━┓ 親 ボタン =┃ボタン┃ ┗━━━┛ トグル ┏━━━┓ トグル 子 ボタン =┃ボタン┃+ボタンの ┗━━━┛ 追加機能 チェック ┏━━━┓ トグル チェック 孫 ボックス=┃ボタン┃+ボタンの+ボックスの ┗━━━┛ 追加機能 追加機能