Paquetages: Définitions Les classes Java sont regroupées en paquetages (packages en anglais) Ils correspondent aux « bibliothèques » des autres langages.

Slides:



Advertisements
Présentations similaires
La programmation orientée objet avec Java L3-MIAGE Plan
Advertisements

Formation universitaire à .NET: Introduction à C#
A propos de java Sun, fin 1995 C++ nettoyé semi-interprété
Au programme du jour …. Ce que vous navez pas encore vu Constantes et variables de classe Main et Tests Utilisation de lAPI Existence des packages Existence.
Au programme du jour …. Introduction à lhéritage Un concept important de la programmation objet Livraison de code Organisation des répertoires et packages.
Introduction à la programmation objet Langage Java
Au programme du jour …. Livraison de code Organisation des répertoires et packages Ce que vous navez pas encore vraiment vu Constantes et variables de.
Introduction à la Programmation Orientée Objet Retour sur les principaux concepts SI3 MAM3 Hydro Nathan Cohen
Au programme du jour …. Livraison de code Organisation des répertoires et packages Ce que vous navez pas encore vraiment vu Constantes et variables de.
La classe String Attention ce n’est pas un type de base. Il s'agit d'une classe défini dans l’API Java (Dans le package java.lang) String s="aaa"; // s.
(Classes prédéfinies – API Java)
Introduction à Java - les paquetages -
C.
Programmer en JAVA par Tama
Outils de développements
MIKHAYLOVA Vera Exposé Java principe de fonctionnement Lundi 17 mai 2004 DEUG 1ère année Science du langage Paris III.
LICENCE MIAGE Introduction Programmation Orientée Objet JAVA philippe
TD 1 IJA Introduction Objet, méthode, attribut Classe, instance
Exportation des données
Virtools Olivier Lamotte.
Introduction à la programmation (420-PK2-SL) cours 15 Gestion des applications Technologie de linformation (LEA.BW)
Principes de programmation (suite)
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
Outils de tests, logs et documentation Frédéric Moalannée 2010/2011 POO.
Développement Mobile : Android
Programmation orientée objet
Les méthodes en java Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. Une méthode pour être utilisée.
Recherche avancée multi-champs EBSCOhost
Algorithmique et Programmation
Java Remote Method Invocation (RMI)
Apprendre à mieux se servir de L’explorateur de Windows
Laboratoire d'Informatique de l’Université de Franche-Comté
Principes de programmation (suite)
77 Utilisation des classes (suite). 7-2 Objectifs A la fin de ce cours, vous serez capables de : Définir des méthodes surchargées dans une classe Fournir.
Introduction à la programmation (Java)
Langage Oriente Objet Cours 2.
FICHIERS : Définition : Algorithme général:
Package IFT1025 Jian-Yun Nie.
1 Les paquetages («packages»). 2 L'objectif avec les paquetages («packages») est de rendre accessibles aux utilisateurs des classes définies par d'autres.
1 IFT 6800 Atelier en Technologies dinformation Le langage de programmation Java chapitre 3 : Classes et Objects.
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure dInformatique (ESI) Plate-forme.NET.
Leçon 1 : notion dobjet IUP Génie Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
Programmer en langage c
Exploration de la programmation android Formation Assurer par: Club FreeWays Réalisé par: BOUHJJA Lamia.
La notion de type revisitée en POO
Elabore par BELKADHI ABIR BEN HASSEN SALMA CHEBBI MARWA
11/04/ L'héritage Cours 7 Cours 7.
Premiers pas dans le langage Java 2012/ Premiers pas dans le langage Java TI3.4 Responsable : M lle Sana Ezzedine
Créer des packages.
Les modules. Modules Un module est un ensemble de définitions de constantes, de variables et de fonctions réutilisables de projet en projet. Le langage.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Les erreurs communes en Java.
Tables de compilation pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Introduction à Visual Studio C++ (VC++)
Système d’exploitation 2 Unix User
Tutorat en bio-informatique
1 REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE MINISTERE DE L’ENSEIGNEMENT SUPERIEURE ET DE LA RECHERCHE SCIENTIFIQUE UNIVERSITE ABDELHAMID IBN BADIS.
Les paquetages.
SCAN400 , envoi mail des résultats JDSEE, JDFIELD
Master 1 SIGLIS Systèmes d’Information pour l’entreprise – Java RMI Stéphane Tallard Mise en œuvre de l’exemple Bonjour RMI Master 1 SIGLIS1 Intégration.
IFT313 – Introduction aux langages formels Eric Beaudry Département d’informatique Université de Sherbrooke Laboratoire sur JFLEX Été 2010.
S. Domas Système d’Exploitation Make et la construction d’exécutables 1ère annéeIUT Belfort-Montbéliard.
1 Complément JAVA 1 - Eclipse. 2 Plan Notion d'environnement de développement Interface d'Eclipse Utiliser Eclipse Éditeur de code Fonctionnalité supplémentaire.
Présentation de Qt Iris 1
22 Concepts de base du langage Java. 2-2 Objectifs A la fin de ce cours, vous serez capables de : Identifier les éléments essentiels de Java Identifier.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Correction du TD Chapitre 3.
Java Remote Method Invocation
LES CLASSES ET LES OBJETS
Ant Introduction Jean-Jacques LE COZ. Outils de construction de projets ➢ Pour livrer un produit logiciel ➢ Compiler ➢ Documenter ➢ Packager ➢ Déployer.
Transcription de la présentation:

