C'est un ensemble de données et de fonctions regroupées dans une même entité. Les fonctions qui opèrent sur les données sont appelées des méthodes.
Java est un langage orienté objet : tout appartient à une classe sauf les variables de types primitives.
Pour accéder à une classe il faut en déclarer une instance de classe ou objet.
Une classe comporte sa déclaration, des variables et les définitions de ses méthodes.
Une classe se compose de deux parties : une en-tête et un corps. Le corps peut être divisé en 2 sections : la déclaration des données et des constantes et la définition des méthodes. Les méthodes et les données sont pourvues d'attributs de visibilité qui gèrent leur accessibilité par les composants hors de la classe.
La syntaxe de déclaration d'une classe est la suivante :
modificateurs class nom_de_classe [extends classe_mere] [implements interfaces] { ... }
Les modificateurs de classe (ClassModifiers) sont :
- abstract la classe contient une ou des méthodes abstraites, qui n'ont pas de définition explicite. Une classe déclarée abstract ne peut pas être instanciée : il faut définir une classe qui hérite de cette classe et qui implémente les méthodes nécessaires pour ne plus être abstraite.
- final la classe ne peut pas être modifiée, sa redéfinition grâce à l'héritage est interdite. Les classes déclarées final ne peuvent donc pas avoir de classes filles.
- private la classe n'est accessible qu'à partir du fichier où elle est définie
- public La classe est accessible partout
Les modificateurs abstract et final ainsi que public et private sont mutuellement exclusifs.
Marquer une classe comme final peut permettre au compilateur et à la JVM de réaliser quelques petites optimisations.
Le mot clé extends permet de spécifier une superclasse éventuelle : ce mot clé permet de préciser la classe mère dans une relation d'héritage.
Le mot clé implements permet de spécifier une ou des interfaces que la classe implémente. Cela permet de récupérer quelques avantages de l'héritage multiple.
Les objets contiennent des attributs et des méthodes. Les attributs sont des variables ou des objets nécessaires au fonctionnement de l'objet. En Java, une application est un objet. La classe est la description d'un objet. Un objet est une instance d'une classe. Pour chaque instance d'une classe, le code est le même, seules les données sont différentes à chaque objet.
Il est nécessaire de définir la déclaration d'une variable ayant le type de l'objet désiré.
L'opérateur new se charge de créer une instance de la classe et de l'associer à la variable
MaClasse m = new MaClasse();
Les objets ne sont pas des éléments statiques et leur durée de vie ne correspond pas forcément à la durée d'exécution du programme.
La durée de vie d'un objet passe par trois étapes :
la déclaration de l'objet et l'instanciation grâce à l'opérateur new
l'utilisation de l'objet en appelant ses méthodes la suppression de l'objet : elle est automatique en Java grâce à la machine virtuelle. La restitution de la mémoire inutilisée est prise en charge par le récupérateur de mémoire (garbage collector). Il n'existe pas d'instruction delete comme en C++.