page précédantetable des matièrespage suivante
 
 

La programmation orientée objet

Quelques notions

Objet: un agglomérat logiciel de données et procédures qui agissent sur ces donnés. Les procédures sont appelées des méthodes.

 Classe: un patron (prototype) qui définit le type de l’objet. Chaque objet représente une instance spécifique de la classe qui possède ses données propres.

 Pour illustrer ces notions, on va utiliser une classe "voiture" et un objet "voiture de George"; le terme "objet" est utilisé ici au sens commun du terme: la voiture de George est quelque chose qui existe, qui a certaines caractéristiques - forme, couleur, ... et qui réalise certaines actions (roule, s'arrête, tombe en panne,...). Quand on parle d’un objet informatique créé grâce à un langage objet on utilise exactement la même approche : il a des caractéristiques (on parlera de "données membres" ou d’ "attributs") et peut réaliser des actions (on parlera de "méthodes", de "comportements" ou de "fonctions membres").
 
 

L’encapsulation des données – le processus d’agrégation des données d’un objet avec ses méthodes. Elle introduit un différence entre la visibilité des données et celle des méthodes pour l’extérieur.

partie interne – les données : inaccessible ou cachées, aux autres objets. Protégée de toute altération venant de l’extérieur. Peut être transformée à tout moment sans que cela n’affecte les autres parties du programme.

 partie externe – les méthodes : l’interface de l’objet vis-à-vis le reste de programme.

Cela signifie qu'il n'est pas possible d'agir directement sur les données d'un objet – il est nécessaire de passer par l'intermédiaire de ses méthodes qui joue ainsi le rôle d'interface obligatoire. On traduit ça en disant que l'appel d'une méthode est en fait l'envoi d'un message à l'objet.

Le grand mérite de l'encapsulation est que, vu de l'extérieur, un objet se caractérise uniquement par les spécifications de ses méthodes. La manière dont sont réellement implantées les données est sans importance. On décrit souvent ce masquage des détails d'implémentation par "abstraction des données". Les données peuvent être modifiées, sans que cela impose la modification des autres parties du programme.

L'encapsulation facilite considérablement la maintenance - chaque objet est maintenu indépendamment des autres.
 

L'héritage : mécanisme de création d’une nouvelle classe (sous classe, classe dérivée) à partir d'une classe existante (super classe, classe de base), qui a à la fois les caractéristiques de la classe existante et des caractéristiques spécifiques à cette nouvelle classe.

Quand une sous classe est constituée à partir d’une classe de base elle hérite de toutes les propriétés de cette classe – autant de ces données que de ces méthodes. Les sous-classes peuvent avoir des variables et des méthodes supplémentaires par rapport à celles dont elles ont hérité de leur super classe. Dans notre exemple la voiture à essence possède un réservoir à essence, la voiture électrique – batterie électriques. On peut aussi introduire des méthodes correspondants.

 
 

Arbre d’héritage :

 Un arbre d'héritage (hiérarchie des classes) rassemble beaucoup d'un arbre généalogique, mais contrairement à ce dernier, les classes d'un arbre d'héritage deviennent de plus en plus spécifiques en descendant dans l'arbre.

En Java toutes les classes sont dérivée d’une super classe appelée Objet.

La machine virtuelle Java

Le site Web officiel de Java est http://www.javasoft.com/.

Contient des outils et la distribution du kit de développement Java de Sun pour Windows ainsi que pour Unix/Linux.

 Une grande partie des exemples dans ce cours sont prit de la livre "Thinking in Java" de Bruce Eckel qu'on peut trouver à http://www.EckelObjet.com/

 Le 23 mai 1995, Sun Microsystems, Inc a annoncé officiellement Java à la conférence "Sun World'95" à San Francisco et Netscape annonçait qu'il achèterait les droits de langage pour son browser. Au printemps 1995, Java n'avait pratiquement aucun poids dans le monde de communication en ligne, mais à la fin de même année il atteignait un record de popularité.

Pour le moment SUN a annoncé plisieurs versions  de Java – 1.0, 1.1 (sous le nom JDK). Du décembre 98 au  décembre 2006 les versions portent le nom Java 2 (J2SE). Le 11 décembre la version Java 6 a é annoncé


 Java est à la fois une langage compilé et interprété. Le code source Java est compilé en un pseudo-code universel binaires, destiné à une machine virtuelle. Il est appelé souvent "J-code" ou "bytes code".

La machine virtuelle Java représente un iterpréteur. Elle se comporte comme un processeur réel, exécute un jeu d'instructions fondé sur une machine à pile et gère un tas en guise de mémoire.

Spécifications diffusés librement - chacun peux créer une MVJ.

MVJ et langage fournissent une spécification complète qui ne dépend pas d'application.

Le code de Java est implicitement portable. La même application peut être exécutée sur toute plate-forme fournissant l'environnement de machine virtuelle Java.

L'unité fondamentale de code Java est la classe. Les classes sont recherchées est chargées de manière dynamique lors de l'exécution, lorsqu'elles sont nécessaires à une application.

Java est un interpréteur rapide, mais quand même c'est un interpréteur - la même application conçue en C++ serait beaucoup plus rapide.

Possibilité d'optimiser l'exécution en compilant à la volée le pseudo-code en code machine – compilation JIT ("Just In Time").
 
 

Structure d'un programme Java 

Le premier programme  Java

public class Bienvenue{
    public static void main (String
[] args){
         System.out.println("bienvenue a la programmation Java");
   }
}

application : programme execute sous sytème d'exploitation local  java

appletпрограма, която се изпълнява от "plug-in" java на навигатор

La plateforme Java

Une platforme:  hardware ou bien software environement du programme -  Microsoft Windows, Linux, Solaris OS,  Mac OS. La pluspart des platformes sont combinaision entre le système d'exploitation et le hardware. La  plateforme Java  est seulement software plateforme qui travaille sur differents  hardware-based plateforms.

La plateforme Java a deux composents:

API - c'est une large collection de software composants groupés en bibliothèques appelés packages

page précédantetable des matièrespage suivante