Paquetages: Définitions Les classes Java sont regroupées en paquetages (packages en anglais) Ils correspondent aux « bibliothèques » des autres langages comme le langage C, Basic,Fortran, etc... Les paquetages offrent un niveau de modularité supplémentaire pour – réunir des classes suivant un centre dintérêt commun – la protection des attributs et des méthodes Le langage Java est fourni avec un grand nombre de paquetages

Quelques paquetages du SDK java.lang : classes de base de Java java.util : utilitaires java.io : entrées-sorties java.awt : interface graphique javax.swing : interface graphique avancée java.applet : applets java.net : réseau java.rmi : distribution des objets

Nommer une classe Le nom complet d'une classe (qualified name dans la spécification du langage Java) est le nom de la classe préfixé par le nom du paquetage : java.util.ArrayList Une classe du même paquetage peut être désignée par son nom « terminal » (les classes du paquetage java.util peuvent désigner la classe ci-dessus par « ArrayList ») Une classe dun autre paquetage doit être désignée par son nom complet

Importer une classe dun paquetage Pour pouvoir désigner une classe d'un autre paquetage par son nom terminal, il faut limporter import java.util.ArrayList; public class Classe { … ArrayList liste = new ArrayList(); On peut utiliser une classe sans limporter ; limportation permet seulement de raccourcir le nom dune classe dans le code: java.util.ArrayList Liste = new java.util.ArrayList();

Importer toutes les classes dun paquetage On peut importer toutes les classes d'un paquetage : import java.util.*; Les classes du paquetage java.lang sont implicitement importées

Lever une ambiguïté On aura une erreur à la compilation si – 2 paquetages ont une classe qui a le même nom – ces 2 paquetages sont importés en entier Exemple (2 classes List) : import java.awt.*; import java.util.*; Pour lever lambiguïté, on devra donner le nom complet de la classe. Par exemple, java.util.List l = getListe();

Importer des constantes static Depuis le JDK 5.0 on peut importer des variables ou méthodes statiques dune classe ou dune interface On allège ainsi le code, par exemple pour lutilisation des fonctions mathématiques de la classe java.lang.Math A utiliser avec précaution pour ne pas nuire à la lisibilité du code (il peut être plus difficile de savoir doù vient une constante ou méthode)

