はじめに
- カプセル化とアクセス権について本やネットの情報から調べて理解したことをまとめました。
- もし、書いていることに何か間違いがある場合はご指摘いただけると嬉しいです。
カプセル化とは
- プロパティの値を変更されてしまわないように、他のクラスからのアクセスを制限すること。
- プロパティをカプセルで覆うことで、触れられないようにするようなイメージ。
アクセス権とは
- プロパティとメソッドへアクセスできる範囲を制限すること
- public、protected、privateをアクセス修飾子という
アクセス修飾子の種類
アクセス修飾子 | アクセスできる範囲 |
---|---|
public | どこからでもアクセス可能 |
protected | そのクラス自身、継承したクラス、親クラスからのみアクセス可能 |
private | そのクラスからのみアクセス可能 |
アクセス権のあるプロパティを操作するメソッド
-
getter(ゲッター)メソッド
とsetter(セッター)メソッド
を使うことで、アクセス権があるプロパティを操作することができる。
getter(ゲッター)
- アクセス権があるプロパティの値にクラスの外から取得するメソッド
- 「getプロパティ名」のように書く。
コード例
<?php
class Products
{
private $name = "パソコン";
public function getName(){
return $this->name;
}
}
$product = new Products();
echo $product->getName();
?>
実行結果
パソコン
setter(セッター)
- アクセス権があるプロパティの値にクラスの外からセット(設定)するメソッド
- 「setプロパティ名」のように書く。
コード例
<?php
class Products{
private $name;
public function getName(){
return $this->name;
}
public function setName($name){
$this->name = $name;
}
}
$product = new Products();
$product->setName("パソコン");
echo $product->getName();
?>
実行結果
パソコン