Cours informatique 2015-2016 Contenu : Introduction; Organisation; Utilisation et *.jars; Visibilité; Exemples. Estimation temps : Cours : 20 minutes HEG Genève http://www.hesge.ch/heg/
Introduction Le package permet de structurer un ensemble de classes / interfaces par regroupement; Chaque package est un ensemble nommé de classes et/ou d interfaces; Permet l utilisation de classes / d interfaces de mêmes noms, mais issus de sources différentes; Permet l utilisation de classes / d interfaces sans nécessité de les copier physiquement dans le projet. page 2 sur - v01.01
Avantages Organisation d un projet en couches d abstractions, en unités fonctionnelles et/ou en rôles; Facilite l architecture, le développement ainsi que la maintenance (et le débogage); Réutilisation dans un autre projet; Constitution de bibliothèques; Supprime la problématique des conflits de noms lorsque les classes / interfaces sont issus de plusieurs projets; Possibilités de gérer les classes et interface par leurs visibilités. page 3 sur - v01.01
Organisation Un package est organisé sous forme hiérarchique o La position des fichiers des classes / interfaces doivent refléter la hiérarchisation du package; o Les fichiers des classes / interfaces d un package doivent être placés dans un dossier de même nom. Cette organisation permet de structurer un projet. page 4 sur - v01.01
Organisation édition standard Java java lang Package java Package java.lang Classe java.lang.math Math exp(double a) random() Méthode java.lang.math.random() sql Statement DriverManager Package java.sql Interface java.sql.statement Classe java.sql.drivermanager page 5 sur - v01.01
Les packages édition standard Java java.lang o Types primitifs, fonctionnalité de base du langage, java.util o Structures de données, vector, list, date, java.io o Stream, i/o, opération sur les fichiers java.awt o Interface IHM, composants, boutons, java.net o Réseau, socket, DNS, java.sql o JDBC, accès aux base de données, java.lang java.util java.io java.math java.nio java.net java.security java.sql java.awt javax.swing java.applet page 6 sur - v01.01
Utilisation des packages Nom complet des classes o <chemin>.<nom de la classe> o java.lang.math Accès à une méthode par le nom complet o java.lang.string s = "Hello world"; Importation explicite o import <package>.<class>; import java.lang.math; String s = "Hello world"; Importation implicite o import <package>.*; import java.lang.*; String s = "Hello world"; toutes les classes contenues dans le package seulement (pas celles des packages enfants). page 7 sur - v01.01
Création des packages Le package doit être déclaré en PREMIERE position; o (Commentaires exceptés) Une classe appartenant à un package DOIT être placée dans un dossier ayant : o Le même nom que le package déclaré o Dans la même position hiérarchique. package base.mysql; public class Outils { public static Connection connect (String nbd){ //... } // connect } // Outils page 8 sur - v01.01
Exemple page 9 sur - v01.01
Compilation La compilation d une classe : o Compilation de la classe (.java) dans le dossier courant; o Compile également toutes les classes qui n ont pas été compilées dans les packages dépendants. page 10 sur - v01.01
Visibilité Toutes les classes / interfaces sont accessible par toutes les classes / interface du même package; Toutes les classes / interfaces déclarées «public» sont accessible depuis un autre package; Toutes les classes / interfaces non déclarées «public» ne sont pas accessible depuis un autre package; Visibilité o o o Private Attributs et méthodes uniquement visibles de la classe ellemême. Protected Attributs et méthodes visibles dans la classe, les sousclasses et toutes les classes du même package. Public Attributs et méthodes visibles de toutes les classes. page 11 sur - v01.01
*.jar Utilisation d un fichier compressé *.jar o pour des raisons pratiques, il est plus facile de transporter un seul fichier qu une structure arborescente de dossiers; o Un fichier jar rassemble les classes et leurs dossiers dans un fichier unique et compressé. page 12 sur - v01.01
PARTIE INTERACTIVE Questions - réponses page 13 sur - v01.01
FIN DU CHAPITRE HEG_634-1_Package_(2015-2016)_FR_JSI_00.03d.pdf page 14 sur - v01.01