• Aucun résultat trouvé

Le langage Java

N/A
N/A
Protected

Academic year: 2022

Partager "Le langage Java"

Copied!
6
0
0

Texte intégral

(1)

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

(2)
(3)

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 Jeu de caract`eres . . . 9

2.2 Commentaires . . . 9

2.3 Identificateurs . . . 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 S´emantique des valeurs et s´emantique des r´ef´erences . . . 12

3.3.2 R´ef´erence “sur rien” . . . 13

3.3.3 Cas des param`etres des m´ethodes . . . 13

3.4 Tableaux . . . 13

3.4.1 D´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 D´efinir la m´ethodeclone . . . 19

3.6.3 Comparaison . . . 21

3.7 Chaˆınes de caract`eres . . . 22

3.7.1 Les classesStringet StringBuffer . . . 22

3.7.2 Copie et comparaison des chaˆınes . . . 23

4 Expressions et instructions 24 4.1 Rupture ´etiquet´ee . . . 24

(4)

5 Classes, paquets, fichiers et r´epertoires 25

5.1 Paquets et classes . . . 25

5.1.1 Les noms des paquets et l’instructionpackage . . . 25

5.1.2 Les noms des classes et l’instructionimport . . . 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 D´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 Surcharge des noms . . . 33

6.4 Contrˆole de l’accessibilit´e . . . 34

6.4.1 Membres priv´es, prot´eg´es, publics . . . 34

6.4.2 ♥L’encapsulation . . . 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 Classes internes . . . 39

6.6.2 Classes anonymes . . . 40

7 H´eritage 41 7.1 ♥Introduction : raffiner, abstraire . . . 41

7.2 Sous-classes et super-classes . . . 42

7.2.1 D´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 m´ethodes . . . 44

7.4 H´eritage et constructeurs . . . 45

7.5 Membres prot´eg´es . . . 46

7.6 ♥Le polymorphisme . . . 47

7.6.1 G´en´eralisation et particularisation . . . 47

7.6.2 Les m´ethodes red´efinies sont “virtuelles” . . . 49

7.6.3 M´ethodes et classes finales . . . 51

7.7 ♥Abstraction . . . 52

7.7.1 M´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 D´eclaration des exceptions lanc´ees par une m´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

(5)

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 Analyse lexicale . . . 82

9.4.4 Mise en forme de donn´ees . . . 84

9.4.5 Repr´esentation des dates . . . 87

9.4.6 La s´erialisation . . . 88

9.5 Expressions r´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.2 Synchronisation . . . 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 :JFrameet une application minimale. . . 103

11.4 Lethread de gestion des ´ev´enements . . . 105

11.5 ´Ev´enements . . . 106

11.5.1 Exemple : d´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´ethodepaint . . . 115

11.6.2 Les classesGraphicsetGraphics2D . . . 116

11.6.3 Exemple : lamauvaise mani`ere de dessiner . . . 118

11.6.4 Exemple : labonne 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’unGridBagLayout . . . 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 : s´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

(6)

Références

Documents relatifs

● Les fichiers de byte-code (.class) sont dans le répertoire classes. ● Les bibliothèques nécessaire (jar et so/dll en cas de JNI) sont dans le

toString());..

En utilisant la fonction pt précédemment décrite, réalisez une fonction void tri(int t[], int n) qui trie en ordre croissant les valeurs stockées dans un tableau t supposé de taille

public static boolean createTempFile(String p, String e, File dir) Création d'un chier temporaire (pas obli- gatoirement eacé à la n de l'appli- cation) dans le répertoire dir, dont

- Une méthode de classe (modificateur static en Java) exécute une action indépendante d’une instance particulière de la classe. - Une méthode de classe peut être considérée

- Une variable d’instance (pas static) final est constante pour chaque instance ; mais elle peut avoir 2 valeurs différentes pour 2 instances. - Une variable d'instance final

Lors de la cr´eation, les composantes d’un tableau sont initialis´ees avec des valeurs par d´efaut : – les composantes boolean sont initialis´ees `a false.. – les

Caractéristiques de l'indice: sert à parcourir les éléments d'un tableau et peut être exprimé comme un nombre ou une variable.. La valeur d'un indice