LA PROGRAMMATION ORIENTEE OBJET ET JAVA
Le concept de la programmation orientée objet
Au cours de ces dernières années, les informaticiens et chercheurs n’ont cessé de trouver des solutions très adaptées pour la réalisation de projets de développement d’applications et de programmation. Vue les évolutions et les résultats de ces recherches, la programmation orientée objet fut développée. Et les nombreux résultats des applications développées avec cette dernière nous montrent sa fiabilité.
Notion d’objet
Un objet se présente sous deux aspects totalement indépendants : – Un objet est référencé ou doté d’identité c’est-à-dire que l’objet en question ne signifie pas qu’il est défini comme valeur mais plutôt référencé en mémoire – Un objet est composé de données et de procédures liées à ces données. Figure 1.01 : Notion d’Objet
Notion de Classe
La classe n’est autre que le type ou modèle de l’objet. Elle définit alors la généricité de l’objet.
Données membres
Les données membres se présentent sous la forme de champs désignés par l’identificateur et doté d’un type. Par exemple pour l’objet X de type Olona, l’attribut anarana sera de type Chaîne. Ces champs sont généralement des variables qui définissent les propriétés et l’état de l’objet en question.
Procédure ou méthode
La procédure, souvent appelée méthode, définit les possibilités de manipulation d’un tel objet, c’est-à-dire qu’elle défini les opérations possibles pour l’objet courant (this). Dans une classe, on peut rencontrer plusieurs méthodes. La méthode constructrice en est l’initialisatrice. C’est elle qui est à l’origine de la création de l’objet (référencement). Par exemple, pour l’objet de type Olona une méthode définie peut effectuer le changement des données membres de l’objet. Figure 1.02 : Notion de Classe
Notion d’héritage
L’héritage est la particularité de la programmation orientée objet car sans lui, la programmation par objet ne serait qu’une simple méthodologie pour structurer les programmes. En effet, les langages qui ne sont pas orientées objets, comme Pascal ou C, peuvent utiliser les deux (2) notions précédentes. 5 La notion d’héritage est la spécialisation des objets, c’est-à-dire, elle défini une hiérarchie de type ou classe en allant d’une classe plus généralisée vers une qui soit plus spécialisée. C’est de là qu’intervient la possibilité de l’extension des applications développées par objet
Quelques langages orientés objets
Les plus connus sont Java et C++. Mais il y a aussi : Simula, Smalltalk, Turbo Pascal Object, Eiffel. Ces langages sont tous des langages orientés objets donc ils ont en commun les notions énoncées précédemment mais peuvent avoir chacun leur particularité et leur propre définition de ces notions. Néanmoins ces notions leur différencient des anciens langages de programmations. Dans la suite nous parlerons du langage Java car il présente une meilleure implémentation de ces aspects.
Le langage Java
Dans ce paragraphe nous allons essayer d’illustrer les notions de la programmation orientée objet à partir de Java. Nous nous focaliserons sur l’utilité de ce langage pour le développement des applications destinées pour les téléphones mobiles. Java est un des langages de programmation qui utilise le concept objet. Il présent sous trois (3) déclinaison : – Java 2 Standard Edition (J2SE) : destinée aux applications scientifiques et autres applications standards – Java 2 Micro Edition (J2ME) : destinée aux applications pour les systèmes embarqués – Java 2 Entreprise Edition (J2EE) : destinée pour les applications d’entreprises
Petite historique
Le mot Java signifie en argot de la langue anglaise : café. Le langage Java a été créé durant la dernière décennie du siècle derniers par la firme SUN MICROSYSTEM, dont l’objectif était de créer un environnement indépendant des parties matériels (hardware) mais aussi pour la programmation des autres petites bidules et appareils comme les téléviseurs, les téléphones mobiles, les systèmes embarqués pour les rendre plus interactifs vis-à-vis des utilisateurs.
Date historique 1993
projet Oak (langage pour l’électronique grand public) 6 1995 : Java / HotJava1 à WWW3 Mai 95 : Netscape achète la première License de Java Sept 95 : JDK 1.0 b1 (Java Developpement Kit) Déc. 96 : Microsoft se dit intéressé Jan : JDK 1.0.1 Fin 96: RMI, JDBC, JavaBeans, … Fév. 97: JDK
Le début de Java
A vrai dire, James Gosling voulait créer un langage de programmation indépendant de la plateforme hardware mais le projet Oak fut un échec. Le co-fondateur de la firme Sun Microsystems, Bill Joy, par la suite, proposa une nouvelle version d’Oak qui fut appelée Java et qui avait pour objectif de palier une déficience, dans le domaine des langages de programmation conçus pour des machines et des logiciels hétérogènes, qu’englobe Internet.
Java : un langage de programmation orientée objet D’après ce que nous avons déjà énoncé, Java est un langage de programmation orienté objet. Ce langage s’exécute sur n’importe quelle plate-forme. C’est un langage compilé et semi-interprété.
Les avantage de Java par rapport aux autres langages orientés objets
La robustesse et la sûreté de Java
Contrairement au langage C++, Java n’implémente pas la notion de poiteur. Son compilateur est très strict car toutes les valeurs doivent être initialisées. De plus, les traitements des exceptions sont obligatoires et les erreurs à l’exécution sont vérifiées tout comme les limites des tableaux.
La sécurité
L’accroissement de la sécurité en résolvant les problèmes liés aux allocations et à la libération explicite de mémoire est le réel avantage de Java en termes de sécurité par rapport aux autres langages. En effet, la désallocation de la mémoire dynamique est automatique grâce au mécanisme de Garbage Collector ou Ramasse Miettes qui est natif à Java.
La simplicité
Tout d’abord, nous pouvons dire que les syntaxes de Java sont très simples à comprendre. Il n’y a pas de préprocesseur, de « #define » du langage C, ou de recours aux fichiers headers. En Java, tous les contraints du langage C ont été éliminés pour ne garder que la notion de classes.
Portabilité Après compilation des codes Java, le compilateur génère du ByteCode qui sont des instructions binaire destinées pour la Java Virtual machine (JVM). Elle est disponible pour tout type de plateforme et aussi la firme Sun Microsystems offre cet outil gratuitement aux Javari. La compilation des programmes Java s’effectue comme l’indique la figure 1.03 Figure 1.03 : Compilation des programmes fait en JAVA
Synthèse des spécifications du langage Java
En java, tout est objet, excepté les types simples comme les entiers, les caractères, … Ce langage permet intrinsèquement d’avoir un code source réutilisable. De plus, toutes les classes en java dérivent de la classe java.lang.Object. 8 Comme nous l’avons mentionné déjà mentionné auparavant, il n’y a pas d’héritage multiple mais elle est sous une autre forme. On utilise pour cela la notion d’interfaces. Dans les interfaces, la classe est abstraite où toutes les méthodes sont abstraite. Au lieu des pointeurs, Java utilise la notion de référence. Lors de sa création, l’objet est attribut d’une référence mémoire. Une déclaration ne peut pas se référencier à la création d’un objet. La syntaxe et la sémantique du langage Java sont très proches de celles utilisées en C++. Il faut aussi préciser que Java est un langage compilé en un code intermédiaire dit ByteCode, avant de pouvoir être interprété de la même façon sur n’importe quel système. La machine virtuelle ne fait qu’exécuter le programme sans la compiler. Ce qui a été déjà mentionné ci-dessus, la gestion de mémoire est automatisée grâce au « Garbage Collector ». De ce fait, le programmeur ne se préoccupera plus de l’allocation de mémoire, ainsi que sa libération qui était un problème pour la programmation en C. Le traitement des exceptions est obligatoire en Java pour éviter les erreurs d’exécutions lorsqu’on exécute le programme.
REMERCIEMENTS |