Aller au contenu

Les classes

Exemple d'une classe

Les classes servent à décrire un objet de manière générale. Celle-ci pourra être instanciée ou réutilisée. Elle sert en sorte de base.

MonObjet.java
public class MonObjet {

    private String unePropTexte = "Valeur non définie";
    private Integer unePropNombre;
    private Float unePropDecimale;
    private Boolean unePropVraiFaux;

    // Un constructeur vide
    public MonObjet() { }

    // Un second constructeur avec des valeurs
    public MonObjet (String unePropTexte) {
        this.unePropTexte = unePropTexte;
    }

    // Une méthode statique pour créer un objet avec des valeurs par défaut
    public static MonObjet builder() {
        return new MonObjet("Valeur par défaut");
    }

    // Une méthode pour assigner un nombre
    public void setNombre(int unePropNombre) {
        this.unePropNombre = unePropNombre;
    }

    // Une fonction pour obtenir le nombre
    public Integer getNombre() {
        return unePropNombre;
    }

    // Remplacer la fonction toString() pour l'afficher en console
    @Override
    public String toString() {
        return "MonObjet : unePropTexte='" + unePropTexte + "'";
    }
}

La classe MonObjet pourrait alors être instancié de multiples façons :

// Instancier mes objets
MonObjet obj1 = new MonObjet();
MonObjet obj2 = new MonObjet("Valeur Initiale");
MonObjet obj3 = MonObjet.builder();

// Afficher à la console - utilise la fonction toString() de l'objet
System.out.println(obj1);
System.out.println(obj2);
System.out.println(obj3);

Pour avoir le résultat suivant :

MonObjet : unePropTexte='Valeur non définie'
MonObjet : unePropTexte='Valeur Initiale'
MonObjet : unePropTexte='Valeur par défaut'

Les mots-clés

Mot Description
public Permet l'utilisation à l'extérieur de l'objet instancié
private Restreint l'utilisation à l'objet même
static Permet l'utilisation sans avoir à instancier l'objet
final Sur une classe, indique qu'elle ne pourra pas être héritée (extends)
Sur une fonction, indique qu'elle ne pourra pas être remplacée (@Overload)
Sur une variable, indique qu'elle ne pourra pas être remplacée (constante)
void Indique une fonction qui ne retourne rien (une méthode)
extends Permet d'hériter d'une autre classe
implements Permet d'hériter d'une autre classe
abstract Sur une classe, indique qu'elle possède des fonctions abstraites à définir
Sur une fonction, indique que la fonction est à définir

Implémentation d'une classe

Un exemple classique d'une classe est une Personne. Celle-ci possède :

  • Un nom et un prénom
  • Une date de naissance
  • Un genre

Ce sont des propriétés d'une classe. Une fois instanciée, on pourra alors créer plusieurs Personne avec un nom, date de naissance et genre différent :

  • Sébastien, 1985, genre masculin
  • Valérie, 1990, genre féminin
  • Rémy, 1980, genre douillet

Des actions peuvent être définies à l'aide de fonctions sur une Personne, comme calculer l'age. La fonction getAge() pourra alors calculer l'âge individuellement des objets :

sebastien.getAge()  // Retourne 39
valerie.getAge()    // Retourne 34
remy.getAge()       // Retourne 44