SlideShare une entreprise Scribd logo
1  sur  36
Télécharger pour lire hors ligne
Introduction à la Programmation
Orientée Objet (POO) - Java
LSIA - L2
TRAORE Yaya
Institut Burkinabè des Arts et Métiers (IBAM)
Université Joseph KI-ZERBO
Objectifs du cours
familiariser l'étudiant avec la programmation élémentaire en Java: types,
constantes versus variables, les énoncés de contrôle, les boucles, les
tableaux, en utilisant les concepts de la programmation objet: classes, objets,
méthodes
fournit une bonne expérience théorique et pratique de la programmation
orientée objets (P.O.O.) avec Java avec l'apprentissage de :
– l'écriture, la compilation et le débogage de programmes
– les concepts objets et les mécanismes d'héritage
3
Organisation du cours
Nous verrons :
– Approche de la programmation orientée objet
– Caractéristiques de Java et son environnement de développement
– Structures fondamentales
– Héritage ,Polymorphisme
– Les exceptions, les entrées / sorties en Java
– Les collections en Java
4
Références (1)
Bibliographie
– Au cœur de Java 2 : Volume I - Notions fondamentales.
C. Hortsmann et G. Cornell. The Sun Microsystems Press.
Java Series. CampusPress.
– Au cœur de Java 2 : Volume II - Fonctions avancées.
C. Hortsmann et G. Cornell. The Sun Microsystems Press.
Java Series. CampusPress.
– Passeport pour l’algorithmique objet. Jean-Pierre Fournier.
Thomsom Publishing International.
5
Références (2)
Webographie
– Pour récupérer le kit de développement de Sun
• http://java.sun.com/ (racine du site)
– Outils de développement
• Eclipse (http://www.eclipse.org)
• Netbeans (http://www.netbeans.com)
• Borland JBuilder (http://www.borland.com/jbuilder)
– Des exemples de programmes commentés
• http://www.technobuff.com/javatips/ (en anglais)
• http://developer.java.sun.com/developer/JDCTechTips/ (en
anglais)
6
Du problème au programme
Nécessité d’analyser le problème pour pouvoir le
traduire en une solution informatique
(cela semble évident, mais pourtant!)
– avant de construire un bâtiment, on fait un plan. Ce n’est
pas différent en informatique : conception de
l’algorithme, i.e. une réponse (rationnelle) au problème
posé
– puis mise en œuvre technique - le codage - dans un
langage de programmation, dans notre cas Java.
7
Analyse du problème (1)
Se poser les bonnes questions
– Quelles sont les objets qui interviennent dans le
problème? Quelles sont les données, les objets,
que le programme va manipuler?
– Quelles vont être les relations entre ces objets?
Quelles sont les opérations que je vais pouvoir
effectuer sur ces objets?
8
Analyse du problème (2)
Savoir être :
– efficace : quelle méthode me permettra
d’obtenir le plus vite, le plus clairement, le plus
simplement possible les résultats attendus ?
– paresseux : dans ce que j’ai développé avant,
que puis-je réutiliser ?
– prévoyant : comment s’assurer que le
programme sera facilement réutilisable et
extensible ?
Approche de la programmation orientée objet
Chaque langage de programmation appartient à une “famille” de langages
définissant une approche ou une méthodologie générale de programmation.
La programmation procédurale propose une méthodologie centrée en priorité
sur les traitements que le programme devra effectuer.
Par exemple , un programmeur C commencera par identifier ces traitements
pour écrire les fonctions qui les réalisent sur des données prises comme
paramètres d’entrée.
La programmation orientée-objet propose une méthodologie centrée sur les
données.
Par exemple le programmeur Java va d’abord identifier un ensemble
d’objets,tel que chaque objet représente un élément qui doit être utilisé ou
manipulé par le programme, sous la forme d’ensembles de données. Ce n’est
que dans un deuxième temps, que le programmeur va écrire les traitements, en
associant chaque traitement à un objet donné.
Approche POO(1)
Qu'est ce qu’un Programme Orientée Objet ?
– Ensemble d'objets autonomes et responsables qui s'entraident pour
résoudre un problème final en s'envoyant des messages.
Objet 1
Objet 2
Objet 3
Message
Approche POO(2)
Qu’est ce qu’un objet
– Objet = Données + Méthodes (Fonctions Membres)
DONNEES
Fonction 1 Fonction 2
Fonction
3
Fonction 4
Fonction 5
Fonction
6
Approche POO(3)
Encapsulation des données
– L’accès aux données des objets est réglementé
• Données privées à accès uniquement par les fonctions
membres
• Données publiques à accès direct par l’instance de l’objet
– Conséquences
• Un objet n’est vu que par ses spécifications
• Une modification interne est sans effet pour le fonctionnement
général du programme
• Meilleure réutilisation de l’objet
Approche POO(4)
Polymorphisme (du Grecqueàplusieurs formes)
– Un nom (de fonction par exemple) peut être associé à plusieurs
mais différentes utilisations
– Exemple
• Si a est un nombre complexe, sqrt(a) appellera si elle existe la
fonction adaptée au type de a.
• Dans un langage non OO, il aurait fallu connaître le nom de
deux fonctions distinctes (selon que a soit complexe ou réel)
• C’est le système qui choisit selon le type de l’argument ou de
l’opérande
Approche POO(5)
L’Héritage
– Permet de définir les bases d’un nouvel objet à partir d’un objet
existant
– Le nouvel objet hérite des propriétés de l’ancêtre et peut recevoir
de nouvelles fonctionnalités
Avantages
– Meilleures réutilisations des réalisations antérieures parfaitement
au point
Approche POO(6)
Concept de Classe
– Type réunissant une description
• D’une collection de données membres hétérogènes ayant un
lien entres elles
• D’une collection de méthodes (fonctions membres) servant à
manipuler les données membres
– Généralisation du type structure ou record des langages non OO
(classe = définition de données + définition de méthodes)
– Possibilité de fixer la visibilité externe des différents constituants
de la classe
Instance d’une classe
– C’est un objet initialisé à partir de la description figée d’une classe
Fonctions membres publiques
– Les constructeurs ;Les destructeurs;
– Les accesseurs ;Les mutateurs
Approche POO(7)
Instance d’une classe
– C’est un objet initialisé à partir de la description figée d’une classe
Fonctions membres publiques
– Les constructeurs
– Les destructeurs
– Les accesseurs
– Les mutateurs
Approche POO(8)
Les Constructeurs
– Permettent d’initialiser l’objets lors de sa création
• copie des arguments vers les données membres
• initialisation de variables dynamiques à la création de l’objet
– Sont appelés de manière automatique à la création de l’objet
– Peuvent être surchargésàOn peut en définir plusieurs de même
nom mais acceptant des arguments différents
– Possèdent le même nom que la classe
Approche POO(9)
Les Accesseurs
– Catégorie de fonctions membres qui permettent l’accès et
l’utilisation des informations privées contenues dans l’objet
Les Mutateurs
– Permettent de modifier l’état des données internes (publiques ou
privées) de l’objet
Approche POO(10)
Caractéristiques du langage Java
Le langage Java est un langage généraliste de programmation synthétisant les
principaux langages existants lors de sa création en 1995 par Sun Microsystems.
Il permet une programmation orientée-objet et reprend une syntaxe très proche de
celle du langage C.
Outre son orientation objet, le langage Java a l’avantage d’être:
Ø modulaire (on peut écrire des portions de code génériques, c-à-d
utilisables par plusieurs applications),
Ø rigoureux (la plupart des erreurs se produisent à la compilation et non à
l’exécution)
Ø portable (un même programme compilé peut s’exécuter sur différents
environnements).
Java est un langage de programmation
22
JAVA est un langage interprété (1)
Java est un langage interprété
– La compilation d'un programme Java crée du pseudo-code
portable : le "byte-code"
– Sur n'importe quelle plate-forme, une machine virtuelle Java peut
interpréter le pseudo-code afin qu'il soit exécuté
Les machines virtuelles Java peuvent être
– des interpréteurs de byte-code indépendants (pour exécuter les
programmes Java)
– contenues au sein d'un navigateur (pour exécuter des applets Java)
JAVA est un langage interprété (2)
23
Exécution
Avant exécution
Fichier
de code
Java
MaClasse.java
Compilation
javac
Autres byte code
Machine virtuelle
Java (JVM)
java
Byte code
MaClasse.class
Compilation : La compilation s’effectue par la commande javac suivie d’un ou
plusieurs nom de fichiers contenant le code source de classes Java.
Par exemple, javac MaClasse.java compile la classe MaClasse dont le code
source est situé dans le fichier MaClasse.java.
Interprétation : Le bytecode obtenu par compilation ne peut être exécuté qu’à
l’aide de l’interpréteur. L’exécution s’effectue par la commande java suivie du
nom de la classe à exécuter (sans l’extension .class). Comme lors de la
compilation, il se peut que des classes d’autres répertoires soient nécessaires.
Par exemple, java MaClasse
NB: Il est nécessaire de configurer les variables d’environnement pour ajouter
à path le chemin d’accès au JDKBIN où se trouve les commandes javac et java
JAVA est un langage interprété (3)
L’API de Java (1)
Java fournit de nombreuses librairies de classes remplissant des
fonctionnalités très diverses : c'est l'API Java
– API (Application and Programming Interface /Interface pour la
programmation d'applications) : Ensemble de bibliothèques
permettant une programmation plus aisée car les fonctions
deviennent indépendantes du matériel.
Ces classes sont regroupées, par catégories, en paquetages (ou
"packages").
25
Les principaux paquetages
– java.util : structures de données classiques
– java.io : entrées / sorties
– java.lang : chaînes de caractères, interaction avec l'OS, threads
– java.applet : les applets sur le web
– java.awt : interfaces graphiques, images et dessins
– javax.swing : package récent proposant des composants « légers »
pour la création d’interfaces graphiques
– java.net : sockets, URL
– java.rmi : Remote Method Invocation (pas abordé dans ce cours)
– java.sql : fournit le package JDBC (pas abordé dans ce cours)
26
L’API de Java (2)
L’API de Java (3)
La documentation de Java est standard, que ce soit pour les classes de
l'API ou pour les classes utilisateur
– possibilité de génération automatique avec l’outil Javadoc.
Elle est au format HTML.
– intérêt de l'hypertexte pour naviguer dans la documentation
Pour chaque classe, il y a une page HTML contenant :
– la hiérarchie d'héritage de la classe,
– une description de la classe et son but général,
– la liste des attributs de la classe (locaux et hérités),
– la liste des constructeurs de la classe (locaux et hérités),
– la liste des méthodes de la classe (locaux et hérités),
– puis, chacune de ces trois dernières listes, avec la description
détaillée de chaque élément.27
L’API de Java (5)
Où trouver les informations sur les classes de l’API
– sous le répertoire jdk1.x/docs/api dans le JDK
• les documentations de l’API se téléchargent et s’installent (en général)
dans le répertoire dans lequel on installe java.
Par exemple si vous avez installer Java dans le répertoire
D:/Apps/jdk1.4/, vous décompresser le fichier zip contenant les
documentations dans ce répertoire.
Les docs de l’API se trouveront alors sous :
D:/Apps/jdk1.4/docs/api/index.html
– Sur le site de Sun, on peut la retrouver à http://java.sun.com/docs/index.html
– Ou sur le site de oracle
28
Outil de développement (1)
3 choix sont possibles :
ü Choix 1 : JDK
Environnement de développement fourni par Sun
JDK signifie Java Development Kit (Kit de développement Java).
Il contient :
– les classes de base de l'API java (plusieurs centaines),
– la documentation au format HTML
– le compilateur : javac
– la JVM (machine virtuelle) : java
– le visualiseur d'applets : appletviewer
– le générateur de documentation : javadoc
– etc.
29
ü Choix 2 : Environnement de développement Intégré (IDE) (Freeware)
• offrent une interface graphique au JDK
• des outils supplémentaires (générateurs d'interface...)
• exemple : Eclipse, NetBeans
ü Choix 3 : Environnement de développement professionnel
• très puissants
• très chers…
• exemples:
ØJBuilder 2 de Inprise (anciennement Borland)
ØVisual J++ de Microsoft
Outil de développement (2)
Deux façons d’écrire des programmes Java:
En écrivant le code dans un simple éditeur de texte
– Compilation et exécution du code en ligne de commande DOS
En utilisant un environnement de développement (IDE)
– Eclipse (http://www.eclipse.org)
– Netbeans (http://www.netbeans.com)
– Borland JBuilder (http://www.borland.com/jbuilder)
– …
TP1
TP2
Application JAVA
Une application Java
– est composée d’une classe possédant une méthode main() :
public static void main (String[] args){
//code à exécuter pour initialiser l’application
}
Exemple :
public class Etudiant {
public static void main(String[] args) {
String x = args[0];
String y = args[1];
System.out.println(“Etudiant de nom : “+y+ “ ” +x);
}
}
• Compiler le programme : javac Etudiant.java
• Le compilateur génère le bytecode dans le fichier : Etudiant.class
• Exécuter l’application : java Etudiant TRAORE Yaya
• « Etudiant de nom : Yaya TRAORE » s’affiche à l’écran
Premier programme JAVA
TP0.1 : Installation du Kit de
Développement logiciel Java (JDK)
TP 0.2 : Paramétrage de la variable path
TP 1 : Compilation et Exécution en
ligne de commande
TP2 : Installation d’un IDE (ECLIPSE OU
NETBEANS )

Contenu connexe

Similaire à POO Licence L2 Partie I.pdf

La persistance des données : ORM et hibernate
La persistance des données : ORM et hibernateLa persistance des données : ORM et hibernate
La persistance des données : ORM et hibernateYouness Boukouchi
 
Seance_1_cours_introduction_java_Copie.pptx
Seance_1_cours_introduction_java_Copie.pptxSeance_1_cours_introduction_java_Copie.pptx
Seance_1_cours_introduction_java_Copie.pptxRihabBENLAMINE
 
Programmation orientee aspect 201401 - Ensim
Programmation orientee aspect 201401 - EnsimProgrammation orientee aspect 201401 - Ensim
Programmation orientee aspect 201401 - EnsimLaurent Broudoux
 
Java 110605092007-phpapp02
Java 110605092007-phpapp02Java 110605092007-phpapp02
Java 110605092007-phpapp02Eric Bourdet
 
Cours partie1 elgarrai zineb
Cours partie1 elgarrai zinebCours partie1 elgarrai zineb
Cours partie1 elgarrai zinebZineb ELGARRAI
 
0 poo cpp
0 poo cpp0 poo cpp
0 poo cppenrif
 
Support formation vidéo : OCA Java SE 8 Programmer (1Z0-808) (1)
Support formation vidéo : OCA Java SE 8 Programmer (1Z0-808) (1)Support formation vidéo : OCA Java SE 8 Programmer (1Z0-808) (1)
Support formation vidéo : OCA Java SE 8 Programmer (1Z0-808) (1)SmartnSkilled
 
Cours php & Mysql - 4éme partie
Cours php & Mysql - 4éme partieCours php & Mysql - 4éme partie
Cours php & Mysql - 4éme partiekadzaki
 
11-Cours de Géniel Logiciel
11-Cours de Géniel Logiciel11-Cours de Géniel Logiciel
11-Cours de Géniel Logiciellauraty3204
 

Similaire à POO Licence L2 Partie I.pdf (20)

La persistance des données : ORM et hibernate
La persistance des données : ORM et hibernateLa persistance des données : ORM et hibernate
La persistance des données : ORM et hibernate
 
Seance_1_cours_introduction_java_Copie.pptx
Seance_1_cours_introduction_java_Copie.pptxSeance_1_cours_introduction_java_Copie.pptx
Seance_1_cours_introduction_java_Copie.pptx
 
Jpa(1)
Jpa(1)Jpa(1)
Jpa(1)
 
XB-Java.ppt
XB-Java.pptXB-Java.ppt
XB-Java.ppt
 
Java
JavaJava
Java
 
CPOO.pdf
CPOO.pdfCPOO.pdf
CPOO.pdf
 
Programmation orientee aspect 201401 - Ensim
Programmation orientee aspect 201401 - EnsimProgrammation orientee aspect 201401 - Ensim
Programmation orientee aspect 201401 - Ensim
 
JAVA Chapitre1
JAVA Chapitre1 JAVA Chapitre1
JAVA Chapitre1
 
Tutoriel java
Tutoriel javaTutoriel java
Tutoriel java
 
Java 110605092007-phpapp02
Java 110605092007-phpapp02Java 110605092007-phpapp02
Java 110605092007-phpapp02
 
Cours partie1 elgarrai zineb
Cours partie1 elgarrai zinebCours partie1 elgarrai zineb
Cours partie1 elgarrai zineb
 
0 poo cpp
0 poo cpp0 poo cpp
0 poo cpp
 
Support formation vidéo : OCA Java SE 8 Programmer (1Z0-808) (1)
Support formation vidéo : OCA Java SE 8 Programmer (1Z0-808) (1)Support formation vidéo : OCA Java SE 8 Programmer (1Z0-808) (1)
Support formation vidéo : OCA Java SE 8 Programmer (1Z0-808) (1)
 
java (1).pdf
java (1).pdfjava (1).pdf
java (1).pdf
 
Cours php & Mysql - 4éme partie
Cours php & Mysql - 4éme partieCours php & Mysql - 4éme partie
Cours php & Mysql - 4éme partie
 
Les Classe en Java
Les Classe en JavaLes Classe en Java
Les Classe en Java
 
11-Cours de Géniel Logiciel
11-Cours de Géniel Logiciel11-Cours de Géniel Logiciel
11-Cours de Géniel Logiciel
 
tp-spring.pdf
tp-spring.pdftp-spring.pdf
tp-spring.pdf
 
tp-spring.pdf
tp-spring.pdftp-spring.pdf
tp-spring.pdf
 
.NET
.NET.NET
.NET
 

POO Licence L2 Partie I.pdf

  • 1. Introduction à la Programmation Orientée Objet (POO) - Java LSIA - L2 TRAORE Yaya Institut Burkinabè des Arts et Métiers (IBAM) Université Joseph KI-ZERBO
  • 2. Objectifs du cours familiariser l'étudiant avec la programmation élémentaire en Java: types, constantes versus variables, les énoncés de contrôle, les boucles, les tableaux, en utilisant les concepts de la programmation objet: classes, objets, méthodes fournit une bonne expérience théorique et pratique de la programmation orientée objets (P.O.O.) avec Java avec l'apprentissage de : – l'écriture, la compilation et le débogage de programmes – les concepts objets et les mécanismes d'héritage
  • 3. 3 Organisation du cours Nous verrons : – Approche de la programmation orientée objet – Caractéristiques de Java et son environnement de développement – Structures fondamentales – Héritage ,Polymorphisme – Les exceptions, les entrées / sorties en Java – Les collections en Java
  • 4. 4 Références (1) Bibliographie – Au cœur de Java 2 : Volume I - Notions fondamentales. C. Hortsmann et G. Cornell. The Sun Microsystems Press. Java Series. CampusPress. – Au cœur de Java 2 : Volume II - Fonctions avancées. C. Hortsmann et G. Cornell. The Sun Microsystems Press. Java Series. CampusPress. – Passeport pour l’algorithmique objet. Jean-Pierre Fournier. Thomsom Publishing International.
  • 5. 5 Références (2) Webographie – Pour récupérer le kit de développement de Sun • http://java.sun.com/ (racine du site) – Outils de développement • Eclipse (http://www.eclipse.org) • Netbeans (http://www.netbeans.com) • Borland JBuilder (http://www.borland.com/jbuilder) – Des exemples de programmes commentés • http://www.technobuff.com/javatips/ (en anglais) • http://developer.java.sun.com/developer/JDCTechTips/ (en anglais)
  • 6. 6 Du problème au programme Nécessité d’analyser le problème pour pouvoir le traduire en une solution informatique (cela semble évident, mais pourtant!) – avant de construire un bâtiment, on fait un plan. Ce n’est pas différent en informatique : conception de l’algorithme, i.e. une réponse (rationnelle) au problème posé – puis mise en œuvre technique - le codage - dans un langage de programmation, dans notre cas Java.
  • 7. 7 Analyse du problème (1) Se poser les bonnes questions – Quelles sont les objets qui interviennent dans le problème? Quelles sont les données, les objets, que le programme va manipuler? – Quelles vont être les relations entre ces objets? Quelles sont les opérations que je vais pouvoir effectuer sur ces objets?
  • 8. 8 Analyse du problème (2) Savoir être : – efficace : quelle méthode me permettra d’obtenir le plus vite, le plus clairement, le plus simplement possible les résultats attendus ? – paresseux : dans ce que j’ai développé avant, que puis-je réutiliser ? – prévoyant : comment s’assurer que le programme sera facilement réutilisable et extensible ?
  • 9. Approche de la programmation orientée objet
  • 10. Chaque langage de programmation appartient à une “famille” de langages définissant une approche ou une méthodologie générale de programmation. La programmation procédurale propose une méthodologie centrée en priorité sur les traitements que le programme devra effectuer. Par exemple , un programmeur C commencera par identifier ces traitements pour écrire les fonctions qui les réalisent sur des données prises comme paramètres d’entrée. La programmation orientée-objet propose une méthodologie centrée sur les données. Par exemple le programmeur Java va d’abord identifier un ensemble d’objets,tel que chaque objet représente un élément qui doit être utilisé ou manipulé par le programme, sous la forme d’ensembles de données. Ce n’est que dans un deuxième temps, que le programmeur va écrire les traitements, en associant chaque traitement à un objet donné. Approche POO(1)
  • 11. Qu'est ce qu’un Programme Orientée Objet ? – Ensemble d'objets autonomes et responsables qui s'entraident pour résoudre un problème final en s'envoyant des messages. Objet 1 Objet 2 Objet 3 Message Approche POO(2)
  • 12. Qu’est ce qu’un objet – Objet = Données + Méthodes (Fonctions Membres) DONNEES Fonction 1 Fonction 2 Fonction 3 Fonction 4 Fonction 5 Fonction 6 Approche POO(3)
  • 13. Encapsulation des données – L’accès aux données des objets est réglementé • Données privées à accès uniquement par les fonctions membres • Données publiques à accès direct par l’instance de l’objet – Conséquences • Un objet n’est vu que par ses spécifications • Une modification interne est sans effet pour le fonctionnement général du programme • Meilleure réutilisation de l’objet Approche POO(4)
  • 14. Polymorphisme (du Grecqueàplusieurs formes) – Un nom (de fonction par exemple) peut être associé à plusieurs mais différentes utilisations – Exemple • Si a est un nombre complexe, sqrt(a) appellera si elle existe la fonction adaptée au type de a. • Dans un langage non OO, il aurait fallu connaître le nom de deux fonctions distinctes (selon que a soit complexe ou réel) • C’est le système qui choisit selon le type de l’argument ou de l’opérande Approche POO(5)
  • 15. L’Héritage – Permet de définir les bases d’un nouvel objet à partir d’un objet existant – Le nouvel objet hérite des propriétés de l’ancêtre et peut recevoir de nouvelles fonctionnalités Avantages – Meilleures réutilisations des réalisations antérieures parfaitement au point Approche POO(6)
  • 16. Concept de Classe – Type réunissant une description • D’une collection de données membres hétérogènes ayant un lien entres elles • D’une collection de méthodes (fonctions membres) servant à manipuler les données membres – Généralisation du type structure ou record des langages non OO (classe = définition de données + définition de méthodes) – Possibilité de fixer la visibilité externe des différents constituants de la classe Instance d’une classe – C’est un objet initialisé à partir de la description figée d’une classe Fonctions membres publiques – Les constructeurs ;Les destructeurs; – Les accesseurs ;Les mutateurs Approche POO(7)
  • 17. Instance d’une classe – C’est un objet initialisé à partir de la description figée d’une classe Fonctions membres publiques – Les constructeurs – Les destructeurs – Les accesseurs – Les mutateurs Approche POO(8)
  • 18. Les Constructeurs – Permettent d’initialiser l’objets lors de sa création • copie des arguments vers les données membres • initialisation de variables dynamiques à la création de l’objet – Sont appelés de manière automatique à la création de l’objet – Peuvent être surchargésàOn peut en définir plusieurs de même nom mais acceptant des arguments différents – Possèdent le même nom que la classe Approche POO(9)
  • 19. Les Accesseurs – Catégorie de fonctions membres qui permettent l’accès et l’utilisation des informations privées contenues dans l’objet Les Mutateurs – Permettent de modifier l’état des données internes (publiques ou privées) de l’objet Approche POO(10)
  • 21. Le langage Java est un langage généraliste de programmation synthétisant les principaux langages existants lors de sa création en 1995 par Sun Microsystems. Il permet une programmation orientée-objet et reprend une syntaxe très proche de celle du langage C. Outre son orientation objet, le langage Java a l’avantage d’être: Ø modulaire (on peut écrire des portions de code génériques, c-à-d utilisables par plusieurs applications), Ø rigoureux (la plupart des erreurs se produisent à la compilation et non à l’exécution) Ø portable (un même programme compilé peut s’exécuter sur différents environnements). Java est un langage de programmation
  • 22. 22 JAVA est un langage interprété (1) Java est un langage interprété – La compilation d'un programme Java crée du pseudo-code portable : le "byte-code" – Sur n'importe quelle plate-forme, une machine virtuelle Java peut interpréter le pseudo-code afin qu'il soit exécuté Les machines virtuelles Java peuvent être – des interpréteurs de byte-code indépendants (pour exécuter les programmes Java) – contenues au sein d'un navigateur (pour exécuter des applets Java)
  • 23. JAVA est un langage interprété (2) 23 Exécution Avant exécution Fichier de code Java MaClasse.java Compilation javac Autres byte code Machine virtuelle Java (JVM) java Byte code MaClasse.class
  • 24. Compilation : La compilation s’effectue par la commande javac suivie d’un ou plusieurs nom de fichiers contenant le code source de classes Java. Par exemple, javac MaClasse.java compile la classe MaClasse dont le code source est situé dans le fichier MaClasse.java. Interprétation : Le bytecode obtenu par compilation ne peut être exécuté qu’à l’aide de l’interpréteur. L’exécution s’effectue par la commande java suivie du nom de la classe à exécuter (sans l’extension .class). Comme lors de la compilation, il se peut que des classes d’autres répertoires soient nécessaires. Par exemple, java MaClasse NB: Il est nécessaire de configurer les variables d’environnement pour ajouter à path le chemin d’accès au JDKBIN où se trouve les commandes javac et java JAVA est un langage interprété (3)
  • 25. L’API de Java (1) Java fournit de nombreuses librairies de classes remplissant des fonctionnalités très diverses : c'est l'API Java – API (Application and Programming Interface /Interface pour la programmation d'applications) : Ensemble de bibliothèques permettant une programmation plus aisée car les fonctions deviennent indépendantes du matériel. Ces classes sont regroupées, par catégories, en paquetages (ou "packages"). 25
  • 26. Les principaux paquetages – java.util : structures de données classiques – java.io : entrées / sorties – java.lang : chaînes de caractères, interaction avec l'OS, threads – java.applet : les applets sur le web – java.awt : interfaces graphiques, images et dessins – javax.swing : package récent proposant des composants « légers » pour la création d’interfaces graphiques – java.net : sockets, URL – java.rmi : Remote Method Invocation (pas abordé dans ce cours) – java.sql : fournit le package JDBC (pas abordé dans ce cours) 26 L’API de Java (2)
  • 27. L’API de Java (3) La documentation de Java est standard, que ce soit pour les classes de l'API ou pour les classes utilisateur – possibilité de génération automatique avec l’outil Javadoc. Elle est au format HTML. – intérêt de l'hypertexte pour naviguer dans la documentation Pour chaque classe, il y a une page HTML contenant : – la hiérarchie d'héritage de la classe, – une description de la classe et son but général, – la liste des attributs de la classe (locaux et hérités), – la liste des constructeurs de la classe (locaux et hérités), – la liste des méthodes de la classe (locaux et hérités), – puis, chacune de ces trois dernières listes, avec la description détaillée de chaque élément.27
  • 28. L’API de Java (5) Où trouver les informations sur les classes de l’API – sous le répertoire jdk1.x/docs/api dans le JDK • les documentations de l’API se téléchargent et s’installent (en général) dans le répertoire dans lequel on installe java. Par exemple si vous avez installer Java dans le répertoire D:/Apps/jdk1.4/, vous décompresser le fichier zip contenant les documentations dans ce répertoire. Les docs de l’API se trouveront alors sous : D:/Apps/jdk1.4/docs/api/index.html – Sur le site de Sun, on peut la retrouver à http://java.sun.com/docs/index.html – Ou sur le site de oracle 28
  • 29. Outil de développement (1) 3 choix sont possibles : ü Choix 1 : JDK Environnement de développement fourni par Sun JDK signifie Java Development Kit (Kit de développement Java). Il contient : – les classes de base de l'API java (plusieurs centaines), – la documentation au format HTML – le compilateur : javac – la JVM (machine virtuelle) : java – le visualiseur d'applets : appletviewer – le générateur de documentation : javadoc – etc. 29
  • 30. ü Choix 2 : Environnement de développement Intégré (IDE) (Freeware) • offrent une interface graphique au JDK • des outils supplémentaires (générateurs d'interface...) • exemple : Eclipse, NetBeans ü Choix 3 : Environnement de développement professionnel • très puissants • très chers… • exemples: ØJBuilder 2 de Inprise (anciennement Borland) ØVisual J++ de Microsoft Outil de développement (2)
  • 31. Deux façons d’écrire des programmes Java: En écrivant le code dans un simple éditeur de texte – Compilation et exécution du code en ligne de commande DOS En utilisant un environnement de développement (IDE) – Eclipse (http://www.eclipse.org) – Netbeans (http://www.netbeans.com) – Borland JBuilder (http://www.borland.com/jbuilder) – … TP1 TP2 Application JAVA
  • 32. Une application Java – est composée d’une classe possédant une méthode main() : public static void main (String[] args){ //code à exécuter pour initialiser l’application } Exemple : public class Etudiant { public static void main(String[] args) { String x = args[0]; String y = args[1]; System.out.println(“Etudiant de nom : “+y+ “ ” +x); } } • Compiler le programme : javac Etudiant.java • Le compilateur génère le bytecode dans le fichier : Etudiant.class • Exécuter l’application : java Etudiant TRAORE Yaya • « Etudiant de nom : Yaya TRAORE » s’affiche à l’écran Premier programme JAVA
  • 33. TP0.1 : Installation du Kit de Développement logiciel Java (JDK)
  • 34. TP 0.2 : Paramétrage de la variable path
  • 35. TP 1 : Compilation et Exécution en ligne de commande
  • 36. TP2 : Installation d’un IDE (ECLIPSE OU NETBEANS )