Classes en Java

Introduction aux classes

En Java, les classes sont des plans ou modèles qui permettent de créer des objets. Elles définissent la structure générale et les données nécessaires à un objet, en incluant des éléments tels que les propriétés, les attributs et le comportement des méthodes. Les classes sont considérées comme un type de données de référence.

Syntaxe des classes

La syntaxe pour définir une classe en Java est la suivante :

accessModifier class ClassName {
  dataType attributeOne;
  dataType attributeTwo;
  dataType attributeN;

  static void classMethod() {
    // Code de la méthode ici
  }
}

Il est à noter que les noms de classe doivent toujours être en "PascalCase" et correspondre au nom du fichier (par exemple, ClassName.java). Le mot-clé class est utilisé pour créer des classes, et un modificateur d'accès (tel que public, private ou protected) est appliqué pour définir la visibilité de la classe dans d'autres fichiers.

Instances de classe

Les instances en Java se réfèrent aux objets créés à partir de classes existantes. Chaque instance dispose d'un ensemble de variables, appelées champs d'instance. Ces variables sont déclarées dans le contexte de l'instance et sont initialisées via un constructeur de classe. Par exemple, prenons deux instances d'une classe Person :

// Person.java
public class Person {
  int age;
  String name;

  // Méthode constructeur
  public Person(int age, String name) {
    this.age = age;
    this.name = name;
  }

  public static void main(String[] args) {
    Person Bob = new Person(31, "Bob");
    Person Alice = new Person(27, "Alice");

    System.out.println(Bob.name + " est " + Bob.age + ".");
    System.out.println(Alice.name + " est " + Alice.age + ".");
  }
}

Dans cet exemple, chaque instance de la classe Person a des champs age et name qui sont passés en tant qu'arguments lors de l'initialisation. L'exécution produira les résultats suivants :

Bob est 31.
Alice est 27.

Classes abstraites

Les classes peuvent utiliser le mot-clé abstract pour fournir des implémentations de méthodes communes aux sous-classes. Toute classe contenant des éléments abstraits (méthodes, champs, etc.) doit également être définie comme abstraite. Voici un exemple :

// Person.java
abstract class Person {
  int age;
  String name;
  abstract void talk(String message);
}