Maison  >  Article  >  développement back-end  >  Programmation orientée objet PHP : exercice pratique

Programmation orientée objet PHP : exercice pratique

WBOY
WBOYoriginal
2024-05-09 21:57:01514parcourir

La programmation orientée objet (POO) PHP est un paradigme de programmation qui simule des entités réelles. Les concepts de base de la POO incluent : Classes et objets : les classes définissent des plans pour les objets, qui sont des instances de classes. Encapsulation : les propriétés et les méthodes des objets sont isolées des autres codes. Héritage : les sous-classes peuvent hériter des propriétés et des méthodes de la classe parent. Polymorphisme : une méthode du même nom présente un comportement différent au moment de l'exécution en fonction du type d'objet.

Programmation orientée objet PHP : exercice pratique

Programmation orientée objet PHP : procédure pas à pas pratique

Introduction

La programmation orientée objet (POO) est un paradigme de programmation largement adopté dans le développement de logiciels modernes qui repose sur l'idée de modélisation. entités du monde réel. Dans cet article, nous explorerons en profondeur la POO en PHP et démontrerons sa puissance à travers des exemples pratiques.

Classes et objets

En POO, une classe est le modèle d'un objet, qui définit ses données et son comportement. Un objet est une instance d'une classe qui possède ses propres données et son propre comportement, mais le comportement est régi par la définition de la classe à laquelle il appartient.

Exemple de code :

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();

Encapsulation

L'encapsulation est l'un des principes fondamentaux de la POO, qui décrit la capacité d'isoler les propriétés et les méthodes d'un objet d'un autre code.

Exemple de code :

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();

Inheritance

L'héritage permet la création d'une nouvelle classe (classe enfant) à partir d'une classe existante (classe parent). La nouvelle classe héritera des données et du comportement de la classe parent, et peut également définir ses propres propriétés et méthodes spécifiques.

Exemple de code :

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();

Polymorphisme

Le polymorphisme permet aux méthodes de classe parent et enfant d'avoir le même nom mais de présenter un comportement différent au moment de l'exécution en fonction du type réel de l'objet.

Exemple de code :

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);

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn