# Séance B : Concepts de la POO

## Objectifs

* Mettre en œuvre les concepts de propriété et de méthode.
* Mettre en œuvre les concepts de classe et d’objet
* Construire une application PHP Orienté Objet

{% hint style="info" %}
Pour les TD et TP de POO nous allons travailler en local pour gagner en efficacité et éviter de devoir uploader le code sur un serveur pour tester. Le plus simple est d'utiliser l'image docker que vous avez créé en WR314 : <https://docs.mmi-troyes.fr/books/wr314-2025/page/seance01-container-buts3>.

Vous pouvez aussi utiliser une version logiciel tel que *WampServer* ou *Xamp* pour Windows, ou *MAMP* pour MacOs, si vous rencontrez des difficultés avec Docker.
{% endhint %}

## Enoncé et travail à faire

### Exercice 1

#### **Les propriétés**

Un Véhicule est un **OBJET** du monde réel. La classe se caractérise par :

* Sa marque (du texte)
* Sa puissance en CV (un nombre entier)
* Son kilométrage (un nombre décimal)

#### **Les méthodes**

Utiliser un véhicule a pour effet d’augmenter la valeur du kilométrage. On souhaite pouvoir afficher les caractéristiques du véhicule

#### **Programmation**

* Le code de la classe *Vehicule* (avec une majuscule) doit être enregistré dans le fichier V**ehicule.php**
* Le code de l’application doit être enregistré dans le fichier **tp1\_vehicule.php**.
* Utilisez la commande *require* pour appeler la classe *Vehicule* dans l’application.
* Ecrire la classe pour définir les propriétés et les méthodes de l’objet *Vehicule*
* Ecrire une application :
* qui instanciera les deux véhicules suivants

| Nom du véhicule | marque  | puissance | kilometrage |
| --------------- | ------- | --------- | ----------- |
| vehicule1       | RENAULT | 90        | 15000       |
| vehicule2       | PEUGEOT | 110       | 20000       |

* qui affiche les caractéristiques des deux véhicules
* qui modifie la puissance de la vehicule1 : nouvelle valeur 110
* qui affiche le kilométrage des véhicules après un déplacement : le vehicule1 parcoure 3500 km et la vehicule2 parcoure 1500 km.

### Exercice 2

Considérant qu'un chien est caractérisé par sa race, son âge et son poids, définissez une classe permettant de le représenter. Un chien est par ailleurs un animal qui vieillit, et qui peut prendre du poids. On peut afficher toutes les caractéristiques des chiens.

1. Définir la classe Chien
2. Créer le fichier tp1\_chien.php pour tester la classe.
3. Créer les deux chiens suivants :

| Nom du chien | Race            | Age | Poids |
| ------------ | --------------- | --- | ----- |
| Chien1       | Labrador        | 4   | 25    |
| Chien2       | Berger Allemand | 6   | 20    |

Ecrire le code permettant de réaliser les étapes suivantes :

* Afficher les données des chien1 et chien2
* Le chien1 prend un an de plus (c'est son anniversaire :))
* Le chien2 mange et grossit de 1,5Kg
* Le chien1 perd 2kg
* A chaque étape afficher les informations du chien.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://cours.davidannebicque.fr/programmation-orientee-objet-en-php/decouverte/seance-2.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
