0% ont trouvé ce document utile (0 vote)
41 vues10 pages

Java 4

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)
41 vues10 pages

Java 4

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

Bien sûr !

Voici un **cours détaillé et clair** sur les **constructeurs en Java**, la création d’instances,
les types de référence, la surcharge des constructeurs, et la valeur spéciale `null`.

---

# 📚 Cours détaillé : Constructeurs, Instances et Références en Java

---

## 1️⃣ Constructeur en Java

### Qu’est-ce qu’un constructeur ?

* Le **constructeur** est une méthode spéciale d’une classe.

* Son rôle principal est d’**initialiser un objet** lors de sa création.

* Le constructeur porte le **même nom que la classe**.

* Il ne retourne **rien** (pas même `void`).

---

### Exemple simple

```java

public class Maths {

public Maths() {

System.out.println("I am constructor");
}

public static void main(String[] args) {

System.out.println("I am main");

Maths obj1 = new Maths(); // appel du constructeur

```

**Explication :**

* Quand on fait `new Maths()`, le constructeur `Maths()` est appelé.

* Cela affiche :

```

I am main

I am constructor

```

---

## 2️⃣ Création d’une instance (objet)

* Pour créer un objet, on utilise le mot-clé `new` suivi du constructeur.

* Le constructeur peut recevoir des paramètres pour initialiser les variables d’instance.
### Exemple avec paramètres

```java

public class Person {

int age;

public Person(int a) { // constructeur avec paramètre

age = a;

public static void main(String[] args) {

Person p = new Person(20); // création d'une instance avec âge 20

System.out.println("Age is " + p.age); // Affiche: Age is 20

```

---

## 3️⃣ Types de données référence (Reference Data Types)

* En Java, une variable d’un type **référence** ne contient pas directement la valeur, mais une
**adresse mémoire** pointant vers l’objet.

* Le type référence correspond au nom de la classe.


### Exemple avec la classe `Cat`

```java

public class Cat {

public Cat() {

// instructions pour créer un chat

public static void main(String[] args) {

Cat garfield = new Cat(); // garfield est une référence à un objet Cat

System.out.println(garfield); // Exemple de sortie : Cat@76ed5528

```

* L’impression `Cat@76ed5528` correspond à la **référence mémoire** de l’objet (adresse, identifiant).

---

## 4️⃣ Surcharge des constructeurs (Constructor Signatures)

* Une classe peut avoir **plusieurs constructeurs**, différenciés par leur **liste de paramètres**
(signature).

* Cela s’appelle la **surcharge**.

* Le compilateur choisit le constructeur à appeler selon les arguments fournis.


### Exemple

```java

public class Cat {

String furType;

boolean containsClaws;

// Constructeur avec paramètres

public Cat(String furLength, boolean hasClaws) {

furType = furLength;

containsClaws = hasClaws;

public static void main(String[] args) {

Cat garfield = new Cat("Long-hair", true);

```

---

## 5️⃣ La valeur spéciale `null`

* `null` signifie qu’une variable **référence aucun objet**.

* Une variable peut être initialisée à `null` pour indiquer qu’elle ne pointe vers rien.
### Exemple

```java

public class Bear {

String species;

public Bear(String speciesOfBear) {

species = speciesOfBear;

public static void main(String[] args) {

Bear baloo = new Bear("Sloth bear");

System.out.println(baloo); // Affiche quelque chose comme Bear@4517d9a3

baloo = null; // baloo ne référence plus d’objet

System.out.println(baloo); // Affiche: null

```

---

## 🔑 Résumé

| Concept | Description | Exemple |


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

| Constructeur | Méthode spéciale pour initialiser un objet | `public Person(int age) { this.age
= age; }` |

| Création d’instance | `new ClassName(...)` crée un nouvel objet | `Person p = new Person(20);`
|

| Type référence | Variable qui référence un objet en mémoire | `Cat garfield = new Cat();`
|

| Surcharge constructeur | Plusieurs constructeurs avec différentes signatures | `Cat(String fur, boolean
claws)` et `Cat()` |

| Valeur `null` | Référence qui ne pointe vers aucun objet | `baloo = null;` |

Super ! Voici une **série d’exercices sur les constructeurs, instances, types de référence et null** — du
facile au difficile — pour bien pratiquer ces concepts.

---

# 🧪 Exercices : Constructeurs et Instances en Java

---

## Niveau Facile

### Exercice 1

Crée une classe `Car` avec un attribut `String model`.

Ajoute un constructeur qui initialise `model`.

Dans `main`, crée une instance de `Car` avec le modèle `"Tesla"` et affiche le modèle.
---

### Exercice 2

Crée une classe `Book` avec deux attributs : `String title` et `String author`.

Ajoute un constructeur pour initialiser les deux attributs.

Crée un objet `Book` et affiche ses informations.

---

## Niveau Moyen

### Exercice 3

Modifie la classe `Book` pour avoir deux constructeurs :

* Un constructeur avec paramètres `title` et `author`.

* Un constructeur sans paramètres qui initialise `title` et `author` avec `"Unknown"`.

Teste les deux constructeurs dans `main`.

---

### Exercice 4

Crée une classe `Student` avec attributs `name` (String) et `age` (int).
Ajoute un constructeur avec paramètres.

Ajoute une méthode `isAdult()` qui retourne `true` si l’âge est au moins 18, sinon `false`.

Dans `main`, crée plusieurs étudiants et affiche qui est majeur.

---

## Niveau Difficile

### Exercice 5

Crée une classe `Rectangle` avec `width` et `height`.

Ajoute deux constructeurs :

* Un constructeur avec paramètres.

* Un constructeur sans paramètres qui initialise `width` et `height` à 1.

Ajoute une méthode `area()` qui retourne l’aire du rectangle.

Teste les deux constructeurs et affiche les aires.

---

### Exercice 6

Crée une classe `Dog` avec `name` et `breed`.

Dans `main`, crée une variable `Dog dog1` initialisée à `null`.

Teste si `dog1` est `null` avant de créer un nouvel objet `Dog`.


Affiche un message adapté selon que `dog1` est `null` ou non.

Vous aimerez peut-être aussi