クラスを作成し、実際に動作させてみる(オブジェクト指向)

phpはclass書けるが、厳密にいうと他の言語と違ってオブジェクト指向型かというとちょっと違う。
phpはもともと関数型言語。functionで作るという考えでここまで発展してきたが、javaが取り入れてきてからサポートし始めた。だから、他に比べて若干ゆるいオブジェクト指向ができる。でも考え方としてはどの言語も同じことが言える。
・今時はオブジェクト指向がわからないと恥ずかしいコードができ上がってしまうからここはマスターしたいところ。
・classの後の文字は命名規則として最初の文字だけ大文字。functionは小文字スタート。これによってclassなのかfunctionなのかをパッと見でわかるようにする。

・クラスを使用するにはクラスのオブジェクトを生成する必要がある。クラスのオブジェクトを作ることをインスタンス化という。インスタンス化するにはnewというキーワードを使う。

・例:class→車の設計図 でインスタンス化すると車を1台作りあげるイメージ。

 ・プログラムの「初期化」は何か特別なことをする訳ではなくて「何か値を代入すること」のことを「初期化」と言う。

private $name

private$life

↑この状態だと、メンバ変数に値が入っていない、「無」の状態。値をとりあえず何か入れることを「初期化」と一般的に呼ぶ。

・$this→functionの中のローカル変数でなくて、外側にある同じclassの中の変数(メンバ変数)に対して操作をしたい。そのときに「こっちの方だ」って示すときに$thisを使う。「どこにある変数なのか」を意味するのが$this

 

■問題 

次のクラスを作成し、実際に動作させてみましょう。

クラス名:Character

メンバ変数:$life, $name;

メンバメソッド:

1. init 引数:なし

メンバ変数を初期化する 例) $life = 100 $name = “たろう”

2. showStatus 引数:なし

“○○のライフは●●です。”と表示する

※○○には$name の値、●●には$life の値が入ります。     

f:id:Kenta_Shimizu:20190314171238p:plain

f:id:Kenta_Shimizu:20190314174551p:plain