マンガで分かる Java入門講座

第7章 クラスとオブジェクト1
7-2. オブジェクト指向とは2

オブジェクト指向でのプログラムの作り方について、その概念を紹介します。

● スタンプと印影の関係

 Javaのオブジェクト指向では、スタンプを押して紙に印影を作るように、オブジェクトの雛形から、オブジェクトを作ります。

 たとえばウィンドウの上に載っているボタンは、ボタンの雛形が用意されています、そして、その雛形を利用してボタンを作り、ウィンドウ上に配置しています。

図)スタンプと印影の関係
   ┏┓
   ┃┃
┏━━┛┗━━┓
┃ボタンの雛形┃ポンッ!
┗━━━━━━┛
    ↓
┏━━━━━━┓ボタンを作成して
┃// ボタン //┃ウィンドウ上に配置
┗━━━━━━┛

● 値や機能を公開

 Javaのオブジェクト指向では、ボタンなどのオブジェクトには、外部に公開された値や機能が用意されています。

 オブジェクトを利用する人は、これらの値や命令を利用して、オブジェクトの状態を把握したり、挙動を操作したり、計算結果を受け取ったりします。

図)値や機能を公開
┏━━━━━━━━━━━┓
┃「ボタン」オブジェクト┃
┃……………………………┃
┃           ┠─○外向けの値
┃           ┠─○外向けの機能
┗━━━━━━━━━━━┛

● 値や機能を内包

 Javaのオブジェクト指向では、ボタンなどのオブジェクトの内部にも、値や機能が隠されています。

 機械が、壊れやすい中身を守るために箱に収められているように、オブジェクトは、外部に公開する必要がない値や命令は、外から操作されないように隠蔽されています。

図)値や機能を内包
┏━━━━━━━━━━━┓
┃「ボタン」オブジェクト┃
┃……………………………┃
┠─●内部の値     ┃
┠─●内部の機能    ┃
┗━━━━━━━━━━━┛

● 継承して改造/拡張

 Javaのオブジェクト指向では、ボタンなどの雛形を、「継承」して改造することができます。

 たとえば、「AbstractButton」というボタンの雛形には、ボタン共通の要素である、押されたかどうかを表す値や、描画用の命令が用意されています。

 この「AbstractButton」を継承した「JToggleButton」は、オンオフの表示を切り替えられる機能が追加されています。

 また、「JToggleButton」を継承した「JCheckBox」は、オンオフの代わりにチェックボックスが表示されるように改造されています。

 こうやって、Javaのオブジェクト指向では、手軽に新しい部品を作れるようになっています。

図)継承して改造/拡張
       ┏━━━┓
親 ボタン =┃ボタン┃
       ┗━━━┛

  トグル  ┏━━━┓ トグル
子 ボタン =┃ボタン┃+ボタンの
       ┗━━━┛ 追加機能

  チェック ┏━━━┓ トグル  チェック
孫 ボックス=┃ボタン┃+ボタンの+ボックスの
       ┗━━━┛ 追加機能 追加機能

この講座のマンガ部分は「箱人形マンガ(Box Comic) 」で作成しています。
作成:2013/05/28  更新:2013/05/28  [Permalink]

クロクロ・ショップ
特殊な技術書多数あります
レトロ風RPG フルスクラッチ開発 全コード
レトロゲーム風RPGの全コードを掲載して解説した本
HTML5とJavaScriptで作る 落ち物パズルゲーム 全コード
『テトリス』や『ぷよぷよ』に類似した落ち物パズルゲームの全コードを掲載して解説した本
JavaScriptでリバーシゲームをつくろう
ライブラリを使わずに全コードを書いて、リバーシゲームを作るまでを徹底解説
ワールドマップ自動生成読本
二次元ゲームのワールドマップを自動生成するための本
レトロゲームファクトリー
過去のゲームを最新機に移植する会社のお仕事小説(新潮社)
顔貌売人 ハッカー探偵 鹿敷堂桂馬
プログラマーが探偵役のエンタメ・ミステリー第2弾 最先端の情報犯罪に安藤と鹿敷堂が挑みます(文藝春秋)
裏切りのプログラム ハッカー探偵 鹿敷堂桂馬
プログラマー鹿敷堂桂馬が、女性社長の安藤裕美と共に、IT業界で起きた事件に挑む。2016年の松本清張賞の最終候補作(文藝春秋)
×