0% ont trouvé ce document utile (0 vote)
36 vues16 pages

Java 2

Transféré par

aichamahroug10
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats RTF, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
36 vues16 pages

Java 2

Transféré par

aichamahroug10
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats RTF, PDF, TXT ou lisez en ligne sur Scribd

Parfait !

Voici un **cours détaillé, clair et facile à comprendre** sur la partie


suivante de ton programme Java, qui utilise un **constructeur** dans une
**classe `Person`**.

---

# 🎓 Cours Java — Les classes, objets et constructeurs

## 🧱 Exemple de base

```java

public class Person {

int age;

String name;

// Constructor method

public Person(int age, String name) {

[Link] = age;

[Link] = name;

public static void main(String[] args) {


Person Bob = new Person(31, "Bob");

Person Alice = new Person(27, "Alice");

```

---

## 1️⃣ C’est quoi une **classe** ?

Une **classe** en Java est un **modèle** ou **plan de construction** pour


créer des objets.

👉 Ici, la classe s’appelle `Person`, donc elle sert à créer des **personnes**.

```java

public class Person {

...

```

---
## 2️⃣ Déclaration des **attributs** (état de l’objet)

Dans la classe, on a deux **attributs** :

```java

int age;

String name;

```

🔹 `age` : un nombre entier (ex : 27, 45, etc.)

🔹 `name` : une chaîne de caractères (ex : "Bob", "Alice")

Ces deux variables définissent **l’état** ou les **caractéristiques** d’une


personne.

---

## 3️⃣ Le **constructeur** : méthode spéciale

```java

public Person(int age, String name) {


[Link] = age;

[Link] = name;

```

### ✅ À quoi ça sert ?

Un **constructeur** est une **méthode spéciale** qui est appelée


**automatiquement** quand on crée un objet avec `new`.

### ✅ Que fait ce constructeur ?

* Il **reçoit deux paramètres** : `age` et `name`

* Il les **stocke dans les variables de l’objet**

* `[Link] = age;`

→ le `[Link]` est l’attribut de l’objet,

→ le `age` vient du paramètre (entre les parenthèses)

### 🧠 Pourquoi utiliser `this` ?

Pour faire la **différence** entre la variable de la classe et le paramètre.


---

## 4️⃣ Création des **objets** dans `main`

```java

public static void main(String[] args) {

Person Bob = new Person(31, "Bob");

Person Alice = new Person(27, "Alice");

```

### 💡 Que se passe-t-il ici ?

* `new Person(31, "Bob")` → crée un objet `Person`

* Le constructeur est **automatiquement appelé**

* `Bob` a :

* `age = 31`

* `name = "Bob"`

Pareil pour `Alice`.


---

## ✅ Résumé tableau

| Élément | Rôle |

| -------------- | --------------------------------------- |

| `class Person` | Déclare un modèle pour des personnes |

| `int age` | Attribut pour l'âge |

| `String name` | Attribut pour le nom |

| `Person(...)` | Constructeur qui initialise les données |

| `new Person()` | Crée une personne avec des valeurs |

---

## 🧪 Amélioration avec une méthode d’affichage

Ajoute une méthode pour afficher les infos :

```java

public void afficherInfos() {

[Link]("Nom : " + name);

[Link]("Âge : " + age);


}

```

Puis dans `main` :

```java

[Link]();

[Link]();

```

---

## 🎯 Ce que tu as appris :

* Créer une classe avec des **attributs**

* Utiliser un **constructeur** pour initialiser un objet

* Créer des **objets** avec `new`

* Utiliser **`this`** pour distinguer les variables

* Ajouter des **méthodes** à une classe

Très bien ! Voici une **série d'exercices N°2** sur la notion de **constructeurs
en Java**, avec une difficulté progressive : **facile → moyen → difficile**.
À la fin, tu trouveras les **corrections** complètes. 🧠✅

---

# 🧪 **Série d’exercices 2 – Les Constructeurs en Java**

