PHP
オブジェクト指向
初心者
初心者向け
アクセス制限

カプセル化とアクセス権について解説!


はじめに


  • カプセル化とアクセス権について本やネットの情報から調べて理解したことをまとめました。

  • もし、書いていることに何か間違いがある場合はご指摘いただけると嬉しいです。


カプセル化とは


  • プロパティの値を変更されてしまわないように、他のクラスからのアクセスを制限すること。

  • プロパティをカプセルで覆うことで、触れられないようにするようなイメージ。


アクセス権とは


  • プロパティとメソッドへアクセスできる範囲を制限すること

  • 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();

?>


実行結果

パソコン