0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【オブジェクト指向 / ざっくり】カプセル化とは?

Last updated at Posted at 2021-06-30

どんな記事?

  • 新人エンジニアのサクッとアウトプット記事
  • 具体的な内容(コード)というよりは"ざっくり"理解するのが目的

オブジェクト指向とは

閲覧されている方は既知の内容だとは思いますが一応おさらい

  • プログラミングにオブジェクトという概念を持ち込んだ考え方。
  • オブジェクトは一般的にクラスで定義。
  • クラス内でそのオブジェクト関する変数やメソッドを定義する。
  • オブジェクト同士の相互作用でシステムが成り立っているという考え方

カプセル化とは

  • オブジェクトの具体的なデータ構造や機能などを隠蔽すること
  • オブジェクト内のフィールドとメソッドはクラス外から干渉されないように保護したい
  • 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;
 }
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?