BTS IRIS – Cours et Travaux Pratiques Programmation Java (version 0.1) A. Lebre

BTS IRIS – Cours et Travaux Pratiques Programmation Java (version 0.1) A. Lebret, TSIRIS, © Lycée Diderot, 1996/2006 en conformité avec le référentiel du BTS IRIS Activité Principale Partie 8 :Codage et Réalisation Tâches T3.3, T3.4 et T3.5 Temps nécessaire 232 h 1/286 Le présent document est mis à disposition sous un contrat Creative Commons. Vous êtes libres : • de reproduire, distribuer et communiquer cette création au public Selon les conditions suivantes : Paternité. Vous devez citer le nom de l'auteur original. Pas d'Utilisation Commerciale. Vous n'avez pas le droit d'utiliser cette création à des fins commerciales. Pas de Modification. Vous n'avez pas le droit de modifier, de transformer ou d'adapter cette création. • A chaque réutilisation ou distribution, vous devez faire apparaître clairement aux autres les conditions contractuelles de mise à disposition de cette création. • Chacune de ces conditions peut être levée si vous obtenez l'autorisation du titulaire des droits. Ce qui précède n'affecte en rien vos droits en tant qu'utilisateur (exceptions au droit d'auteur : copies réservées à l'usage privé du copiste, courtes citations, parodie...) Ceci est le Résumé Explicatif du Code Juridique (la version intégrale du contrat). Alain Lebret 2/286 Table des matières AU SUJET DES SÉANCES DE TRAVAUX PRATIQUES JAVA ..................................................................................12 CHAPITRE 1 - INTRODUCTION À LA PROGRAMMATION ORIENTÉE OBJET ..........................................................13 1.Un peu de vocabulaire................................................................................................................13 1.1.Qu'entend-on par objet ?.....................................................................................................13 1.2.Classer les objets en catégories...........................................................................................14 1.3.Communication entre objets...............................................................................................16 1.3.1.Les diagrammes de collaborations..............................................................................16 1.3.2.Les diagrammes de séquences.....................................................................................17 1.4.Relations entre les classes...................................................................................................17 1.4.1.L'héritage.....................................................................................................................18 1.4.2.L'association................................................................................................................20 1.4.3.L'agrégation.................................................................................................................21 1.4.4.La composition............................................................................................................21 1.5.Le diagramme de classes.....................................................................................................22 1.6.L'encapsulation des données...............................................................................................23 1.7.Le polymorphisme..............................................................................................................24 1.8.Évolution de l'état d'un objet...............................................................................................24 2.Les méthodes pour modéliser avec des objets............................................................................24 3.Exercices.....................................................................................................................................25 CHAPITRE 2 - INTRODUCTION AU LANGAGE JAVA ........................................................................................27 1.Historique du langage.................................................................................................................27 2.Se procurer et installer Java........................................................................................................27 3.Quelques généralités sur Java.....................................................................................................28 3.1.Compilation native et bytecode...........................................................................................30 3.2.La machine virtuelle Java ..................................................................................................30 3.3.Les premières notions pour programmer............................................................................31 4.Un premier programme...............................................................................................................33 5.Génération automatique de la documentation............................................................................34 5.1.L'outil javadoc.....................................................................................................................34 5.1.1.Réalisation d'une documentation simple.....................................................................35 5.1.2.Utilisation des commentaires javadoc.........................................................................35 5.1.3.Profiter du format HTML............................................................................................35 5.2.Quelques instructions javadoc............................................................................................36 5.2.1.Documentation de la classe.........................................................................................36 5.2.2.Documentation des méthodes......................................................................................36 6.Exercices.....................................................................................................................................37 7.Séance de TP N°1 : Installation et configuration de la plate-forme Java...................................38 7.1.Installation et configuration du JDK 5.0 ............................................................................38 7.2.Mise en oeuvre du JDK 5.0.................................................................................................38 7.3.Travail sur les codes sources...............................................................................................39 7.4.Conditions...........................................................................................................................39 CHAPITRE 3 - LES TYPES PRIMITIFS ............................................................................................................42 1.La déclaration des variables........................................................................................................42 2.Portée d'une variable...................................................................................................................43 3.Les types numériques..................................................................................................................44 3.1.Les types numériques entiers..............................................................................................44 a)Le type byte..................................................................................................................44 3/286 b)Le type short ................................................................................................................45 c)Le type int ...................................................................................................................45 d)Le type long..................................................................................................................45 3.2.Les types numériques décimaux.........................................................................................45 3.2.1.Pourquoi les machines calculent-elles toujours faux ?................................................45 3.2.2.Les deux types de réels : float et double.....................................................................47 a)Le type float..................................................................................................................47 b)Le type double..............................................................................................................47 4.Le type booléen...........................................................................................................................47 5.Le type caractère.........................................................................................................................47 6.Tableau récapitulatif...................................................................................................................48 7.Exercices.....................................................................................................................................49 CHAPITRE 4 - OPÉRATEURS ET EXPRESSIONS DU LANGAGE .............................................................................50 1.Les expressions numériques.......................................................................................................50 1.1.Introduction.........................................................................................................................50 1.2.Expressions.........................................................................................................................51 1.3.L'opérateur d'affectation =..................................................................................................51 1.4.Les opérateurs numériques..................................................................................................52 2.Les expressions booléennes........................................................................................................54 3.Les expressions retournant des chaînes de caractères................................................................55 4.Les affectations et les opérateurs associés..................................................................................55 5.Les autres opérateurs du langage................................................................................................56 6.Priorité des opérateurs................................................................................................................56 7.Les erreurs de codage dans les expressions................................................................................58 8.Exercices.....................................................................................................................................59 9.Séance de TP N°2 : Déboguer un programme............................................................................61 9.1.Travail demandé..................................................................................................................61 9.2.Conditions...........................................................................................................................61 CHAPITRE 5 - LES INSTRUCTIONS DU LANGAGE ............................................................................................63 1.Les instructions de contrôle .......................................................................................................63 1.1.L'instruction if...else ...........................................................................................................63 1.2.L'instruction switch ............................................................................................................64 2.Les instructions de boucle ..........................................................................................................66 2.1.L'instruction for ..................................................................................................................66 2.2.L'instruction while ..............................................................................................................67 2.3.L'instruction do...while .......................................................................................................67 2.4.Les instructions break et continue ......................................................................................68 3.Exercices.....................................................................................................................................68 4.Séance de TP N°3 : Faire des Choix...........................................................................................69 4.1.Travail demandé..................................................................................................................69 4.2.Conditions...........................................................................................................................69 5.Séance de TP N°4 : Faire des répétitions....................................................................................71 5.1.Travail demandé..................................................................................................................71 5.2.Conditions...........................................................................................................................71 CHAPITRE 6 - LE MODÈLE OBJET DE JAVA .................................................................................................72 1.Définition d'une classe en Java...................................................................................................72 1.1.Les attributs de la classe......................................................................................................72 1.2.Les méthodes.......................................................................................................................73 1.3.La surcharge de méthodes...................................................................................................74 2.Instanciation d'objet....................................................................................................................75 4/286 2.1.L'allocation de mémoire......................................................................................................75 2.2.Les constructeurs.................................................................................................................75 2.3.Les finaliseurs.....................................................................................................................77 3.Le ramasse-miettes.....................................................................................................................77 4.Méthodes et attributs statiques....................................................................................................78 4.1.main() : le point d'entrée du programme.............................................................................78 4.2.Partage d'informations.........................................................................................................78 5.L'héritage....................................................................................................................................79 5.1.Ce qu'il ne faut surtout pas faire..........................................................................................79 5.2.Ce qu'il faut faire.................................................................................................................80 5.3.L'intérêt...............................................................................................................................83 6.Le polymorphisme......................................................................................................................84 6.1.Définition............................................................................................................................84 6.2.La liaison dynamique (dynamic binding)...........................................................................85 7.Utiliser l'abstraction....................................................................................................................86 7.1.Définir une classe abstraite.................................................................................................86 7.2.Définir une interface...........................................................................................................87 8.Attributs et méthodes constants..................................................................................................89 8.1.Attributs constants...............................................................................................................89 8.2.Méthodes finales.................................................................................................................90 8.3.Paramètres constants...........................................................................................................90 9.Les classes internes ....................................................................................................................91 10.Les paquetages..........................................................................................................................91 10.1.Création d'un paquetage....................................................................................................92 10.1.1.Le mot réservé package.............................................................................................92 10.1.2.Placer les fichiers d'un paquetage..............................................................................92 10.2.Importer les classes d'un paquetage..................................................................................92 10.2.1.Positionnement de la variable CLASSPATH............................................................92 10.2.2.Le mot réservé import...............................................................................................93 10.2.3.Accéder directement à une classe d'un paquetage.....................................................93 10.3.Compresser un paquetage.................................................................................................94 10.3.1.L'utilitaire jar.............................................................................................................94 10.3.2.L'archivage et CLASSPATH....................................................................................94 10.3.3.Une petite subtilité.....................................................................................................94 11.Les droits d'accès......................................................................................................................95 11.1.L'encapsulation..................................................................................................................95 11.1.1.L'accès public............................................................................................................95 11.1.2.L'accès private...........................................................................................................95 11.1.3.L'accès protected.......................................................................................................96 11.1.4.L'accès friendly.........................................................................................................96 11.1.5.Quelques conventions................................................................................................97 12.Exercices...................................................................................................................................97 13.Séance de TP N°5 : Utiliser des classes et objets – Création d'une classe Calculette............100 13.1.Travail demandé..............................................................................................................100 13.2.Conditions.......................................................................................................................100 CHAPITRE 7 - LES CHAÎNES DE CARACTÈRES .............................................................................................102 1.Création et utilisation d'objets de la classe String....................................................................102 2.Quelques méthodes de la classe String.....................................................................................103 3.Exercices...................................................................................................................................104 4.Séance de TP N°6 : Utiliser la classe String – Amélioration de la Calculette [1]....................105 5/286 4.1.Travail demandé................................................................................................................105 4.2.Conditions.........................................................................................................................105 5.Séance de TP N°7 : Aller plus loin dans les concepts objets – Amélioration de la Calculette [2] .....................................................................................................................................................106 5.1.Travail demandé................................................................................................................106 5.2.Conditions.........................................................................................................................107 CHAPITRE 8 - LES TABLEAUX EN JAVA .....................................................................................................109 1.Définition d'un tableau..............................................................................................................109 2.Une autre façon de définir un tableau.......................................................................................109 3.Longueur d'un tableau et dépassement des bornes...................................................................110 4.Manipuler un tableau d'objets...................................................................................................111 5.Un tableau à deux dimensions..................................................................................................112 6.La classe Arrays........................................................................................................................113 7.Exercices...................................................................................................................................113 8.Séance de TP N°8 : Collectionner un nombre fixe d'objets – Amélioration de la Calculette [3] .....................................................................................................................................................114 8.1.Travail demandé................................................................................................................114 8.2.Conditions.........................................................................................................................114 CHAPITRE 9 - LES EXCEPTIONS ...............................................................................................................116 1.Traitement de l'exception..........................................................................................................116 1.1.Le mot réservé try.............................................................................................................116 1.2.Le mot réservé catch.........................................................................................................116 1.3.Le mot réservé finally.......................................................................................................116 1.4.Quelques exceptions.........................................................................................................117 2.Relayer l'exception avec throws..............................................................................................117 3.Définir ses propres exceptions..................................................................................................117 4.Lever une exception avec throw..............................................................................................118 5.Séance de TP N°9 : Gérer les exceptions – Amélioration de la Calculette [4].........................119 5.1.Travail demandé................................................................................................................119 5.2.Conditions.........................................................................................................................119 CHAPITRE 10 - RÉALISER UNE INTERFACE GRAPHIQUE ...............................................................................120 1.Introduction...............................................................................................................................120 1.1.Conteneurs et composants.................................................................................................120 1.2.L'API AWT ......................................................................................................................121 1.3.L'API Swing .....................................................................................................................121 1.4.Un exemple.......................................................................................................................121 1.4.1.Version AWT............................................................................................................121 1.4.2.Version SWING........................................................................................................123 1.5.Les sujets abordés par ce chapitre ....................................................................................124 2.La gestion des événements en Java...........................................................................................124 2.1.Traitement d'événements simples.....................................................................................125 2.1.1.Définition d'un auditeur.............................................................................................125 2.1.2.Enregistrement d'un auditeur.....................................................................................126 2.1.3.Définition de classes privées ....................................................................................127 2.1.4.Définition de classes anonymes ...............................................................................128 2.1.5.Les classes d'adaptation ............................................................................................128 2.2.Types d'événements supportés par AWT et Swing ..........................................................129 2.2.1.Gestion du clavier......................................................................................................129 a)Intercepter des frappes de touches..............................................................................130 b)Intercepter des frappes composées de touches...........................................................131 6/286 2.3.Gérer la souris...................................................................................................................133 a)Utiliser les « clics » de la souris.................................................................................133 2.4.Mais encore ?....................................................................................................................136 3.Stratégies de placement des composants..................................................................................136 3.1.Affecter une stratégie de placement à un conteneur.........................................................136 3.2.La stratégie de placement FlowLayout.............................................................................137 3.3.La stratégie de placement BorderLayout..........................................................................138 3.4.La stratégie de placement GridLayout..............................................................................139 3.5.La stratégie de placement GridBagLayout........................................................................141 3.6.La stratégie de placement CardLayout..............................................................................143 4.Les composants graphiques......................................................................................................145 4.1.Utilisation d'un bouton......................................................................................................145 4.2.Utilisation d'un label.........................................................................................................145 4.3.Utilisation d'une « boîte à cocher »...................................................................................145 4.4.Utilisation d'une « boîte de liste ».....................................................................................147 4.5.Utilisation d'une « boite de choix »...................................................................................149 4.6.Utilisation d'une « zone de saisie de texte »......................................................................150 4.7.Valider l'ajout d'un composant..........................................................................................151 4.8.Utilisation d'un menu........................................................................................................152 5.Complément sur les conteneurs................................................................................................153 5.1.Utilisation d'une « boîte de dialogue »..............................................................................153 5.2.Utiliser des ascenseurs......................................................................................................154 5.3.Utilisation d'un conteneur avec ascenseurs.......................................................................156 6.Conclusion................................................................................................................................157 7.Séance de TP N°10 : Réaliser une Interface Graphique avec AWT – Amélioration de la Calculette [5]................................................................................................................................158 7.1.Travail demandé................................................................................................................158 7.2.Conditions.........................................................................................................................159 8.Séance de TP N°11 : Réaliser une Interface Graphique avec Swing – Amélioration de la Calculette [6]................................................................................................................................159 8.1.Travail demandé................................................................................................................159 8.2.Conditions.........................................................................................................................159 CHAPITRE 11 - SAISIR DES DONNÉES OU UTILISER DES FICHIERS ...................................................................160 1.Généralités sur les flux de données...........................................................................................160 2.Saisir des données envoyées par le clavier...............................................................................160 2.1.Première méthode.............................................................................................................160 2.2.Deuxième méthode...........................................................................................................161 3.Rediriger la sortie standard vers un fichier...............................................................................162 4.Manipuler les fichiers textes.....................................................................................................162 4.1.écrire dans un fichier texte................................................................................................162 4.2.Lire dans un fichier texte..................................................................................................163 4.2.1.Premier exemple........................................................................................................163 4.2.2.Deuxième exemple....................................................................................................163 5.Manipuler les fichiers binaires..................................................................................................164 5.1.écrire dans un fichier binaire.............................................................................................164 5.2.Lire dans un fichier binaire...............................................................................................165 6.Utiliser la classe File.................................................................................................................166 7.Sérialisation..............................................................................................................................168 7.1.Présentation du concept....................................................................................................168 7.1.1.Les problématiques....................................................................................................168 7/286 7.1.2.Les solutions..............................................................................................................168 7.2.Le support de sérialisation en Java...................................................................................169 7.2.1.Utilisation de la sérialisation.....................................................................................169 7.2.2.Coder une classe sérialisable.....................................................................................170 7.2.3.Un piège à éviter........................................................................................................171 8.Séance de TP N°12 : Travailler avec les flux d'entrée/sortie – Amélioration de la Calculette [7] .....................................................................................................................................................172 8.1.Travail demandé................................................................................................................172 8.2.Conditions.........................................................................................................................172 CHAPITRE 12 - COMMUNIQUER À TRAVERS UN RÉSEAU ...............................................................................173 1.Quelques définitions.................................................................................................................173 2.Connexion en mode « non connecté » ......................................................................................173 3.Connexion en mode « connecté » .............................................................................................175 4.Séance de TP N°13 : Travailler avec les réseaux sous UDP – Amélioration de la Calculette [8] .....................................................................................................................................................178 4.1.Travail demandé................................................................................................................178 4.2.Conditions.........................................................................................................................179 5.Séance de TP N°14 : Travailler avec les réseaux sous TCP – Amélioration de la Calculette [9] .....................................................................................................................................................180 5.1.Travail demandé................................................................................................................180 5.2.Conditions.........................................................................................................................181 CHAPITRE 13 - UTILISATION DES THREADS ...............................................................................................182 1.Introduction...............................................................................................................................182 1.1.Les threads........................................................................................................................182 1.2.Multithreading et processus..............................................................................................183 2.Les threads en Java...................................................................................................................184 3.Création et démarrage d'un thread............................................................................................185 3.1.étendre la classe Thread....................................................................................................185 3.2.Implémenter l'interface Runnable.....................................................................................187 3.3.Utiliser la méthode join()..................................................................................................188 4.Gestion des threads...................................................................................................................188 4.1.Cycle de vie d'un thread....................................................................................................189 4.2.Démarrage, suspension, reprise et arrêt d'un thread..........................................................189 4.3.Gestion de la priorité d'un thread......................................................................................190 4.4.Gestion d'un groupe de threads.........................................................................................191 4.5.Un exemple: Dessiner un disque.......................................................................................191 5.Synchronisation de threads et accès aux ressources partagées.................................................193 5.1.Notions de verrous............................................................................................................194 5.2.Attendre l'accès à une ressource........................................................................................194 5.3.Le modèle « producteur/consommateur ».........................................................................195 5.4.Exemple de la « boite aux lettres »...................................................................................197 6.Utiliser un démon......................................................................................................................199 7.Séance de TP N°15 : Utiliser les threads – Amélioration de la Calculette [10].......................202 7.1.Travail demandé................................................................................................................202 7.2.Conditions.........................................................................................................................202 CHAPITRE 14 - INTERFACER JAVA ET LE MONDE NATIF ...............................................................................203 1.Exécuter des applications natives.............................................................................................203 2.Interfacer Java et C/C++...........................................................................................................205 2.1.Introduction à JNI.............................................................................................................205 2.2.Caractéristiques de JNI.....................................................................................................206 8/286 2.2.1.Les en-têtes jni.h et jni_md.h....................................................................................206 2.2.2.Les types de base et leurs équivalents natifs.............................................................206 2.2.3.Les objets et leurs équivalents natifs.........................................................................207 2.2.4.Déclaration des uploads/s3/ exercice-java.pdf

  • 23
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager