php 面向对象编程(oop)是模拟真实实体的编程范例。oop 的核心概念包括:类和对象:类定义对象的蓝图,对象是类的实例。封装性:对象属性和方法与其他代码隔离开来。继承:子类可以继承父类的属性和方法。多态性:同名方法在运行时根据对象的类型表现出不同的行为。
PHP 面向对象编程:实战演练
简介
面向对象编程 (OOP) 是现代软件开发中广泛采用的编程范例,它基于对真实世界实体进行建模的理念。在这篇文章中,我们将深入探索 PHP 中的 OOP,并通过实战案例来展示它的强大功能。
类和对象
在 OOP 中,类是对象的蓝图,它定义了对象的数据和行为。对象是类的实例,它拥有自己的数据和行为,但行为受其所属类的定义约束。
代码示例:
class Car {
private $model;
private $make;
public function __construct($model, $make) {
$this->model = $model;
$this->make = $make;
}
public function getDetails() {
return "Model: {$this->model}, Make: {$this->make}";
}
}
$car = new Car('Camry', 'Toyota');
echo $car->getDetails();
封装性
封装性是 OOP 的核心原则之一,它描述了将对象的属性和方法与其他代码隔离的能力。
代码示例:
class User {
private $username;
private $password;
public function setUsername($username) {
// 验证用户名并设置
$this->username = $username;
}
public function getUsername() {
return $this->username;
}
}
$user = new User();
$user->setUsername('admin');
echo $user->getUsername();
继承
继承允许从一个现有类(父类)创建新类(子类),新类将继承父类的数据和行为,同时还可定义自己的特定属性和方法。
代码示例:
class Vehicle {
private $make;
private $model;
public function __construct($make, $model) {
$this->make = $make;
$this->model = $model;
}
public function getDetails() {
return "Make: {$this->make}, Model: {$this->model}";
}
}
class Car extends Vehicle {
private $numWheels;
public function __construct($make, $model, $numWheels) {
parent::__construct($make, $model);
$this->numWheels = $numWheels;
}
public function getDetails() {
return parent::getDetails() . ", Num Wheels: {$this->numWheels}";
}
}
$car = new Car('Toyota', 'Camry', 4);
echo $car->getDetails();
多态性
多态性允许父类和子类方法具有相同的名称,但在运行时表现出不同的行为,具体取决于对象的实际类型。
代码示例:
class Polygon {
abstract public function getArea();
}
class Rectangle extends Polygon {
private $width;
private $height;
public function __construct($width, $height) {
$this->width = $width;
$this->height = $height;
}
public function getArea() {
return $this->width * $this->height;
}
}
class Circle extends Polygon {
private $radius;
public function __construct($radius) {
$this->radius = $radius;
}
public function getArea() {
return pi() * pow($this->radius, 2);
}
}
function calculateTotalArea($polygons) {
$totalArea = 0;
foreach ($polygons as $polygon) {
$totalArea += $polygon->getArea();
}
return $totalArea;
}
$polygons = [
new Rectangle(5, 10),
new Circle(5),
];
echo calculateTotalArea($polygons);
以上就是PHP面向对象编程:实战演练的详细内容,更多请关注编程网其它相关文章!