Rumah > Artikel > pembangunan bahagian belakang > Nota kajian PHP: Asas pengaturcaraan berorientasikan objek
Nota kajian PHP: Asas pengaturcaraan berorientasikan objek, contoh kod khusus diperlukan
Pengenalan:
Pengaturcaraan Berorientasikan Objek (OOP) ialah cara pemikiran pengaturcaraan yang menguraikan masalah kepada pelbagai objek dan menentukan interaksi antara objek untuk menyelesaikan masalah pengaturcaraan yang kompleks. Sebagai bahasa pengaturcaraan yang berkuasa, PHP juga menyokong pengaturcaraan berorientasikan objek. Artikel ini akan memperkenalkan konsep asas dan sintaks biasa pengaturcaraan berorientasikan objek dalam PHP, dan menyediakan contoh kod khusus.
class Person { // 成员变量 public $name; public $age; // 构造函数 public function __construct($name, $age) { $this->name = $name; $this->age = $age; } // 成员函数 public function sayHello() { echo "Hello, my name is " . $this->name . " and I am " . $this->age . " years old."; } } // 创建一个Person对象 $person = new Person("Alice", 25); $person->sayHello(); // 输出:Hello, my name is Alice and I am 25 years old.
Dalam contoh di atas, kami mentakrifkan kelas Orang, yang mengandungi dua pembolehubah ahli $nama dan $umur, pembina dan fungsi Ahli sayHello(). Segerakan kelas Person melalui kata kunci new
untuk mencipta objek Person dan panggil fungsi ahli objek sayHello() untuk mengeluarkan maklumat objek. new
关键字实例化Person类来创建一个Person对象,并调用对象的成员函数sayHello()输出对象的信息。
2.1 封装
封装是指将数据和方法封装在一个类中,并通过访问控制符(public、protected、private)控制数据和方法的访问权限。下面是一个封装的示例:
class Car { private $color; protected $price; public function __construct($color, $price) { $this->color = $color; $this->price = $price; } public function getColor() { return $this->color; } public function setColor($color) { $this->color = $color; } protected function getPrice() { return $this->price; } } $car = new Car("red", 50000); echo $car->getColor(); // 输出:red $car->setColor("blue"); echo $car->getColor(); // 输出:blue
在上面的示例中,我们定义了一个Car类,将颜色和价格封装在类中。通过getColor()和setColor()公有的方法来获取和设置颜色。同时,我们将价格属性设置为受保护的,只能在类内部和子类中访问。
2.2 继承
继承是指一个类可以通过继承另一个类的属性和方法。子类可以重写父类的方法,并且可以新增自己的属性和方法。下面是一个继承的示例:
class Car { protected $color; public function __construct($color) { $this->color = $color; } public function getColor() { return $this->color; } } class ElectricCar extends Car { private $batteryCapacity; public function __construct($color, $batteryCapacity) { parent::__construct($color); $this->batteryCapacity = $batteryCapacity; } public function getBatteryCapacity() { return $this->batteryCapacity; } } $electricCar = new ElectricCar("red", 50); echo $electricCar->getColor(); // 输出:red echo $electricCar->getBatteryCapacity(); // 输出:50
在上面的示例中,我们定义了一个Car类和一个ElectricCar类,ElectricCar类继承自Car类。子类ElectricCar通过parent::__construct()
Pengenkapsulan, pewarisan dan polimorfisme ialah tiga ciri teras pengaturcaraan berorientasikan objek. Mereka menyelesaikan masalah penggunaan semula dan pengembangan kod.
2.1 Enkapsulasi
Enkapsulasi bermaksud merangkum data dan kaedah dalam kelas, dan mengawal hak akses data dan kaedah melalui aksara kawalan akses (awam, dilindungi, peribadi). Berikut ialah contoh enkapsulasi:class Shape { public function calculateArea() { return 0; } } class Rectangle extends Shape { private $width; private $height; public function setDimensions($width, $height) { $this->width = $width; $this->height = $height; } public function calculateArea() { return $this->width * $this->height; } } class Circle extends Shape { private $radius; public function setRadius($radius) { $this->radius = $radius; } public function calculateArea() { return pi() * $this->radius * $this->radius; } } $shapes = array(new Rectangle(), new Circle()); $shapes[0]->setDimensions(5, 3); $shapes[1]->setRadius(2); foreach ($shapes as $shape) { echo $shape->calculateArea() . "<br>"; }
parent::__construct()
dan menambah atribut dan kaedah getBatteryCapacity(). 🎜🎜2.3 Polimorfisme🎜Polymorfisme bermaksud kaedah yang sama boleh memanggil tingkah laku yang berbeza berdasarkan objek yang berbeza. Iaitu, subkelas boleh mengatasi kaedah kelas induk untuk mencapai polimorfisme. Berikut ialah contoh polimorfisme: 🎜rrreee🎜 Dalam contoh di atas, kami telah mentakrifkan kelas Bentuk dan dua subkelas Segiempat dan Bulatan. Mereka berkongsi kaedah kelas induk calculateArea(), tetapi subkelas mengatasi kaedah ini untuk melaksanakan gelagat pengiraan kawasan yang berbeza. 🎜🎜Kesimpulan: 🎜Artikel ini memperkenalkan konsep asas dan sintaks biasa pengaturcaraan berorientasikan objek dalam PHP, dan menyediakan contoh kod khusus. Pengaturcaraan berorientasikan objek ialah cara pemikiran pengaturcaraan yang berkuasa yang boleh meningkatkan kebolehgunaan semula dan kebolehskalaan kod. Saya berharap pembaca dapat memperoleh pemahaman yang lebih mendalam tentang pengaturcaraan berorientasikan objek melalui artikel ini dan dapat menggunakannya secara fleksibel dalam pembangunan sebenar. 🎜Atas ialah kandungan terperinci Nota kajian PHP: Asas pengaturcaraan berorientasikan objek. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!