Java Utilisation des packages

Documents pareils
Java Licence professionnelle CISII,

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

TP1. Outils Java Eléments de correction

Chapitre 1 : Introduction aux bases de données

TP1 : Initiation à Java et Eclipse

as Architecture des Systèmes d Information

Hadoop / Big Data. Benjamin Renaut <renaut.benjamin@tokidev.fr> MBDS

RMI le langage Java XII-1 JMF

Dossier. Développer en Java sur téléphone mobile. Benjamin Damécourt UFR SITEC Master 2 EESC 11 janvier 2012

Diagramme de classes

Programmation des Applications Réparties. Parsers XML DOM et SAX

Hadoop / Big Data. Benjamin Renaut <renaut.benjamin@tokidev.fr> MBDS

Domain Name Service (DNS)

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Cours Langage C/C++ Programmation modulaire

Initiation à JAVA et à la programmation objet.

Bases Java - Eclipse / Netbeans

27/11/12 Nature. SDK Python et Java pour le développement de services ACCORD Module(s)

CAHIER DE S CHARGE S Remote Workload Manager

S'organiser pour ne plus se noyer dans l'information

Généralités sur le Langage Java et éléments syntaxiques.

TP1 : Initiation à Java et Eclipse

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

Une introduction à Java

UML (Paquetage) Unified Modeling Language

MEDIAplus elearning. version 6.6

Dans nos locaux au 98 Route de Sauve NÎMES. Un ordinateur PC par stagiaire, scanner, imprimante/copieur laser couleur

Logical Volume Manager (LVM)

Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.

Programmer en JAVA. par Tama

Introduction aux services Active Directory

Programmation Mobile Android Master CCI

Titre: Version: Dernière modification: Auteur: Statut: Licence:

Rôle, accès et formation des utilisateurs de HSPnet

Présentation du système DNS

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février :30 à 20:30

DNS ( DOMAIN NAME SYSTEM)

Bases de Données. Plan

Présentation Générale

Tenrox. Guide d intégration Tenrox-Salesforce. Janvier Tenrox. Tous droits réservés.

Formateur : Franck DUBOIS

MODE OPERATOIRE OPENOFFICE BASE

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code

Java 7 Les fondamentaux du langage Java

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Proxy et reverse proxy. Serveurs mandataires et relais inverses

A. Architecture du serveur Tomcat 6

Java pour le Web. Cours Java - F. Michel

Laboratoire d informatique Gaspard-Monge UMR Journée Labex Bézout- ANSES

Projet de développement. Introduction à Eclipse. Application à votre projet. Philippe Collet. Organisation. Cours 1 : principes généraux - svn

Concours 2008 / 2009 externe et interne réservé d ingénieurs des services culturels et du patrimoine, spécialité «services culturels»

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Qu'est-ce que c'est Windows NT?

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Installation / configuration des applications PreInscription et Inscription Web Ajax

A. Structurer le catalogue. v Dans le menu Catalogue, sélectionnez Catégories. 1. Les catégories. Chapitre 6 : Construire le catalogue ...

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa Novembre 2008

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

Déclarer un serveur MySQL dans l annuaire LDAP. Associer un utilisateur DiaClientSQL à son compte Windows (SSO)

MODE D'EMPLOI DU CONTRIBUTEUR WEB UAPV "CONTRIBUER DANS UNE RUBRIQUE DU SITE WEB"

contact@nqicorp.com - Web :

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

Cours admin 200x serveur : DNS et Netbios

contact@nqicorp.com - Web :

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

Ouverture d'un compte IRD

Projet Active Object

Semarchy Convergence for Data Integration La Plate-Forme d Intégration pour le MDM Évolutionnaire

Programme et contenus Licence d'informatique de Lille, parcours MIAGE, en alternance ou en formation continue (13:40)

Projet de développement

Annexe : La Programmation Informatique

Sage 50 Version 2014 Guide d installation. Sage Suisse SA

Mise en place d'un petit workflow de publication avec Drupal 7

[Projet S9] Rédacteurs & Contributeurs Entité Rédacteurs Contributeurs Imededdine HOSNI Olivier MARTY. Validation du document Nom Date Visa

1 Résolution de nom Introduction à la résolution de noms Le système DNS Les types de requêtes DNS...

Cyberclasse L'interface web pas à pas

Qu'est-ce que c'est??

Systèmes de transport public guidés urbains de personnes

Introduction à Eclipse

MOTEUR DE WORKFLOW Mise en oeuvre d'openwfe Version septembre 2006

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

1 / Introduction. 2 / Gestion des comptes cpanel. Guide débuter avec WHM. 2.1Créer un package. 2.2Créer un compte cpanel

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Qu'est-ce que le BPM?

Présentation. Au programme. Fonctionnement. A l issue de ce module vous devriez...

WebDAV en 2 minutes. Tous ces objectifs sont complémentaires et ils sont atteints grâce au seul protocole WebDAV. Scénarii

Cours Plugin Eclipse. Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - pamarcelot@iktek.com

La plate-forme DIMA. Master 1 IMA COLI23 - Université de La Rochelle

claroline classroom online

MANUEL. de l application «CdC Online» pour Windows. Table des matières

Exercices Active Directory (Correction)

L Agence du revenu du Canada protège l accès au système pour utilisateurs

Big Data Concepts et mise en oeuvre de Hadoop

Manuel d'utilisation du site Deptinfo (Mise en route)

CONFIGURATION DE LA LIBRAIRIE WEBUTIL (10g) Oracle Forms 10g

Transcription:

WIDLOCHER Antoine GREYC CNRS UMR 6072 1 Java Utilisation des packages Antoine WIDLÖCHER Master MI3 - M2 Université de Caen 17 janvier 2008

WIDLOCHER Antoine GREYC CNRS UMR 6072 2 Plan Problématique Intérêt des packages Cas d'utilisation Notation et organisation physique Syntaxe (déclaration) Conventions de nommage Organisation physique Utilisation des packages Accessibilité Méthodes d'accès Règles d'emploi Dépendance et interdépendance

WIDLOCHER Antoine GREYC CNRS UMR 6072 3 Définition Un package est une collection de types classes interfaces... en relation permettant la gestion des espaces de noms des protections d'accès

WIDLOCHER Antoine GREYC CNRS UMR 6072 4 Plan Intérêts et cas d'utilisation

WIDLOCHER Antoine GREYC CNRS UMR 6072 5 Intérêts Organiser son code Pour une application d'une certaine taille rendre l'organisation plus lisible plus arborescente Rassembler des classes (ou des ressources) appartenant à une même «catégorie» visant à fournir une même fonctionnalité Séparer des classes étant «conceptuellement» séparables ex: séparer Modèle, Vue et Contrôleur

WIDLOCHER Antoine GREYC CNRS UMR 6072 6 Intérêts Protéger son code Certaines parties d'une application n'ont pas à être connues d'autres parties Certains objets n'ont pas à être visibles par d'autres objets Ex: une vue connaît son modèle, mais un modèle doit être pensé sans référence à sa vue Eviter les erreurs en étant aussi peu permissif que possible en tirant avantage des «protections» proposées par java un package correspond à une «zone de visibilité» Eviter les conflits de nommage

