どんな記事?
- 新人エンジニアのサクッとアウトプット記事
- 具体的な内容(コード)というよりは"ざっくり"理解するのが目的
オブジェクト指向とは
閲覧されている方は既知の内容だとは思いますが一応おさらい
- プログラミングにオブジェクトという概念を持ち込んだ考え方。
- オブジェクトは一般的にクラスで定義。
- クラス内でそのオブジェクト関する変数やメソッドを定義する。
- オブジェクト同士の相互作用でシステムが成り立っているという考え方
カプセル化とは
- オブジェクトの具体的なデータ構造や機能などを隠蔽すること
- オブジェクト内のフィールドとメソッドはクラス外から干渉されないように保護したい
- privateやprotectedアクセス修飾子を用いて不要な情報にアクセスできなくする
アクセス修飾子
class Sample{
public $pub;
private $pri;
protected $pro;
}
- その変数・メソッドがどこからアクセスできるかを記述する修飾子
- 変数やメソッド定義時に記述するとアクセス権を付けることができる
- public private protectedの3種類あり、それぞれ以下からアクセスできる
| アクセス修飾子 | アクセスできる範囲 |
|---|---|
| public | クラス内外構わずアクセス可能 |
| private | クラス内ならアクセス可能 |
| protected | クラス内と継承先の子クラスからアクセス可能 |
使い道...Getter Setter
- カプセル化の概念(内部のデータは隠蔽したい)
- クラス外からアクセスできないようにしたい→privateを使う
- インスタンスに値を入れたり取得したりする→getterとsetterで間接的に取得
Class Sample{
private $name;
public getName(){
return $this->name;
}
public setName($inputName){
$this->name = $inputName;
}
}