Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Ciri lanjutan enkapsulasi dalam PHP

Ciri lanjutan enkapsulasi dalam PHP

PHPz
PHPzasal
2023-10-12 10:43:481435semak imbas

Ciri lanjutan enkapsulasi dalam PHP

Ciri pengkapsulan lanjutan dalam PHP memerlukan contoh kod khusus

Pengenkapsulan ialah konsep yang sangat penting dalam pengaturcaraan berorientasikan objek. Ia menyembunyikan dan melindungi data dengan merangkum data dan tingkah laku di dalam objek. Sebagai bahasa berorientasikan objek, PHP juga menyediakan banyak ciri pengkapsulan lanjutan Artikel ini akan memperkenalkan ciri ini melalui contoh kod tertentu.

  1. Kawalan Akses

Kawalan akses ialah teras pengkapsulan, yang boleh mengehadkan hak akses hartanah dan kaedah. PHP menyediakan tiga pengubah kawalan akses berbeza: awam, dilindungi dan peribadi. Berikut ialah contoh:

class Person {
  public $name;  // 公共属性
  protected $age;  // 受保护的属性
  private $email;  // 私有属性

  public function __construct($name, $age, $email) {
    $this->name = $name;
    $this->age = $age;
    $this->email = $email;
  }

  public function getAge() {
    return $this->age;  // 只能在类内部访问
  }
}

$person = new Person("John", 25, "john@example.com");
echo $person->name;  // 可以直接访问
echo $person->age;  // 报错,受保护的属性不能在外部访问
echo $person->email;  // 报错,私有属性不能在外部访问
echo $person->getAge();  // 可以通过公共方法访问受保护的属性
  1. Enkapsulasi Warisan

Encapsulation of inheritance ialah menggunakan semula sifat dan kaedah kelas induk dengan mewarisi kelas induk, dan anda boleh menambah sifat dan kaedah unik anda sendiri. Berikut ialah contoh:

class Animal {
  private $name;

  public function __construct($name) {
    $this->name = $name;
  }

  public function getName() {
    return $this->name;
  }
}

class Dog extends Animal {
  private $breed;

  public function __construct($name, $breed) {
    parent::__construct($name);
    $this->breed = $breed;
  }

  public function getBreed() {
    return $this->breed;
  }
}

$dog = new Dog("Max", "Golden Retriever");
echo $dog->getName();  // 可以调用父类的方法
echo $dog->getBreed();  // 可以调用子类的方法
  1. Pengenkapsulan Polimorfisme

Pengenkapsulan Polimorfisme mencapai polimorfisme dengan mengagregatkan objek serupa dengan pelaksanaan berbeza bersama-sama. Antara muka dalam PHP boleh melaksanakan polimorfisme terkapsul. Berikut ialah contoh:

interface Shape {
  public function calculateArea();
}

class Rectangle implements Shape {
  private $width;
  private $height;

  public function __construct($width, $height) {
    $this->width = $width;
    $this->height = $height;
  }

  public function calculateArea() {
    return $this->width * $this->height;
  }
}

class Circle implements Shape {
  private $radius;

  public function __construct($radius) {
    $this->radius = $radius;
  }

  public function calculateArea() {
    return 3.14 * $this->radius * $this->radius;
  }
}

$rectangle = new Rectangle(5, 10);
$circle = new Circle(7);

echo $rectangle->calculateArea();  // 输出50
echo $circle->calculateArea();  // 输出153.86

Ringkasan:

PHP menyediakan ciri lanjutan seperti kawalan akses, pewarisan terkapsul dan polimorfisme terkapsul Mereka boleh membantu kami mencapai pengkapsulan, melindungi data objek dan menyediakan penggunaan semula kod dan kebolehskalaan. Menguasai ciri ini boleh meningkatkan kebolehselenggaraan dan keselamatan kod, menjadikan pembangunan perisian lebih cekap.

Atas ialah kandungan terperinci Ciri lanjutan enkapsulasi dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn