Conception et création d'objets

Si vous êtes nouveau dans les objets, vous serez très probablement habitué aux programmes Java créés en utilisant un seul fichier - un fichier de classe principale Java. C'est la classe qui a la méthode principale définie pour le point de départ d'un programme Java.

La définition de classe à l'étape suivante doit être enregistrée dans un fichier séparé. Il suit les mêmes directives de dénomination que vous avez utilisées pour le fichier de classe principale (c'est-à-dire que le nom du fichier doit correspondre au nom de la classe avec l'extension de nom de fichier .java). Par exemple, lorsque nous créons une classe Book, la déclaration de classe suivante doit être enregistrée dans un fichier appelé "Book.java".

Les données qu'un objet contient et comment il manipule ces données sont spécifiées par la création d'une classe. Par exemple, ci-dessous est une définition très basique d'une classe pour un objet Book:

Les champs sont utilisés pour stocker les données de l'objet et combinés, ils constituent l'état d'un objet. Comme nous créons un objet Book, il serait logique qu'il contienne des données sur le titre, l'auteur et l'éditeur du livre:

instagram viewer

Les champs ne sont que des variables normales avec une restriction importante - ils doivent utiliser le modificateur d'accès "privé". Le mot-clé privé signifie que ces variables ne sont accessibles que depuis l'intérieur de la classe qui les définit.

Remarque: cette restriction n'est pas appliquée par le compilateur Java. Vous pouvez créer une variable publique dans votre définition de classe et le langage Java ne s'en plaindra pas. Cependant, vous allez briser l'un des principes fondamentaux de la programmation orientée objet - les données encapsulation. L'état de vos objets ne doit être accessible que par leurs comportements. Ou pour le dire en termes pratiques, vos champs de classe doivent uniquement être accessibles via vos méthodes de classe. C'est à vous de faire respecter l'encapsulation des données sur les objets que vous créez.

La méthode constructeur utilise le même nom que la classe (c'est-à-dire Book) et doit être accessible au public. Il prend les valeurs des variables qui lui sont passées et définit les valeurs des champs de classe; mettant ainsi l'objet à son état initial.

Les comportements sont les actions qu'un objet peut effectuer et sont écrits en tant que méthodes. Pour le moment, nous avons une classe qui peut être initialisée mais ne fait pas grand-chose d'autre. Ajoutons une méthode appelée "displayBookData" qui affichera les données actuelles contenues dans l'objet:

Nous pourrions ajouter autant de méthodes et de champs que nous le souhaitons, mais pour l'instant considérons la classe Book comme complète. Il a trois champs pour contenir des données sur un livre, il peut être initialisé et il peut afficher les données qu'il contient.

À gauche du signe égal se trouve la déclaration d'objet. Cela veut dire que je veux créer un objet Book et l'appeler "firstBook". Sur le côté droit du signe égal se trouve la création d'une nouvelle instance d'un objet Book. Ce qu'il fait, c'est aller à la définition de la classe Book et exécuter le code à l'intérieur de la méthode constructeur. Ainsi, la nouvelle instance de l'objet Book sera créée avec les champs title, author et publisher définis sur "Horton Hears A Who!", "Dr Suess" et "Random House" respectivement. Enfin, le signe égal définit notre nouvel objet firstBook comme la nouvelle instance de la classe Book.