Concepts de la Programmation Orientée Objet en Java

Définition des Classes et des Objets

Dans Java, une classe sert de modèle pour définir des objets partageant des caractéristiques communes. Un objet représente une instance concrète de cette classe.

Définition d'une Classe


public class NomClasse {
    // Variables d'instance (attributs)
    private String attribut1;
    private int attribut2;

    // Méthodes (comportements)
    public void action() {
        // Corps de la méthode
    }

    // Constructeurs
    public NomClasse() {
        // Constructeur par défaut
    }

    // Blocs de code et classes internes peuvent aussi être inclus
}

Création d'un Objet


NomClasse instance = new NomClasse();

Points Importants

  • Une classe servant à modéliser un concept métier (classe JavaBean) ne contient pas de méthode main ; les classes avec main sont des classes de test.
  • Les noms de classes commencent par une majuscule et suivent le format CamelCase, conformément aux conventions d'identifiants Java.
  • Plusieurs classes peuvent être définies dans un fichier Java, mais une seule peut être publique, et son nom doit correspondre au nom du fichier. En pratique, il est recommandé de placer une classe par fichier.
  • Les variables d'isntance n'ont pas besoin d'être initialisées explicitement ; elles reçoivent des valeurs par défaut.

Encapsulation

L'encapsulation implique de cacher les données internes d'un objet et d'exposer uniquement des interfaces contrôlées via des méthodes publiques. Cela permet de protéger l'intégrité des données.

Le Mot-clé private

Le modificateur d'accès private restreint l'accès aux membres d'une classe à cette classe uniquement. Toutes les variables d'instance devraient être déclarées private, avec des méthodes publiques d'accès (getters) et de modification (setters).


public class Personne {
    private String nom;

    public String getNom() {
        return this.nom;
    }

    public void setNom(String nouveauNom) {
        this.nom = nouveauNom;
    }
}

Prinicpe de Proximité

Lorsqu'une variable locale et une variable d'instance portent le même nom dans une méthode, la variable locale a priorité. Pour accéder à la variable d'instance, utilisez le mot-clé this.

Constructeurs

Les constructeurs sont des méthodes spéciales utilisées pour initialiser des objets lors de leur création. Ils partagent le nom de la classe et n'ont pas de type de retour.


public class Exemple {
    private int valeur;

    // Constructeur sans paramètre
    public Exemple() {
        this.valeur = 0;
    }

    // Constructeur avec paramètre
    public Exemple(int val) {
        this.valeur = val;
    }
}

Notes sur les Constructeurs

  • Si aucun constructeur n'est défini, Java fournit un constructeur par défaut sans paramètres.
  • La définition d'un constructeur explicite supprime le constructeur par défaut.
  • Les constructeurs peuvent être surchargés (même nom, paramètres différents).
  • Il est recommandé d'implémenter à la fois un constructeur sans paramètre et un avec tous les paramètres.

Classe JavaBean Standard

  • Le nom de la classe doit être descriptif.
  • Toutes les variables d'instance doivent être private.
  • Fournir un constructeur sans paramètre et un avec tous les paramètres.
  • Implémenter des méthodes getter et setter pour chaque variable d'instance.

Représentation en Mémoire d'un Objet

  1. Chargement du fichier de classe.
  2. Déclaration de la variable locale pointant vers l'objet.
  3. Allocation d'espace en mémoire heap.
  4. Initialisation par défaut des variables d'instance.
  5. Initialisation explicite des variables d'instance.
  6. Exécution du constructeur pour initialisation finale.
  7. Affectation de l'adresse mémoire à la variable.

Variables d'Instance vs Variables Locales

Aspect Variables d'Instance Variables Locales
Position Dans la classe, hors des méthodes Dans des méthodes ou blocs de code
Initialisation Valeurs par défaut (ex. 0, null) Pas de valeur par défaut ; doit être initialisée avant utilisation
Mémoire Mémoire heap Mémoire stack
Cycle de Vie Aussi longtemps que l'objet existe Durant l'exécution de la méthode
Portée Accessible dans toute la classe Accessible uniquement dans la méthode déclarante

Étiquettes: Java POO classes objets constructeurs

Publié le 17 juillet à 11h26