大石泉「オブジェクト指向について教えてほしい?」村松さくら「うん!」
1- 20
10: ◆4btDzJY0yc[saga]
2021/10/17(日) 03:49:49.09 ID:sIClmUXX0
泉「こういうとき、オブジェクト指向の考え方では、構造体『pen』のなかに『ink』、『cap_colour』とかの要素を作るのは同じなんだけど、そうしたらね、これらの要素は別の場所からアクセスできないように設定しちゃうの」


さくら「ええ?じゃあどうやってインクの色を変えるの?」


泉「構造体の中に、要素を直接アクセスできるようにする代わりに、色を変更するための『setColour( 入れたい色 )』っていう関数をあらかじめ作っておくの。そしてこの関数を別の場所からアクセスできるように設定して、インクの色を変えるときは要素を直接変更せず、この関数を実行するだけにしてもらうの。そして、

setColour( char a ){
ink = a;
cap_colour = a;
}

こうすれば、インクの色を変えたいときは

setColour( 赤 );

とだけすればいい。さっきみたいに後から別の処理をしないといけなくなったら、構造体にある『setColour( ) 関数』の中身だけ変更すれば、実際に何回呼び出されているとしても、変更は一箇所だけで済む」


亜子「さっきは

pen.ink = ’赤’
pen.cap_colour = ‘赤’

とか

pen.ink = ’青’
pen.cap_colour = ‘青’

みたいに、色を変える箇所全部にcap_colourを追加しないといけんかったよな」


さくら「ほぇ〜」


泉「こういう風に『それぞれのオブジェクトが、内部処理は公開せずに、入力と出力だけ公開すればよい』という手法が、オブジェクト指向の方法のひとつ、『カプセル化』だね」キュッキュ


亜子「ちょいちょい!」


<<前のレス[*]次のレス[#]>>
20Res/12.59 KB
↑[8] 前[4] 次[6] 書[5] 板[3] 1-[1] l20




VIPサービス増築中!
携帯うpろだ|隙間うpろだ
Powered By VIPservice