Le langage de programmation Java repose fortement sur la notion d'objets, ce qui en fait l'un des langages les plus populaires pour la programmation orientée objet (POO). La POO est un paradigme de programmation qui utilise des « objets » – qui peuvent contenir des données, sous forme de champs, souvent appelés attributs ; et le code, sous forme de procédures, souvent appelées méthodes, pour concevoir des applications et des programmes informatiques. Dans ce chapitre, nous explorerons la structure des classes et des objets en Java, en nous concentrant sur ses deux composants principaux : les attributs et les méthodes.
11.3.1. Le concept de classe en Java
Une classe en Java est une sorte de « plan » ou de « modèle » pour créer des objets. Il définit l’état et le comportement qu’auront les objets du type classe. L'état est représenté par des attributs et le comportement est représenté par des méthodes. Une classe est définie à l'aide du mot-clé class
, suivi du nom de la classe et d'une paire d'accolades qui encapsulent ses membres.
Voiture de classe publique {
// Les attributs
Balise de chaîne ;
Modèle de chaîne ;
année entière ;
double prix ;
// Méthodes
void accélérer() {
// code pour accélérer la voiture
}
frein nul() {
// code pour freiner la voiture
}
11.3.2. Attributs d'une classe
Les attributs, également appelés champs ou variables d'instance, sont les variables qui appartiennent à une classe. Ils sont utilisés pour stocker des informations sur l'état d'un objet. Chaque objet créé à partir de la classe aura sa propre copie de ces attributs. Les attributs peuvent être de n'importe quel type de données, comme des entiers, des booléens, des chaînes ou même des références à d'autres classes.
Les attributs peuvent avoir plusieurs modificateurs d'accès, tels que public
, private
, protected
ou aucun (package privé). Le choix du modificateur d’accès est crucial pour l’encapsulation, qui est un principe fondamental de la POO. L'encapsulation signifie garder les détails d'implémentation d'une classe cachés et exposer uniquement les méthodes et les attributs nécessaires à l'utilisation de la classe.
Les attributs privés (private
) ne sont accessibles qu'au sein de la classe elle-même et sont masqués aux autres classes. Pour permettre l'accès à ces attributs, des méthodes publiques, appelées getters et setters, sont souvent fournies.
11.3.3. Méthodes d'une classe
Les méthodes sont des fonctions définies au sein d'une classe qui opèrent sur des données (attributs) et sont utilisées pour exprimer le comportement des objets. Une méthode peut avoir des paramètres, qui sont des données qui lui sont transmises, et peut renvoyer une valeur. En Java, chaque méthode doit spécifier le type de données de la valeur qu'elle renvoie. Si une méthode ne renvoie aucune valeur, son type de retour est void
.
Tout comme les attributs, les méthodes peuvent également avoir des modificateurs d'accès, qui déterminent où elles peuvent être appelées. Les méthodes publiques
peuvent être appelées par n'importe quel objet de n'importe quelle classe. Les méthodes privées
ne peuvent être appelées qu'à partir de la classe elle-même. Les méthodes protected
peuvent être appelées au sein de la classe elle-même et par les sous-classes.
Les méthodes peuvent être surchargées (surchargées) ou remplacées (surchargées). La surcharge de méthodes se produit lorsque deux ou plusieurs méthodes de la même classe ont le même nom mais des listes de paramètres différentes. Le remplacement de méthode se produit lorsqu'une sous-classe fournit une implémentation spécifique pour une méthode déjà fournie par l'une de ses classes parentes.
11.3.4. Constructeurs
Un aspect particulier de la structure d'une classe sont les constructeurs. Les constructeurs sont des méthodes spéciales appelées lorsqu'un objet est instancié (créé). Ils ont le même nom de classe et n'ont pas de type de retour, pas même void
. Les constructeurs sont utilisés pour initialiser les attributs d'un objet avec des valeurs spécifiques.
Voiture de classe publique {
Strmarque commerciale;
Modèle de chaîne ;
année entière ;
double prix ;
// Constructeur
public Carro (marque String, modèle String, année int, prix double) {
this.brand = marque ;
this.model = modèle ;
cette.année = année ;
this.price = prix ;
}
11.3.5. Mot-clé 'ce'
En Java, le mot-clé this
est utilisé dans les méthodes et les constructeurs pour référencer l'objet actuel. C'est principalement utile lorsque nous avons des paramètres de méthode ou des constructeurs portant le même nom que les attributs de classe, pour les différencier.
11.3.6. Encapsulation et abstraction
L'encapsulation est l'une des principales fonctionnalités de la programmation orientée objet. Il vous permet de masquer l'implémentation interne d'une classe et d'exposer uniquement ce qui est nécessaire au monde extérieur. Ceci est réalisé en utilisant des modificateurs d'accès pour restreindre l'accès aux attributs et méthodes de classe. L'abstraction est un concept connexe qui fait référence à la pratique consistant à réduire la complexité en exposant uniquement les détails nécessaires à l'utilisation d'un objet, tout en masquant l'implémentation interne.
11.3.7. Exemple pratique
Considérons un exemple pratique d'une classe ContaBancaria
avec ses attributs et méthodes encapsulées :
classe publique ContaBancaria {
détenteur de chaîne privé ;
double solde privé ;
Compte bancaire public (titulaire de la chaîne, double solde initial) {
this.holder = titulaire;
this.saldo = balance initiale ;
}
public double getBalance() {
retourner le solde ;
}
dépôt public nul (valeur double) {
si (valeur > 0) {
solde += valeur ;
}
}
retrait booléen public (valeur double) {
si (valeur > 0 && solde >= valeur) {
solde -= valeur ;
renvoie vrai ;
}
renvoie faux ;
}
Dans cet exemple, les attributs holder
et balance
sont privés, ce qui signifie qu'ils ne sont pas accessibles directement depuis l'extérieur de la classe. Au lieu de cela, les méthodes getSaldo
, deposit
et casar
sont fournies pour interagir avec ces attributs de manière contrôlée.
Conclusion
Comprendre la structure des classes et des objets en Java est fondamental pour développer des logiciels orientés objet. Les attributs définissent l'état des objets, tandis que les méthodes définissent leur comportement. Une utilisation appropriée des modificateurs d'accès et la pratique de l'encapsulation et de l'abstraction sont essentielles pour créer des programmes robustes et maintenables. Grâce à ces connaissances, vous êtes bien équipé pour commencer à concevoir et implémenter vos propres classes en Java.