Najah.
Mon plan de révision⚡ Défi flash

Informatique · Écoles d'ingénieurs — ENSMR (Mines Rabat)

Programmation orientée objet (POO) avec Java

Le cours expliqué simplement, les questions que tous les élèves se posent et des exercices type examen national. Programme marocain, gratuit.

📘 Fiche de cours

L'essentiel du cours

La POO repose sur quatre piliers : l'encapsulation, l'héritage, le polymorphisme et l'abstraction. En Java, tout est structuré autour des classes (class) qui définissent des modèles, et des objets (new) qui sont des instances concrètes.

  • Encapsulation : Utilisation des modificateurs private, public, protected.
  • Héritage : Utilisation du mot-clé extends.
  • Polymorphisme : Utilisation de @Override pour redéfinir des méthodes.

Méthodes à maîtriser

  1. Création d'une classe avec attributs privés et accesseurs (Getters/Setters).
  2. Utilisation des constructeurs pour initialiser les objets.
  3. Mise en œuvre de l'héritage pour factoriser le code.
  4. Manipulation des interfaces pour définir des contrats de comportement.

Exemples corrigés

Exemple de classe simple :

public class Etudiant {
    private String nom;
    public Etudiant(String nom) { this.nom = nom; }
    public String getNom() { return nom; }
}

Erreurs fréquentes

  • Oublier le mot-clé new lors de l'instanciation.
  • Confondre this (référence à l'objet courant) et super (référence à la classe parente).
  • Ne pas respecter la visibilité des attributs (laisser en public au lieu de private).

🌉 Jisr : les mots du chapitre FR ⇄ AR

Tu as appris les sciences en arabe ? Touche un mot pour voir sa traduction et une explication en darija.

La question que tu n'oses pas poser en classe ? Pose-la à UstadZéro jugement, même en darija, même à minuit. Il t'explique pas à pas et corrige ta démarche. Gratuit.

Défi flash : 4 questions

Sans compte

🎯 Programmation orientée objet (POO) avec Java

1/4

Quel mot-clé permet d'empêcher l'héritage d'une classe ?

❓ Questions fréquentes

C'est quoi la différence entre une classe et un objet ?
  1. La classe est le plan de construction (le schéma).
  2. L'objet est la réalisation concrète (le bâtiment construit).

💡 À retenir : Une classe est un concept abstrait, alors qu'un objet occupe une place en mémoire.

Kifach n7seb l'espace li kayakhod objet f la mémoire ?
  1. L'espace dépend de la taille des types de données de tes attributs (ex: int prend 4 octets).
  2. La JVM (Java Virtual Machine) gère l'allocation dynamique via le Heap.

💡 À retenir : On ne calcule pas manuellement l'espace en Java, c'est le Garbage Collector qui gère la mémoire.

Pourquoi on utilise private pour les attributs ?
  1. Pour protéger les données contre des modifications directes non contrôlées.
  2. Pour forcer l'utilisation des méthodes set qui peuvent inclure des vérifications.

💡 À retenir : L'encapsulation garantit l'intégrité des données de l'objet.

Chno hiya la différence bin extends et implements ?
  1. extends est utilisé pour l'héritage de classe (une seule classe parente).
  2. implements est utilisé pour implémenter une ou plusieurs interfaces.

💡 À retenir : extends = héritage de structure, implements = héritage de comportement.

Est-ce qu'on peut avoir plusieurs constructeurs dans une classe ?

Oui, c'est ce qu'on appelle la surcharge des constructeurs (Constructor Overloading).

💡 À retenir : Les constructeurs doivent avoir des signatures (paramètres) différentes.

Wach momkin nwarat mn jouj dyal les classes f d9a wahda ?

Non, Java ne supporte pas l'héritage multiple de classes pour éviter les conflits (problème du diamant).

💡 À retenir : Java autorise l'héritage multiple uniquement via les interfaces.

C'est quoi le rôle de static ?
  1. Un membre static appartient à la classe et non à une instance spécifique.
  2. Il est partagé par tous les objets de la classe.

💡 À retenir : static = commun à tous les objets.

Kifach n3ayet l'constructeur dyal la classe mère ?

On utilise le mot-clé super() à l'intérieur du constructeur de la classe fille.

💡 À retenir : super() doit être la première instruction du constructeur.

C'est quoi une classe abstraite ?

Une classe qui ne peut pas être instanciée et qui peut contenir des méthodes sans corps (abstraites).

💡 À retenir : Elle sert de modèle de base pour d'autres classes.

C'est quoi le polymorphisme ?

C'est la capacité d'un objet à prendre plusieurs formes, souvent via la redéfinition de méthodes.

💡 À retenir : Le polymorphisme permet d'appeler la méthode spécifique à l'objet réel lors de l'exécution.

Pourquoi on utilise final ?
  1. Sur une variable : rend la valeur constante.
  2. Sur une méthode : empêche la redéfinition.
  3. Sur une classe : empêche l'héritage.

💡 À retenir : final = immuable ou non modifiable.

C'est quoi une interface ?

C'est un contrat qui définit les méthodes qu'une classe doit obligatoirement implémenter.

💡 À retenir : Une interface ne contient que des signatures de méthodes (par défaut).

✍️ Exercices type examen national

Exercice 1

Soit une classe Vehicule avec un attribut marque. Créer une classe Voiture qui hérite de Vehicule et ajoute un attribut nombrePortes. Ajouter un constructeur pour chaque classe.

Voir la correction détaillée : inscription gratuite

Exercice 2

Définir une interface Affichable avec une méthode afficher(). Faire en sorte que la classe Livre implémente cette interface.

Voir la correction détaillée : inscription gratuite

Exercice 3

Créer une classe CompteBancaire avec un attribut solde privé. Ajouter une méthode deposer(double montant) qui vérifie que le montant est positif.

Voir la correction détaillée : inscription gratuite

Un prof de Informatique pour aller plus loin

Les cours du soir avec des profs vérifiés arrivent : inscris-toi pour être prévenu(e) en premier.

Être prévenu(e) gratuitement

Autres chapitres de Informatique