首頁  >  文章  >  後端開發  >  PHP物件導向程式設計:實戰演練

PHP物件導向程式設計:實戰演練

WBOY
WBOY原創
2024-05-09 21:57:01530瀏覽

PHP 物件導向程式設計(OOP)是模擬真實實體的程式設計範例。 OOP 的核心概念包括:類別和物件:類別定義物件的藍圖,物件是類別的實例。封裝性:物件屬性和方法與其他程式碼隔離。繼承:子類別可以繼承父類別的屬性和方法。多態性:同名方法在執行時會根據物件的類型表現出不同的行為。

PHP物件導向程式設計:實戰演練

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物件導向程式設計:實戰演練的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn