JAVA PAR LA PRATIQUE
PATRICK NIEMEYER
JOSHUA PECK
RESUME
Le but de ce livre est de permettre aux programmeurs de s'initier à Java en un temps record, tout
en intégrant toutes les spécificités de ce langage multi-plates-formes. Nombreux sont ceux qui
appréhendent Java uniquement en termes d'applets. Dans cet ouvrage, ils apprendront également à
maîtriser la programmation multi-thread, à écrire des gestionnaires de contenu et de protocoles,
des programmes réseau en mode connec ou non connecté, et autres applications autonomes
(l'exemple le plus connu d'une telle application est le browser HotJava de Sun).
En quatre exemples commentés (inspirés bien sur du fameux Hello World !) le lecteur est
familiarisé avec les constructeurs, les threads, les couleurs, la gestion des événements, etc.
La suite du livre revient soigneusement sur tous les points vitaux de la programmation, en s'aidant
systématiquement d'exemples concrets. Les fonctionnalités d'entrée/sortie, les threads, la
programmation seau et l'utilisation de l'AWT pour le dessin et l'affichage sont exposées avec
rigueur et clarté.
Parmi les sujets abordés, vous trouverez dans ce livre :
Des rappels sur la programmation objet;
L'art et la manière d'écrire des applets ;
La fon d'intégrer des applets dans un document World Wide Web ;
Une description des bibliothèques de classes Java ;
L'art et la manière d'utiliser les threads ;
Une description des tableaux associatifs;
Les principes de la programmation seau ;
Comment utiliser efficacement l'AWT (Abstract Windowing Toolkit) ;
L'art et la manière d'écrire un gestionnaire de sécurité.
Si vous êtes déjà programmeur et que vous désirez étendre vos connaissances en programmation multi-plates-formes orientée objet, et si vous souhaitez
manipuler efficacement les applets, les outils graphiques, le réseau ou les threads, cet ouvrage est pour vous.
TABLE DES MATIERES
Préface xvii
1 Encore un nouveau langage? 1
1.1 Bienvenue à Java 2
1.1.1 La premre pierre 2
1.1.2 Un futur prometteur? 3
1.2 Une machine virtuelle 4
1.3 Comparaisons avec d'autres langages 6
1.4 Une conception basée sur la sécuri 8
1.4.1 Une syntaxe simple et agable 9
1.4.2curité de typage et liaisons desthodes 9
1.4.3 Développement incrémental 11
1.4.4 Gestion de lamoire dynamique 11
1.4.5 Gestion des erreurs 13
1.4.6 Threads 13
1.4.7 Extensibilité 14
1.5 Sûreté de l'impmentation 14
1.5.1 Le vérificateur 16
1.5.2 Le chargeur de classes 18
1.5.3 Système de sécurité 18
1.6 Niveau de sécurité de l'application et de l'utilisateur 19
1.6.1 Signature de classes 21
1.7 Java et WWW 22
1.7.1 Applets 22
1.7.2 Des applications d'une nouvelle génération 24
1.8 Java est un langage destine à n'importe quelle application 25
1.9 Disponibili 25
2 Première applet 27
2.1 Hello Web! 27
2.1.1 Les classes 29
2.1.2 Variables 31
2.1.3 Héritage 32
2.1.4 Applet 32
2.1.5 Liens de parenté et désignation des objets 33
2.1.6 Paquetages 34
2.1.7 La méthode paint() 36
2.2 Hello Web! II: la contre-attaque 37
2.2 Hello Web! II: la contre-attaque 37
2.2.1 Le mot-clef Import 38
2.2.2 Variables d'instance 39
2.2.3thodes 40
2.2.4 Evénements 41
2.2.5 La méthode repaint() 42
2.3 Hello Web! III: le retour! 43
2.3.1 L'opérateur New 45
2.3.2 Constructeurs 46
2.3.3 Surcharge dethodes 47
2.3.4 Ramasse-miettes 47
2.3.5 La classe Components 48
2.3.6 La classe Container 48
2.3.7 Placement à l'écran 50
2.3.8 Classes filles et types dérivés 50
2.3.9 action() 50
2.3.10 Observations sur la couleur 52
2.3.11 Membres statiques 52
2.3.12 Les tableaux 53
2.3.13 Nos méthodes pour la couleur 53
2.4 Hello Web IV ! : la revanche de Netscape 55
2.4.1 Threads 57
2.4.2 La classe Thread 58
2.4.3 Interfaces 59
2.4.4 L'interface Runnable 60
2.4.5 run() 61
2.4.6 Exceptions 62
2.4.7 Quelques mots sur la synchronisation 63
3 Les outils associés 65
3.1 L'interpréteur Java 65
3.2 Les chemins d'accès aux classes 68
3.3 Le compilateur Java 69
3.4 L'alternative Netscape 71
3.5 La balise Applet 72
3.5.1 Attributs 73
3.5.2 Paramètres 73
3.5.3 Parlez-vous applet? 74
3.5.4 Les détails du mot-clef Applet 75
3.5.5 Charger un fichier de classes 76
3.5.6 Paquetages 77
3.5.7 Visualiser les applets 78
4 Le langage Java 79
4.1 Codage du texte 79
4.2 Commentaires 80
4.3 Types 82
4.3.1 Types de base 82
4.3.2 Les types référence 85
4.3.3 Quelques mots sur les chaînes de caractères 87
4.4 Instructions et expressions 87
4.4.1 Instructions 88
4.4.2 Expressions 92
4.4.3 Exceptions 96
4.4.4 Les exceptions et les classes d'erreurs 97
4.4.5 Gestion des exceptions 97
4.4.6 Remone des exceptions 100
4.4.7 Le mot-clef throws 100
4.4.8 Lever des exceptions 101
4.4.9 Une exception parmi les exceptions 102
4.4.10 La capture d'exception 102
4.4.11 Le mot-clef finally 103
4.5 Les tableaux 105
4.5.1 Les types de tableaux 105
4.5.2 Création et initialisation de tableaux 106
4.5.3 Utiliser les tableaux 108
4.5.4 Tableaux multi-dimensionnels 109
4.5.5 À l'intérieur des tableaux 111
5 Les objets dans Java 113
5.1 Les classes 114
5.1.1 L'accès aux membres 116
5.1.2 Membres statiques 117
5.2 Méthodes 120
5.2.1 Variables locales 121
5.2.2 Jeux d'ombre et de cache-cache 121
5.2.3 Méthodes statiques 122
5.2.4 Initialisation des variables locales 123
5.2.5 Passage d'arguments 125
5.2.6 Surcharge de méthodes 126
5.3 Création d'objets 128
5.3.1 Constructeurs 128
5.3.2 Travailler avec des constructeurs surchargés 129
5.3.3 Zone de code statique 132
5.4 Destruction d'objets 132
5.4.1 Ramasse-miettes 132
5.4.2 Terminaison 133
5.5 Dérivation et héritage 134
5.5 Dérivation et héritage 134
5.5.1 Variables masqes 135
5.5.2 Redéfinition dethodes 138
5.5.3 this et super 141
5.5.4 Transtypage 142
5.5.5 Construction d'objets 143
5.5.6thodes et classes abstraites 145
5.6 Paquetages et unités de compilation 146
5.6.1 Unités de compilation 146
5.6.2 À propos des noms des paquetages 147
5.6.3 Visibilité de classe 147
5.6.4 Importation de classes 148
5.6.5 Le paquetage anonyme 149
5.7 Visibilité des variables et des méthodes 150
5.7.1 Les modificateurs d'accès de base 150
5.7.2 Classes filles et visibili 152
5.8 Interfaces 152
5.8.1 Les interfaces comme fonctions réflexes 155
5.8.2 Variables d'interface 156
5.8.3 Interfaces et paquetages 157
5.8.4 Sous-interfaces 157
5.9 Les classes Object et Class 157
5.9.1 Egalité 158
5.9.2 hashcode 159
5.9.3 java.lang.Class 159
5.9.4 Au cœur des tableaux 161
6 Les threads 165
6.1 Introduction aux threads 165
6.1.1 La classe Thread et l'interface Runnable 166
6.1.2 Contrôler les threads 170
6.1.3 La vie d'un thread 171
6.2 Applets et threads 172
6.3 Synchronisation 175
6.3.1quentialiser des méthodes 176
6.3.2 wait() et notify() 178
6.3.3 Le distributeur de messages 180
6.4 Ordonnancement et priorité 185
6.4.1 Priorités 187
6.4.2 Rendre la main 188
7 Les classes de base 189
7.1 Chaînes de caractères 191
7.1.1 Les constructeurs de chnes 191
7.1.2 Conversion vers une chaîne de caractères 193
7.1.3 Conversions à partir d'une chaîne de caractères 194
7.1.4 Comparaisons 194
7.1.5 Recherche 195
7.1.6 Modification 196
7.1.7 Méthodes de manipulation des chaînes de caractères 197
7.1.8 java.lang.StringBuffer 198
7.1.9 java.util.StringTokenizer 199
7.2 Outils mathématiques 201
7.2.1 java.lang.Math 202
7.2.2 Enveloppes des types de base 203
7.2.3 Nombres aatoires 205
7.3 Dates 206
7.4 Vecteurs et tables de hachage 208
7.4.1 java.util.Vector 209
7.4.2 java.util.Enumeration 210
7.4.3 java.util.Hashtable 211
7.4.4 java.util.Dictionary 214
7.5 Properties 215
7.5.1 Valeurs par défaut 215
7.5.2 Charger et sauvegarder 216
7.5.3 Proprtés du système 217
7.6 Le gestionnaire de sécurité 217
8 Les entrées-sorties 221
8.1 Streams 221
8.1.1 Entrées/sorties sur terminal 223
8.1.2 Enveloppes de streams 225
8.1.3 Tubes (pipes) 229
8.1.4 Chnes de caractères et streams 231
8.1.5 rot13InputStream 232
8.2 Fichiers 234
8.2.1 java.io.File234
8.2.2 File Streams238
8.2.3 java.io.RandomAccessFile 240
8.2.4 Applets et fichiers 241
9 La programmation réseau 243
9.1 Sockets 244
9.1.1 Client Serveur 245
9.1.2 Le client DateAtHost 249
9.1.3 Le serveur PetitHttpd 251
9.2 Sockets datagramme 256
9.2.1 L'applet BattementCœur 257
9.3 Travailler avec les URL 261
9.3 Travailler avec les URL 261
9.3.1 La classe URL 262
9.3.2 Streams 263
9.3.3 Récupérer le contenu d'un objet 264
9.4 Arpenteurs et gestionnaires 266
9.5 Ecrire un gestionnaire de contenu 268
9.5.1 Trouver des gestionnaires de contenu 269
9.5.2 Le gestionnaire application/x-tar 271
9.6 Ecrire un gestionnaire de protocole 276
9.6.1 Localisation des gestionnaires de protocole 277
9.6.2 URL, gestionnaires de Stream, et connexions 278
9.6.3 Le gestionnaire de cryptage 279
10 AWT : Abstract Windowing Toolkit 289
10.1 Concepts du GUI en Java 291
10.1.1 Composants 291
10.1.2 Evénements 297
10.1.3 Conteneurs 299
10.2 Applets 301
10.2.1 Contrôle d'une applet 302
10.2.2 Ressources d'environnement de visualiseur 303
10.3 Utiliser des composants et des conteneurs 305
10.3.1 Composant intelligents 306
10.3.2 Conteneurs intelligents 307
10.3.3 Qui envoie cet événement? 309
10.4 Composants texte 310
10.5 Menus et sélecteur d'options 312
10.6 Cases à cocher 316
10.7 Utiliser un Canvas 319
10.8 Utiliser les barres de défilement 321
10.9 Construire un nouveau composant 325
10.10 Boîtes de dialogue 327
10.10.1 Questions 327
10.10.2 Sélecteur de fichiers 329
10.11 Gestionnaires de placement 332
10.11.1 FlowLayout 334
10.11.2 GridLayout 335
10.11.3 BorderLayout 336
10.11.4 CardLayout 338
10.11.5 Autres systèmes de placement 339
10.11.6 Que dire du positionnement absolu? 340
11 Les dessins et les images 341
11.1 Les bases du dessin avec Java 341
11.1.1 Méthodes de dessin 343
11.1.2 Couleurs 346
11.2 Polices de caractères 346
11.2.1 Taille d'une police de caractère 348
11.3 Images 351
11.3.1 java.awt.Image 351
11.3.2 Spectateurs 352
11.3.3 Echelle et taille 354
11.4 Techniques de graphisme 354
11.4.1 Masquage 356
11.4.2 Double Buffering 359
11.4.3 Dessiner dans un tampon 361
11.5 Traitement d'images 364
11.5.1 java.awt.image.ImageObserver 366
11.5.2 java.awt.MediaTracker 368
11.5.3 Créer des images 371
11.5.4 Mettre à jour des images 375
11.5.5 Filtrage d'image 382
11.6 Travailler avec le son 384
Glossaire 387
Index 400
TOP
1 / 4 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !