19 面向对象编程之类与对象的基本概念

在上一篇中,我们探讨了数据验证与安全性,学习了如何处理表单数据,此时可能会遇到一些复杂的逻辑,这就引出了面向对象编程(OOP)的重要性。OOP使得代码的组织和管理更加高效,而在本章中,我们将关注“类”和“对象”的基本概念。

什么是类和对象?

  • 是对象的模板,定义了对象的属性和行为。
  • 对象是类的实例,是具有特定属性值和行为的实体。

类的基本结构

在PHP中,类的定义通常包含属性(类的变量)和方法(类的函数)。以下是一个简单的类定义的例子:

1
2
3
4
5
6
7
8
9
10
class Car {
// 属性
public $color;
public $model;

// 方法
public function honk() {
return "Beep! Beep!";
}
}

属性

在上面的例子中,colormodel就是类 Car 的属性。通过这些属性,我们可以描述车的特性。

方法

honk() 方法是汽车的行为。调用这个方法时,汽车将“鸣笛”。

创建对象

使用类我们可以创建对象,例如:

1
2
3
$myCar = new Car();
$myCar->color = "red";
$myCar->model = "Toyota";

在这里,$myCarCar 类的一个实例(即对象),我们为它的 color 属性赋值为 "red"model 属性赋值为 "Toyota"

访问对象属性和方法

可以使用箭头操作符 -> 访问对象的属性和方法。例如:

1
2
echo "My car is a " . $myCar->color . " " . $myCar->model; // 输出: My car is a red Toyota
echo $myCar->honk(); // 输出: Beep! Beep!

构造函数

构造函数是在创建对象时自动调用的方法。我们可以使用构造函数来初始化对象的属性:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Car {
public $color;
public $model;

// 构造函数
public function __construct($color, $model) {
$this->color = $color;
$this->model = $model;
}

public function honk() {
return "Beep! Beep!";
}
}

// 使用构造函数创建对象
$myCar = new Car("blue", "Honda");
echo "My car is a " . $myCar->color . " " . $myCar->model; // 输出: My car is a blue Honda

理解 self$this

  • $this 代表当前对象实例,在对象内使用,可以访问对象的属性和方法。
  • self 代表类本身,通常用于访问类的静态属性和方法。

封装

封装是面向对象编程的一大特性,通过设置属性的访问控制来保护对象的状态,使其只能通过类的方法来访问。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class Car {
private $color;
private $model;

public function __construct($color, $model) {
$this->color = $color;
$this->model = $model;
}

public function getColor() {
return $this->color;
}

public function setColor($color) {
$this->color = $color;
}

public function honk() {
return "Beep! Beep!";
}
}

$myCar = new Car("green", "Ford");
$myCar->setColor("yellow");
echo "My car is a " . $myCar->getColor() . " " . $myCar->model; // 输出: My car is a yellow Ford

在这个例子中,getColor()setColor() 方法用于安全地访问和更改属性 color 的值。

总结

通过本章的学习,我们认识了面向对象编程中的基本概念:类与对象。我们看到了如何定义类,创建对象,使用构造函数,并理解了封装的关键思想。这些概念将为我们在下一章的“继承与多态”奠定基础。面向对象的设计使得我们的代码更具可读性和可复用性。

下篇将深入介绍“继承与多态”的重要性及用法,敬请期待!

19 面向对象编程之类与对象的基本概念

https://zglg.work/php-lang-zero/19/

作者

IT教程网(郭震)

发布于

2024-08-14

更新于

2024-08-15

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论