PHP 〜カプセル化と参照型〜

どうも、irisawaです。
今回のPHPでは、「アクセス修飾子」、「カプセル化」、「参照型」について学んだ後、実習を行いました。

以下、内容となります。

「カプセル化」とは

通常、フィールドは基本的に外部からアクセスできない様な設定をします。このような考え方を「カプセル化」と呼び、実現させる為には、「アクセス修飾子」というものを使用します。

アクセス修飾子?

アクセス修飾子は、フィールド、メソッドに対してのアクセスを決める事が出来るものです。

  • public どこからでもアクセス可能 ※何も付けない場合、このpublicとなる。重要だと思う。
  • protected クラス内とそのサブクラスからのみアクセス可能
  • private そのクラス内のみアクセス可能

参照型

参照型は基本データ型と違い、クラス名のデータ型への参照。参照型の変数は、値ではなくインスタンスへの参照を格納します。また、メソッドの引数に渡すときも参照渡しとなります。

演習

カプセル化と参照型について学んだ後、クラス設計演習を行いました。

お題 次のような要求を満たすクラスを設計して下さい。

①ビデオごとに、名前、レンタル料、レンタル回数、売上げを管理したい。
②ビデオ全体のレンタル回数の合計と総売上も管理したい。
③ビデオごとの名前とレンタル回数と売上げを出力したい。ひとつのメソッドで作成する。
④ビデオをレンタルする事によって、ビデオごとのレンタル回数、売上げを増加したい。また、ビデオ全体の総売上も増加させたい。レンタルするごとに、③のメソッドの処理を行い、そのつどビデオの名前、レンタル回数、レンタル料を出力したい。
⑤ビデオ全体のレンタル回数と総売上を出力したい。(クラスメソッドで作成)
⑥3つのビデオを用意し、レンタルの処理を何回か行って、最後にビデオ全体のレンタル回数の合計と総売上の出力を行う。

自分の作成結果が以下のリンクです。

practice.php

改めてソースを見てみると、直さなきゃなぁと思っている所が見つかりました。rentalVideo()の中で、直接フィールドの$countや$amountを呼んでしまっている。せっかく今日カプセル化というものを習ったのに、使っていませんでした。なので、setterを呼ぶ様に直したいです。 今日、授業で重要だなと思ったのは、「メソッドの引数に初期値を設定できる」です。これは、知りませんでしたが便利なので忘れない様にしたいと思います。

(2008/07/07 irisawa追記)
お待たせしました。動画上がりました。

part.1

part.2

コメントをどうぞ

名前: (Required)

eMail: (Required)

Website:

Comment:

Spam Protection by WP-SpamFree