Exemple dimport static Import static java.lang.Math.*; Import java.util.*; Public class Machin { … X = max(sqrt(abs(y)), sin(y)); // au lieu de Math.sqrt, Math.sin… On peut importer une seule variable ou méthode : –Import static java.lang.Math.PI; –X = 2* PI;

Ajout dune classe dans un paquetage package nom-paquetage; doit être la première instruction du fichier source définissant la classe (avant même les instructions import) Par défaut, une classe appartient au paquetage par défaut qui na pas de nom, et auquel appartiennent toutes les classes situées dans le même répertoire (et qui ne sont pas dun paquetage particulier)

Sous-paquetage Un paquetage peut avoir des sous-paquetages Par exemple, java.awt.event est un sous- paquetage de java.awt Limportation des classes dun paquetage nimporte pas les classes des sous-paquetages ; on devra écrire par exemple : import java.awt.*; import java.awt.event.*;

Nom dun paquetage Le nom dun paquetage est hiérarchique :java.awt.event Il est conseillé de préfixer ses propres paquetages par son adresse Internet : –Fr.unice.toto.liste –Com.oreilly.projets.LivresJava

Placement dun paquetage Les fichiers.class doivent se situer dans larborescence dun des répertoires du classpath Le nom relatif du répertoire par rapport au répertoire du classpath doit correspondre au nom du paquetage Par exemple, les classes du paquetage fr.unice.toto.liste doivent se trouver dans un répertoire fr/unice/toto/liste relativement à un des répertoires du classpath

Encapsulation dune classe dans un paquetage Si la définition de la classe commence par public class –la classe est accessible de partout Sinon, la classe nest accessible que depuis les classes du même paquetage

Compiler les classes dun paquetage javac -d répertoire-package Classe.java L'option « -d » permet dindiquer le répertoire racine où sera rangé le fichier compilé Si on compile avec l'option « -d » un fichier qui comporte l'instruction « package nom1.nom2», le fichier.class est rangé dans le répertoire répertoire-package/nom1/nom2

Compiler les classes dun paquetage Remarque: –Si on compile sans l'option « -d », le fichier.class est rangé dans le même répertoire que le fichier.java (quel que soit le paquetage auquel appartient la classe)

Compiler les classes dun paquetage Quand on compile les classes dun paquetage avec l'option -d, on doit le plus souvent indiquer où sont les classes déjà compilées du paquetage avec l'option - classpath : javac -classpath répertoire-package -d répertoire-package Classe.java

Exécuter une classe dun paquetage On lance lexécution de la méthode main() dune classe en donnant son nom complet (préfixé par le nom de son paquetage) Par exemple, si la classe C appartient au paquetage p1.p2 : java p1.p2.C Le fichier C.class devra se situer dans un sous répertoire p1/p2 dun des répertoires du classpath (option -classpath ou variable CLASSPATH)

Utilisation pratique des paquetages Les premières tentatives de développement avec paquetages conduisent à de grosses difficultés pratiques pour compiler les classes Ces difficultés peuvent être évitées – en respectant quelques principes simples pour le placement des fichiers sources et classes (exemple dans les transparents suivants) – en utilisant correctement les options –classpath et -d

Placements préconisés pour le développement dune application Classes du paquetage p1.p2

Commandes à lancer Si on se place dans le répertoire racine, – pour compiler (en une seule ligne) : javac –d classes –classpath classes src/p1/p2/*.java – pour exécuter : java –classpath classes p1.p2.C1 – pour générer la documentation : javadoc –d doc –sourcepath src p1.p2 On peut ajouter dautres répertoires ou fichier.jar dans le classpath

Classes inter-dépendantes Si 2 classes sont inter-dépendantes, il faut les indiquer toutes les deux dans la ligne de commande java de compilation : javac... A.java B.java ou javac... *.java

Option -sourcepath javac peut ne pas savoir où sont les fichiers source de certaines classes dont il a besoin (en particulier si on compile plusieurs paquetages en même temps) Loption –sourcepath indique des emplacements pour des fichiers sources Comme avec classpath, cette option peut être suivie de fichiers jar, zip ou des répertoires racines pour les fichiers source (lendroit exact où se trouvent les fichier.java doit refléter le nom du paquetage)

Utilisation des fichiers source javac recherche les classes dont il a besoin dans le classpath Sil ne trouve pas le fichier.class, mais sil trouve le fichier.java correspondant, il le compilera pour obtenir le.class cherché Sil trouve les 2 (.class et.java), il recompilera la classe si le.java est plus récent que le.class

Exemple avec sourcepath Situation : compiler une classe C, et toutes les classes dont cette classe dépend (certaines dans des paquetages pas encore compilés) « javac C.java » ne retrouvera pas les fichiers class des paquetages qui ne sont pas déjà compilés On doit indiquer où se trouvent les fichiers source de ces classes par loption –sourcepath ; par exemple, javac –sourcepath src –classpath classes –d classes C.java

Problème avec sourcepath Si C.java a besoin dun paquetage pas encore compilé et dont les sources sont indiquées par loption sourcepath Si ce paquetage comporte une erreur qui empêche sa compilation Alors javac envoie un message derreur indiquant que le paquetage nexiste pas, sans afficher de message derreur de compilation pour le paquetage Lutilisateur peut alors penser à tort que loption sourcepath ne marche pas

Classpath Le classpath contient par défaut le seul répertoire courant (il est égal à «. ») Si on donne une valeur au classpath, on doit indiquer le répertoire courant si on veut quil y soit Dans le classpath on indique des endroits où trouver les classes et interfaces : – des répertoires (les classes sont recherchées sous ces répertoires selon les noms des paquetages) – des fichiers.jar ou.zip

Exemples de Classpath Sous Unix, le séparateur est « : » :.:~/java/mespackages:~/mesutil/cl.jar Sous Windows, le séparateur est « ; » :.;c:\java\mespackages;c:\mesutil\cl.jar

Pour le développement dapplications complexes, il vaut mieux sappuyer sur un utilitaire de type make Lutilitaire Ant, très évolué, et très utilisé par les développeur Java est spécialement adapté à Java –( java.com/Public/articles/antpaper.htm)

Placez votre code Java dans un fichier JAR JAR: Java Archive –Basé sur pkzip –Permet de grouper toutes les classes –Equivalent à la commande tar sous Linux Un fichier JAR est directement exécutable –Un utilisateur lance lapplication sans extraire les fichiers

Création dun JAR exécutable Création dun fichier manifest.txt qui déclare dans quelle classe se trouve la méthode main(): Déclaration: –Main-Class: MonAppli Création –Jar –cvmf manifest.txt app1.jar *.class –ou Jar –cvmf manifest.txt app1.jar MonAppli.class Pour exécuter: Java –jar app1.jar Remarque: le JAR ne contient pas de code source que du.java

MonProjet Classes Manifest.txt Main-Class: MonAppli Classes Main-Class: MonAppli app1.jar

Créer le JAR exécutables avec des packages Classes com jtlp Manifest.txt Main-Class: com.jtlp.ExercicePackage Classes com jtlp ExercicePackage.class … ExercicePackage.class … exPack.jar Jar –cvmf manifest.txt exPack.jar com

Lister le contenu dun jar Jar –tf exPack.jar Extraire le contenu dun jar Jar –xf exPack.jar