Universit´e d’Aix-Marseille
Facult´e des Sciences
Le langage Java
Master CCI, I, BBSG, IMSA, etc.
Henri Garreta
D´epartement d’Informatique & LIF
2c
H. Garreta, 2000-2015
TABLE DES MATI `
ERES TABLE DES MATI `
ERES
Le langage Java
Henri Garreta
Universit´e d’Aix-Marseille, Facult´e des Sciences, Luminy
Table des mati`eres
1 Introduction 7
1.1 Pratique effective de Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2 Consid´erations lexicales 9
2.1 Jeudecaract`eres........................................... 9
2.2 Commentaires............................................. 9
2.3 Identicateurs............................................. 9
2.4 Constantes litt´erales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3 Types 11
3.1 Les types de donn´ees de Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2 Conversions entre types primitifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.3 R´ef´erences............................................... 12
3.3.1 emantique des valeurs et emantique des ef´erences . . . . . . . . . . . . . . . . . . . 12
3.3.2 ef´erence “sur rien” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.3.3 Cas des param`etres des m´ethodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.4 Tableaux ............................................... 13
3.4.1 eclaration et initialisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.4.2 Acc`es aux ´el´ements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.4.3 Tableaux `a plusieurs indices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.4.4 Tableaux initialis´es et tableaux anonymes. . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.5 Conversions entre types tableaux ou classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.6 Copie et comparaison des objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.6.1 Copie ............................................. 18
3.6.2 efinir la m´ethode clone .................................. 19
3.6.3 Comparaison ......................................... 21
3.7 Chaˆınes de caract`eres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.7.1 Les classes String et StringBuffer ............................ 22
3.7.2 Copie et comparaison des chaˆınes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4 Expressions et instructions 24
4.1 Rupture´etiquet´ee .......................................... 24
c
H. Garreta, 2000-2015 3
TABLE DES MATI `
ERES TABLE DES MATI `
ERES
5 Classes, paquets, fichiers et r´epertoires 25
5.1 Paquetsetclasses........................................... 25
5.1.1 Les noms des paquets et l’instruction package ...................... 25
5.1.2 Les noms des classes et l’instruction import ........................ 25
5.2 Classes, fichiers et r´epertoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5.2.1 Classes publiques et non publiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5.2.2 Point d’entr´ee d’un programme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5.2.3 O`u placer les fichiers des classes ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.2.4 Comment distribuer une application Java ? . . . . . . . . . . . . . . . . . . . . . . . . 28
6 Les objets 29
6.1 Introduction : les langages orient´es objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
6.2 Classes, variables et m´ethodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
6.2.1 eclaration des classes et des objets, instanciation des classes . . . . . . . . . . . . . . 29
6.2.2 Instances et membres d’instance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
6.2.3 Membres de classe (membres statiques) . . . . . . . . . . . . . . . . . . . . . . . . . . 31
6.3 Surchargedesnoms ......................................... 33
6.4 Contrˆole de l’accessibilit´e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
6.4.1 Membres priv´es, prot´eg´es, publics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
6.4.2 Lencapsulation ...................................... 34
6.5 Initialisation des objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
6.5.1 Constructeurs......................................... 36
6.5.2 Membres constants (final)................................. 37
6.5.3 Blocs d’initialisation statiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
6.5.4 Destruction des objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
6.6 Classes internes et anonymes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
6.6.1 Classesinternes........................................ 39
6.6.2 Classesanonymes....................................... 40
7 H´eritage 41
7.1 Introduction : raffiner, abstraire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
7.2 Sous-classes et super-classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
7.2.1 efinition de sous-classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
7.2.2 L’arbre de toutes les classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
7.3 Red´efinition des m´ethodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
7.3.1 Surcharge et masquage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
7.3.2 Red´efinition des ethodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
7.4 H´eritage et constructeurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
7.5 Membresprot´eg´es .......................................... 46
7.6 Lepolymorphisme......................................... 47
7.6.1 en´eralisation et particularisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
7.6.2 Les m´ethodes red´efinies sont “virtuelles” . . . . . . . . . . . . . . . . . . . . . . . . . . 49
7.6.3 ethodes et classes finales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
7.7 Abstraction............................................. 52
7.7.1 ethodes abstraites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
7.7.2 Classes abstraites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
7.7.3 Interfaces ........................................... 53
8 Exceptions 57
8.1 Interception des exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
8.2 Lancement des exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
8.2.1 Hi´erarchie des exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
8.2.2 eclaration des exceptions lanc´ees par une ethode . . . . . . . . . . . . . . . . . . . 58
8.3 Assert ................................................. 60
9 Quelques classes utiles 62
9.1 Nombres et outils math´ematiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
9.1.1 Classes-enveloppes des types primitifs . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
9.1.2 Fonctions math´ematiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
9.1.3 Nombres en pr´ecision infinie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
9.2 Collections et algorithmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4c
H. Garreta, 2000-2015
TABLE DES MATI `
ERES TABLE DES MATI `
ERES
9.2.1 Collections et tables associatives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
9.2.2 It´erateurs ........................................... 69
9.2.3 Quelques m´ethodes des collections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
9.2.4 Algorithmes pour les collections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
9.2.5 Algorithmes pour les tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
9.3 R´eflexion et manipulation des types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
9.4 Entr´ees-sorties ............................................ 76
9.4.1 Les classes de flux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
9.4.2 Exemples ........................................... 79
9.4.3 Analyselexicale........................................ 82
9.4.4 Mise en forme de donn´ees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
9.4.5 Repr´esentation des dates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
9.4.6 Las´erialisation........................................ 88
9.5 Expressions eguli`eres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
9.5.1 Principe............................................ 90
9.5.2 Exemples ........................................... 90
10 Threads 94
10.1 Cr´eation et cycle de vie d’un thread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
10.1.1 D´eclaration, cr´eation et lancement de threads . . . . . . . . . . . . . . . . . . . . . . . 94
10.1.2 Terminaison d’un thread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
10.2Synchronisation............................................ 96
10.2.1 Sections critiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
10.2.2 M´ethodes synchronis´ees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
11 Interfaces graphiques 100
11.1 JFC =AWT +Swing ....................................... 100
11.2 Le haut de la hi´erarchie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
11.3 Le point de d´epart : JFrame et une application minimale. . . . . . . . . . . . . . . . . . . . . 103
11.4 Le thread de gestion des ´ev´enements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
11.5 ´
Ev´enements.............................................. 106
11.5.1 Exemple : etecter les clics de la souris. . . . . . . . . . . . . . . . . . . . . . . . . . . 107
11.5.2 Adaptateurs et classes anonymes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
11.5.3 Principaux types d’´ev´enements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
11.5.4 Exemple : fermeture “prudente” du cadre principal . . . . . . . . . . . . . . . . . . . . 114
11.6 Peindre et repeindre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
11.6.1 La m´ethode paint ...................................... 115
11.6.2 Les classes Graphics et Graphics2D ............................ 116
11.6.3 Exemple : la mauvaise mani`ere de dessiner . . . . . . . . . . . . . . . . . . . . . . . . 118
11.6.4 Exemple : la bonne mani`ere de dessiner. . . . . . . . . . . . . . . . . . . . . . . . . . . 119
11.7 Gestionnaires de disposition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
11.7.1 FlowLayout .......................................... 121
11.7.2 BorderLayout ........................................ 122
11.7.3 GridLayout .......................................... 122
11.7.4 GridBagLayout ........................................ 123
11.7.5 Exemple : un panneau muni d’un GridBagLayout .................... 123
11.7.6 Exemple : imbrication de gestionnaires de disposition . . . . . . . . . . . . . . . . . . 125
11.7.7 Bordures ........................................... 125
11.8 Composants pr´ed´efinis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
11.8.1 Exemple : mise en place et emploi de menus . . . . . . . . . . . . . . . . . . . . . . . . 126
11.8.2 Exemple : construire une boite de dialogue . . . . . . . . . . . . . . . . . . . . . . . . 128
11.8.3 Exemple : saisie de donn´ees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
11.8.4 Exemple : choisir un fichier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
11.8.5 Exemple : une table pour afficher des donn´ees . . . . . . . . . . . . . . . . . . . . . . . 134
11.8.6 Exemple : election et modification dans une table . . . . . . . . . . . . . . . . . . . . 136
11.9 Le mod`ele MVC (Mod`ele-Vue-Controleur) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
11.9.1 Exemple : les vues arborescentes (JTree) ......................... 138
11.10Images................................................. 143
11.10.1 Exemple : utiliser des icˆones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
11.10.2 Exemple : charger une image depuis un fichier . . . . . . . . . . . . . . . . . . . . . . 145
11.10.3 Exemple : construire une image pixel par pixel . . . . . . . . . . . . . . . . . . . . . . 147
c
H. Garreta, 2000-2015 5
1 / 177 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 !