public class Person {
// état d'un objet
int age;
String name;
// comportement d'un objet
public void set_value() {
age = 20;
name = "Robin";
public void get_value() {
System.out.println("Age is " + age);
System.out.println("Name is " + name);
// méthode principale (point d'entrée du programme)
public static void main(String [] args) {
// crée un nouvel objet de la classe Person
Person p = new Person();
// change l'état via le comportement
p.set_value();
}🧠 Traduction et explication ligne par ligne
✅ public class Person {
On crée une classe appelée Person (Personne).
Une classe, c'est comme un plan ou un modèle pour créer des objets.
🧱 État d’un objet
int age;
String name;
On déclare deux variables :
age (un nombre entier)
name (un texte ou une chaîne de caractères)
Ces variables représentent l'état ou les caractéristiques d’une personne.
🧭 Comportement d’un objet
public void set_value() {
age = 20;
name = "Robin";
Cette méthode s’appelle set_value (mettre des valeurs).
Elle donne une valeur à age (20) et name ("Robin").
public void get_value() {
System.out.println("Age is " + age);
System.out.println("Name is " + name);
Cette méthode get_value affiche les valeurs de age et name.
Elle imprime dans la console :
"Age is 20"
"Name is Robin"
🚀 Point de départ du programme
public static void main(String [] args) {
C’est ici que le programme commence à s’exécuter.
Person p = new Person();
On crée un objet p de la classe Person.
p.set_value();
On appelle la méthode set_value() sur l’objet p.
Donc maintenant p.age = 20 et p.name = "Robin".
❗❗ À noter
Tu n’as pas appelé get_value(), donc le programme n’affiche rien pour l’instant.
Si tu veux voir les valeurs, ajoute cette ligne dans main :
p.get_value();
✅ Résumé simple
Élément Ce que ça fait
class Crée un modèle
int, String Définissent les caractéristiques (état)
set_value() Met des valeurs
get_value() Affiche les valeurs
main() Lance le programme
new Person() Crée une "personne"
Parfait ! Voici une **série d’exercices progressifs** (de **facile à difficile**) basée
sur ton cours Java sur les **classes, objets, variables, et méthodes**. 🧠
Chaque exercice contient :
1. ✅ **Énoncé**
2. 🧩 **Objectif**
3. 📘 **Correction à la fin** (ne regarde que si tu bloques 😉)
---
# 🌱 **Série d’exercices Java — Classe `Person` et objets**
---
## 🌟 **Niveau 1 : Facile**
### 🟢 Exercice 1 — Créer une autre personne
**Énoncé :**
Complète le programme pour créer une **2e personne** appelée `"Alice"` avec
l’âge `30`. Ensuite, affiche ses informations.
**Objectif :**
* Comprendre comment créer plusieurs objets.
* Utiliser `set_value` et `get_value`.
---
### 🟢 Exercice 2 — Ajouter une méthode `birthday()`
**Énoncé :**
Ajoute une méthode appelée `birthday()` qui augmente l’âge de la personne de
**1 an**.
Puis dans `main`, appelle cette méthode après `set_value()` et affiche le résultat
avec `get_value()`.
**Objectif :**
* Modifier une valeur d’une variable.
* Appeler plusieurs méthodes.
---
### 🟢 Exercice 3 — Modifier `set_value` pour recevoir des paramètres
**Énoncé :**
Change la méthode `set_value()` pour qu’elle prenne **deux paramètres** : un
`int` pour l’âge et un `String` pour le nom.
Exemple d'appel : `p.set_value(25, "Julie");`
**Objectif :**
* Travailler avec des paramètres.
* Mieux personnaliser les objets.
---
## ⚙️**Niveau 2 : Moyen**
### 🟡 Exercice 4 — Vérifier l'âge
**Énoncé :**
Crée une méthode `isAdult()` qui **retourne `true` si la personne a 18 ans ou
plus**, sinon `false`.
Dans le `main`, affiche un message selon le résultat.
**Objectif :**
* Retourner une valeur booléenne.
* Utiliser une condition `if`.
---
### 🟡 Exercice 5 — Ajouter un constructeur
**Énoncé :**
Ajoute un **constructeur** à ta classe `Person` pour initialiser l’âge et le nom
directement quand on crée l’objet.
Exemple d'appel :
```java
Person p = new Person(22, "Lina");
```
**Objectif :**
* Comprendre les constructeurs.
* Éviter l’appel séparé de `set_value()`.
---
## 🔥 **Niveau 3 : Difficile**
### 🔴 Exercice 6 — Comparer deux personnes
**Énoncé :**
Ajoute une méthode `compareAge(Person other)` qui compare l’âge de la
personne actuelle avec une autre.
Elle doit afficher qui est plus âgé ou s’ils ont le même âge.
**Objectif :**
* Travailler avec un objet en paramètre.
* Comparer deux objets.
---
### 🔴 Exercice 7 — Liste de personnes et boucle
**Énoncé :**
Crée un tableau de 3 objets `Person`, avec des noms et âges différents.
Utilise une boucle pour afficher les noms des **majeurs uniquement**.
**Objectif :**
* Manipuler des tableaux d’objets.
* Utiliser une boucle + condition.
---
# ✅ **Corrections**
---
### ✔️Correction Exo 1 :
```java
Person p1 = new Person();
p1.set_value(); // Robin, 20
p1.get_value();
Person p2 = new Person();
p2.age = 30;
p2.name = "Alice";
p2.get_value();
```
---
### ✔️Correction Exo 2 :
```java
public void birthday() {
age++;
// Dans main
p.set_value();
p.birthday();
p.get_value();
```
---
### ✔️Correction Exo 3 :
```java
public void set_value(int a, String n) {
age = a;
name = n;
}
// Dans main
p.set_value(25, "Julie");
p.get_value();
```
---
### ✔️Correction Exo 4 :
```java
public boolean isAdult() {
return age >= 18;
// Dans main
if (p.isAdult()) {
System.out.println(p.name + " est majeur.");
} else {
System.out.println(p.name + " est mineur.");
}
```
---
### ✔️Correction Exo 5 :
```java
public Person(int a, String n) {
age = a;
name = n;
// Dans main
Person p = new Person(22, "Lina");
p.get_value();
```
---
### ✔️Correction Exo 6 :
```java
public void compareAge(Person other) {
if (this.age > other.age) {
System.out.println(this.name + " est plus âgé que " + other.name);
} else if (this.age < other.age) {
System.out.println(this.name + " est plus jeune que " + other.name);
} else {
System.out.println(this.name + " et " + other.name + " ont le même âge");
// Dans main
Person p1 = new Person(22, "Lina");
Person p2 = new Person(25, "Omar");
p1.compareAge(p2);
```
---
### ✔️Correction Exo 7 :
```java
Person[] people = {
new Person(17, "Ali"),
new Person(22, "Sarah"),
new Person(30, "Youssef")
};
for (int i = 0; i < people.length; i++) {
if (people[i].isAdult()) {
System.out.println(people[i].name + " est majeur.");