0Pricing
PHP Academy · 课时

封装和访问修饰符

保护并控制对属性和方法的访问

封装和访问修饰符 是 CoddyKit 上的免费 PHP Academy 课时。 这是第 4 节课,共 5 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 PHP Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 PHP Academy 课程共包含 5 节课。

封装和访问修饰符

封装和访问修饰符

欢迎学习封装!本课将介绍封装如何帮助保护类中的数据,以及访问修饰符如何控制类属性和方法的可见性。让我们深入了解吧!

封装和访问修饰符 — 插图 1

什么是封装

什么是封装

封装是将数据(属性)以及操作这些数据的方法捆绑在类中,并限制从类外部直接访问它们的一种实践。

封装的主要特性:

  • 保护对象的内部状态。
  • 通过方法提供对类属性的受控访问。
  • 帮助维护数据完整性。

提示:封装是构建安全且模块化应用程序的基础概念。

PHP 中的访问修饰符

PHP 中的访问修饰符

访问修饰符定义类属性和方法的可见性。PHP 提供三种可见性级别:

  • public:可从任何位置访问。
  • protected:只能在类及其子类中访问。
  • private:只能在类自身内部访问。

要点:使用访问修饰符控制属性和方法的访问及修改方式。

使用公开属性

使用 public 属性

声明为 public 的属性可以从任何位置访问和修改。例如:

提示:对于需要公开访问的属性和方法,请使用 public。

<?php
  class Car {
    public $make;
    public $model;

    public function drive() {
      echo "The car is driving.";
    }
  }

  $car = new Car();
  $car->make = "Toyota";
  $car->model = "Corolla";

  echo "Make: " . $car->make . ", Model: " . $car->model;
  $car->drive();
?>

使用私有属性

使用 private 属性

声明为 private 的属性只能在类内部访问。例如:

要点:对于需要防止外部修改的属性,请使用 private。

<?php
  class BankAccount {
    private $balance;

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

    public function getBalance() {
      return $this->balance;
    }

    public function deposit($amount) {
      $this->balance += $amount;
    }
  }

  $account = new BankAccount(100);
  $account->deposit(50);
  echo "Balance: " . $account->getBalance(); // Outputs: Balance: 150
?>

使用受保护属性

使用 protected 属性

声明为 protected 的属性可以在类及其子类中访问。例如:

要点:使用 protected,允许子类访问父类的属性和方法。

<?php
  class Vehicle {
    protected $fuel;

    public function setFuel($fuel) {
      $this->fuel = $fuel;
    }
  }

  class Car extends Vehicle {
    public function getFuel() {
      return $this->fuel;
    }
  }

  $car = new Car();
  $car->setFuel("Gasoline");
  echo "Fuel: " . $car->getFuel(); // Outputs: Fuel: Gasoline
?>

获取方法与设置方法

获取方法与设置方法

封装通常会使用获取方法和设置方法,为私有属性提供受控访问。例如:

提示:使用设置方法在修改属性之前验证数据。

<?php
  class User {
    private $password;

    public function setPassword($password) {
      $this->password = $password;
    }

    public function getPassword() {
      return $this->password;
    }
  }

  $user = new User();
  $user->setPassword("my_secure_password");
  echo "Password: " . $user->getPassword();
?>

封装的优点

封装的优点

封装具有以下优点:

  • 保护对象的内部状态。
  • 通过集中管理属性控制逻辑,提高代码的可维护性。
  • 防止意外修改数据。
  • 限制对敏感数据的直接访问,增强安全性。

要点:封装是构建安全且模块化的面向对象程序的基本原则。

做得很好

做得很好

恭喜您!您已经了解了封装,以及访问修饰符如何控制类属性和方法的可见性。下一课我们将探索多态,以及它如何让对象的行为更加灵活。让我们继续编写代码吧!

封装和访问修饰符 — 插图 10

常见问题解答

「封装和访问修饰符」课时是免费的吗?

是的 — 「封装和访问修饰符」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 PHP Academy 课程的其余内容,请升级到 CoddyKit PRO。 PHP Academy 课程共包含 5 节课。

「封装和访问修饰符」这节课中我会学到什么?

保护并控制对属性和方法的访问 你通过在浏览器中直接运行的动手代码来练习 PHP Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 PHP Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 PHP Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 5 节。

「封装和访问修饰符」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 PHP Academy 课中编写并运行代码吗?

能。每节 PHP Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. PHP 面向对象编程入门
  2. 定义类和对象
  3. 继承
  4. 封装和访问修饰符
  5. 多态
← 返回 PHP Academy