WIDLOCHER Antoine GREYC CNRS UMR 6072 7 Intérêts Partager, distribuer son code Entre programmes isoler ce qui est réuilisable ex: penser à l'api de base, aux parsers XML... Entre développeurs on pourrait certes s'échanger des classes que chacun devrait intégrer à son propre code... :-( Rendre ce code utilisable sélectionner, désigner ce que l'on souhaite utiliser, importer utiliser des classes extérieures en les laissant être telles

WIDLOCHER Antoine GREYC CNRS UMR 6072 8 Plan Notation et organisation physique

WIDLOCHER Antoine GREYC CNRS UMR 6072 9 Déclaration Pour inclure un élément dans un package et «créer» le package s'il n'existe pas package lenomdupackage; public class LaClasse { } La classe laclasse fait partie du package lenomdupackage Plusieurs éléments auront la même déclaration s'ils appartiennent au même package

WIDLOCHER Antoine GREYC CNRS UMR 6072 10 «Sous» packages Différents packages peuvent être organisés hiérarchiquement et rassemblés par fonctions, catégories... un package peut comporter des sous-packages package general; public class LaClasse {} package general.moinsgeneral.encoremoinsgeneral; public class LaClassePatriculiere {} Attention! cette hiérarchie n'a de sens que pour la lisibilité pas de «privilège» d'accès pour un «sous» package

WIDLOCHER Antoine GREYC CNRS UMR 6072 11 Nommage Dans deux packages distincts deux classes peuvent avoir le même nom Mais risque de collision (lors du partage) si différents packages portent le même nom Convention pour garantir l'unicité du nommage d'un package on se base sur le nom de domaine inversé de l'institution qui a à charge la résolution des conflits internes qui pourraient intervenir sur les «sous» packages package fr.unicaen.mi3.m2.lepackagequivabien; public class LaClasse {}

WIDLOCHER Antoine GREYC CNRS UMR 6072 12 Nommage Par convention les noms de package sont en minucules contrairement aux «habitudes» de notation java package fr.unicaen.mi3.m2.lepackagequivabien; package fr.unicaen.mi3.m2.lepackagequivabien; Certains domaines peuvent poser problème dans ce cas, on remplace par un underscore «_» s'ils contiennent un mot clef java blabla.int int_.blabla un tiret «-» bla-bla bla_bla s'ils commencent par un chiffre bla.4.bla bla._ 7. bla

WIDLOCHER Antoine GREYC CNRS UMR 6072 13 Organisation physique L'organisation physique doit refléter l'organisation en packages package fr.unicaen.mi3.m2.lepackage; public class LaClasse {} fr unicaen mi3 m2 lepackage LaClasse.java

WIDLOCHER Antoine GREYC CNRS UMR 6072 14 Plan Utilisation des packages

WIDLOCHER Antoine GREYC CNRS UMR 6072 15 Accessibilité Sont visibles par défaut pour un élément les autres éléments du même package les éléments du «package par défaut» les éléments du package java.lang Pour que les éléments des autres packages soient visibles ils doivent être déclarés public ils doivent être dans le classpath on doit soit faire référence au nom complet du membre soit importer le membre soit importer le package dont il est issu

WIDLOCHER Antoine GREYC CNRS UMR 6072 16 Nom complet Au moment du code où le membre intervient on le désigne simplement par son nom complet package fr.unicaen.mi3; public class ObjetRare {} package fr.unicaen.autrepackage; public class LaClasse {... fr.unicaen.mi3.objetrare obj = new fr.unicaen.mi3.objetrare() ;... } Avantage permet de désambiguïser dans certains cas

WIDLOCHER Antoine GREYC CNRS UMR 6072 17 Import ciblé On peut importer le membre exigé pour l'ensemble de la classe d'accueil pour éviter d'éventuelles redondances et alléger significativement le code package fr.unicaen.mi3; public class ObjetRare {} package fr.unicaen.autrepackage; import fr.unicaen.mi3.objetrare; public class LaClasse {... ObjetRare obj = new ObjetRare() ;... }

WIDLOCHER Antoine GREYC CNRS UMR 6072 18 Import global On peut importer le package du membre exigé pour l'ensemble de la classe d'accueil pour éviter d'éventuelles redondances dans les imports package fr.unicaen.mi3; public class ObjetRare {} package fr.unicaen.mi3; public class AutreObjetRare {} package fr.unicaen.autrepackage; import fr.unicaen.mi3.*; public class LaClasse { ObjetRare obj = new ObjetRare() ; AutreObjetRare obj = new AutreObjetRare() ;... }

WIDLOCHER Antoine GREYC CNRS UMR 6072 19 Attention Les imports ne sont pas «récursifs» package fr.unicaen.mi3; public class ObjetRare {} package fr.unicaen.mi3.m2; public class AutreObjetRare {} package fr.unicaen.autrepackage; import fr.unicaen.mi3.*; public class LaClasse { ObjetRare obj = new ObjetRare() ; AutreObjetRare obj = new AutreObjetRare() ;... }

WIDLOCHER Antoine GREYC CNRS UMR 6072 20 Plan Règles d'utilisation des packages

WIDLOCHER Antoine GREYC CNRS UMR 6072 21 Règles Comment procéder au découpage en packages? règle fondamentale: les packages peuvent bien entendu être dépendants mais pas interdépendants bien garder à l'esprit le découpage proposé en standard par exemple par J2SE que deviendrions-nous si java.util devait connaître fr.unicaen.mi3.m2.lepackagevitefait?

WIDLOCHER Antoine GREYC CNRS UMR 6072 22 Plan Rappels: classpath, compilation, exécution...

WIDLOCHER Antoine GREYC CNRS UMR 6072 23 Le ClassPath Classpath désigne l'ensemble des «lieux» ou java pourra trouver des classes nécessaires à la compilation et ou à l'exécution À la compilation on précise au compilateur le classpath fournissant les classes nécessaires à la compilation javac -classpath.:rep1/:rep2/:archive.jar *.java À l'exécution on précise à la machine virtuelle le classpath fournissant les classes nécessaires à l'exécution... peuvent n'être pas les mêmes qu'à la compilation java -classpath classes/ fr.unicaen.classeaexcecuter

WIDLOCHER Antoine GREYC CNRS UMR 6072 24 Organisation On sépare les sources: conventionnellement répertoire src/ les classes: conventionnelement répertoire classes/ On ajuste les paramètres de compilation javac -sourcepath src/ -d classes/ src/fr/unicaen/*.java Et les paramètres d'exécution java -classpath classes/ fr.unicaen.classeaexcecuter