L’objet en Java
1. Les langages objet
Les deux parties précédentes de ce chapitre vous ont présenté ce qu’est la programmation objet. Il existe plusieurs
langages orientés Objet. On parle de Programmation Orientée Objet (POO). Les prémices de la programmation objet
sont anciennes (pour de l’informatique) : 1967 avec le langage Simula, puis Smalltalk. L’âge d’or débute au début des
années 1980, avec tout d’abord l’Objective C (encore très utilisé notamment dans le développement de MacOS et de
ses outils), puis le "C with Classes » en 1983, qui deviendra le C++, puis Eiffel, puis le Lisp Objet, et ainsi de suite.
Les années 1990 ont vu l’explosion de l’objet à toutes les sauces pour le meilleur et pour le pire, et pas uniquement
dans les langages. Ainsi des bases de données objet sont apparues. D’anciens langages comme le Pascal, le Basic ou
même le COBOL ont évolué vers l’objet : Delphi, Visual Basic, Cobol Objet, etc. Même les langages macros propres à
des suites bureautiques (Ms Office, OpenOffice.org) ou de base de données (Access, Paradox) se targuent d’être des
langages objet. Si la définition de l’objet correspond à peu près à ce qui vous a été présenté depuis le début de ce
chapitre, les puristes doivent dans certains cas bien rire.
L’arrivée de Java comme vrai langage objet de haut niveau a changé beaucoup de choses : reprenant les bonnes idées
du C++, il l’adapte en un tout plus simple et plus pratique, adapté aux besoins modernes des développeurs et surtout
des applications. La force de SUN a été de proposer un langage adapté à une large gamme de besoins : des applets
Java, l’apprentissage de l’objet, les applications déportées, les serveurs d’applications, etc.
Le gros concurrent de la plateforme Java (Java, ses outils, ses API, etc) se nomme .NET avec le langage C# (prononcez
C sharp) et est évidemment objet. Les exemples de ce livre auraient parfaitement pu être développés en C#, sachant
que le langage est maintenant disponible ailleurs que sous Windows.
La suite vous présente des notions d’objet en Java. Elle se limitera aux notions que vous avez rencontrées depuis le
début de ce chapitre. Pour un meilleur apprentissage des fonctionnalités objet avancées de Java, les Editions ENI
proposent des livres spécialisés dans ce domaine, comme "J2SE, les fondamentaux de la programmation Java" de
Benjamin Aumaille. Quant à une approche de l’objet plus orientée vers la conception d’interfaces graphiques, vous
trouverez l’essentiel dans «Conception et programmation objet, Applications de gestion en environnement
graphique » de Pascal Danone.
2. Déclaration des classes et objets
Inconsciemment ou non, vous utilisez l’objet dans Java depuis les premiers exemples de ce livre. Dans le premier
chapitre, il vous a été demandé de ne pas vous soucier à ce moment de la déclaration du programme principal.
Ensuite, des variables comme les chaînes, les tableaux et surtout les structures (pour lesquelles il a été question de
tricher) sont des objets. Enfin, toutes les fonctions que vous avez pu soit utiliser directement soit créer sont des
méthodes d’objets, et quelques variables qui vous ont été présentées comme globales sont des membres.
Pas trop surpris ni secoué ? Non ? Tant mieux. Autant faire le point tout de suite : quasiment tout est objet en Java.
Une classe, ses attributs et ses membres se déclarent ainsi :
class nom_classe {
// liste des attributs
public int att1 ;
protected int att2 ;
private String att3 ;
// liste des méthodes
public void methode1() {
// code méthode1
}
private int methode2() {
// code méthode2
}
}
Vous remarquez que ça ressemble très fortement aux structures du chapitre 5. Et pour cause, il a fallu tricher en Java
pour utiliser une classe comme une structure. La structure est en fait une classe uniquement composée d’attributs
publics, d’où l’expression courante qui dit qu’une classe est une structure avec des fonctions.
Voici un exemple simplifié d’implémentation de la classe Ecran faisant apparaître deux constucteurs via le
polymorphisme paramétrique et une méthode modif_type() appelée par l’un des constructeurs ou d’où vous voulez,
puisque la méthode est publique. Cet exemple fait aussi apparaître l’utilisation d’une variable statique et son utilisation
- 1 -
© ENI Editions - All rigths reserved - Jonifar lina
216
1. Les langages objet
Les deux parties précédentes de ce chapitre vous ont présenté ce qu’est la programmation objet. Il existe plusieurs
langages orientés Objet. On parle de Programmation Orientée Objet (POO). Les prémices de la programmation objet
sont anciennes (pour de l’informatique) : 1967 avec le langage Simula, puis Smalltalk. L’âge d’or débute au début des
années 1980, avec tout d’abord l’Objective C (encore très utilisé notamment dans le développement de MacOS et de
ses outils), puis le "C with Classes » en 1983, qui deviendra le C++, puis Eiffel, puis le Lisp Objet, et ainsi de suite.
Les années 1990 ont vu l’explosion de l’objet à toutes les sauces pour le meilleur et pour le pire, et pas uniquement
dans les langages. Ainsi des bases de données objet sont apparues. D’anciens langages comme le Pascal, le Basic ou
même le COBOL ont évolué vers l’objet : Delphi, Visual Basic, Cobol Objet, etc. Même les langages macros propres à
des suites bureautiques (Ms Office, OpenOffice.org) ou de base de données (Access, Paradox) se targuent d’être des
langages objet. Si la définition de l’objet correspond à peu près à ce qui vous a été présenté depuis le début de ce
chapitre, les puristes doivent dans certains cas bien rire.
L’arrivée de Java comme vrai langage objet de haut niveau a changé beaucoup de choses : reprenant les bonnes idées
du C++, il l’adapte en un tout plus simple et plus pratique, adapté aux besoins modernes des développeurs et surtout
des applications. La force de SUN a été de proposer un langage adapté à une large gamme de besoins : des applets
Java, l’apprentissage de l’objet, les applications déportées, les serveurs d’applications, etc.
Le gros concurrent de la plateforme Java (Java, ses outils, ses API, etc) se nomme .NET avec le langage C# (prononcez
C sharp) et est évidemment objet. Les exemples de ce livre auraient parfaitement pu être développés en C#, sachant
que le langage est maintenant disponible ailleurs que sous Windows.
La suite vous présente des notions d’objet en Java. Elle se limitera aux notions que vous avez rencontrées depuis le
début de ce chapitre. Pour un meilleur apprentissage des fonctionnalités objet avancées de Java, les Editions ENI
proposent des livres spécialisés dans ce domaine, comme "J2SE, les fondamentaux de la programmation Java" de
Benjamin Aumaille. Quant à une approche de l’objet plus orientée vers la conception d’interfaces graphiques, vous
trouverez l’essentiel dans «Conception et programmation objet, Applications de gestion en environnement
graphique » de Pascal Danone.
2. Déclaration des classes et objets
Inconsciemment ou non, vous utilisez l’objet dans Java depuis les premiers exemples de ce livre. Dans le premier
chapitre, il vous a été demandé de ne pas vous soucier à ce moment de la déclaration du programme principal.
Ensuite, des variables comme les chaînes, les tableaux et surtout les structures (pour lesquelles il a été question de
tricher) sont des objets. Enfin, toutes les fonctions que vous avez pu soit utiliser directement soit créer sont des
méthodes d’objets, et quelques variables qui vous ont été présentées comme globales sont des membres.
Pas trop surpris ni secoué ? Non ? Tant mieux. Autant faire le point tout de suite : quasiment tout est objet en Java.
Une classe, ses attributs et ses membres se déclarent ainsi :
class nom_classe {
// liste des attributs
public int att1 ;
protected int att2 ;
private String att3 ;
// liste des méthodes
public void methode1() {
// code méthode1
}
private int methode2() {
// code méthode2
}
}
Vous remarquez que ça ressemble très fortement aux structures du chapitre 5. Et pour cause, il a fallu tricher en Java
pour utiliser une classe comme une structure. La structure est en fait une classe uniquement composée d’attributs
publics, d’où l’expression courante qui dit qu’une classe est une structure avec des fonctions.
Voici un exemple simplifié d’implémentation de la classe Ecran faisant apparaître deux constucteurs via le
polymorphisme paramétrique et une méthode modif_type() appelée par l’un des constructeurs ou d’où vous voulez,
puisque la méthode est publique. Cet exemple fait aussi apparaître l’utilisation d’une variable statique et son utilisation
- 1 -
© ENI Editions - All rigths reserved - Jonifar lina
216