---

## 🌟 **Niveau Facile**

### 🟢 **Exercice 1 – Compléter le constructeur**

**Énoncé :**

Complète la classe `Person` pour qu’elle possède :

* un constructeur qui initialise l’âge et le nom,

* une méthode `afficherInfos()` qui affiche les deux attributs.

**Objectif :**

→ Comprendre comment utiliser un constructeur simple.

---
### 🟢 **Exercice 2 – Créer plusieurs personnes**

**Énoncé :**

Dans la méthode `main`, crée trois personnes avec des âges et noms différents.

Affiche les infos de chacune avec `afficherInfos()`.

**Objectif :**

→ Créer plusieurs objets à partir d’un même modèle.

---

## ⚙️**Niveau Moyen**

### 🟡 **Exercice 3 – Ajouter un attribut genre**

**Énoncé :**

Ajoute un troisième attribut `String genre` (Homme/Femme/Autre) dans la


classe.

Modifie le constructeur pour l’inclure. Affiche le tout dans `afficherInfos()`.

**Objectif :**
→ Étendre un constructeur avec plusieurs paramètres.

---

### 🟡 **Exercice 4 – Calculer l'année de naissance**

**Énoncé :**

basée sur l’âge (suppose que l’année actuelle est 2025).


Ajoute une méthode `anneeNaissance()` qui retourne l’année de naissance,

**Objectif :**

→ Ajouter une méthode de calcul à la classe.

---

## 🔥 **Niveau Difficile**

### 🔴 **Exercice 5 – Surcharge de constructeur**

**Énoncé :**

Ajoute un **deuxième constructeur** qui permet de créer une `Person` **sans


donner l’âge**, avec une valeur par défaut de 0.
Exemple :

```java

Person p = new Person("Inconnu");

```

**Objectif :**

→ Comprendre la **surcharge de constructeur** (`constructor overloading`).

---

### 🔴 **Exercice 6 – Affichage formaté**

**Énoncé :**

Améliore la méthode `afficherInfos()` pour afficher un message comme :

```

"Bonjour, je m'appelle Alice, j'ai 25 ans et je suis une Femme."

```

**Objectif :**

→ Travailler avec des chaînes formatées et les attributs de l’objet.


---

## ✅ **CORRECTIONS**

---

### ✔️Correction Exercice 1

```java

public class Person {

int age;

String name;

public Person(int age, String name) {

[Link] = age;

[Link] = name;

public void afficherInfos() {

[Link]("Nom : " + name);

[Link]("Âge : " + age);


}

```

---

### ✔️Correction Exercice 2

```java

public static void main(String[] args) {

Person p1 = new Person(30, "Sophie");

Person p2 = new Person(25, "Youssef");

Person p3 = new Person(40, "Nadia");

[Link]();

[Link]();

[Link]();

```

---
### ✔️Correction Exercice 3

```java

public class Person {

int age;

String name;

String genre;

public Person(int age, String name, String genre) {

[Link] = age;

[Link] = name;

[Link] = genre;

public void afficherInfos() {

[Link]("Nom : " + name);

[Link]("Âge : " + age);

[Link]("Genre : " + genre);

```
---

### ✔️Correction Exercice 4

```java

public int anneeNaissance() {

return 2025 - age;

// Dans main

[Link]("Année de naissance de " + [Link] + " : " +


[Link]());

```

---

### ✔️Correction Exercice 5

```java

// Premier constructeur

public Person(int age, String name, String genre) {

[Link] = age;
[Link] = name;

[Link] = genre;

// Surcharge (constructeur alternatif)

public Person(String name) {

[Link] = 0;

[Link] = name;

[Link] = "Non spécifié";

```

---

### ✔️Correction Exercice 6

```java

public void afficherInfos() {

[Link]("Bonjour, je m'appelle " + name +

", j'ai " + age + " ans et je suis " + genre + ".");

Vous aimerez peut-être aussi