• Aucun résultat trouvé

Programmation en Java et exercices

N/A
N/A
Protected

Academic year: 2022

Partager "Programmation en Java et exercices"

Copied!
6
0
0

Texte intégral

(1)

Programmation en Java

Alexandre Meslé

12 octobre 2018

(2)

Table des matières

1 Notes de cours 2

1.1 Introduction . . . 2

1.1.1 Hello World ! . . . 2

1.1.2 Formats de fichiers . . . 2

1.1.3 Machine virtuelle . . . 2

1.1.4 Linkage . . . 3

1.2 Variables . . . 4

1.2.1 Définition . . . 4

1.2.2 Déclaration . . . 4

1.2.3 Affectation . . . 4

1.2.4 Saisie . . . 5

1.2.5 Affichage . . . 5

1.2.6 Entiers . . . 5

1.2.7 Flottants . . . 6

1.2.8 Caractères . . . 7

1.2.9 Chaînes de caractères . . . 7

1.3 Opérateurs . . . 8

1.3.1 Généralités . . . 8

1.3.2 Les opérateurs unaires . . . 8

1.3.3 Les opérateurs binaires . . . 9

1.3.4 Formes contractées . . . 10

1.3.5 Opérations hétérogènes . . . 11

1.3.6 Les priorités . . . 12

1.4 Conditions . . . 13

1.4.1 Le bloc if . . . 13

1.4.2 Si ... Alors ... Sinon . . . 13

1.4.3 Switch . . . 15

1.4.4 Booléens . . . 16

1.4.5 Les priorités . . . 17

1.5 Boucles . . . 18

1.5.1 Définitions et terminologie . . . 18

1.5.2 while . . . 18

1.5.3 do ... while . . . 19

1.5.4 for . . . 19

1.5.5 Accolades superflues . . . 20

1.6 Survol du langage . . . 21

1.6.1 Structure d’une classe . . . 21

1.6.2 Variables . . . 21

1.6.3 Entrées-sorties . . . 21

1.6.4 Sous-programmes . . . 22

1.6.5 Main . . . 22

1.6.6 Instructions de contrôle de flux . . . 22

1.6.7 Exemple récapitulatif . . . 22

(3)

1.6.8 Packages . . . 23

1.7 Tableaux . . . 24

1.7.1 Déclaration . . . 24

1.7.2 Instanciation . . . 24

1.7.3 Accès aux éléments . . . 24

1.7.4 Longueur d’un tableau . . . 25

1.7.5 Tableaux à plusieurs dimensions . . . 25

1.8 Objets . . . 26

1.8.1 Création d’un type . . . 26

1.8.2 Les méthodes . . . 26

1.8.3 L’instanciation . . . 26

1.8.4 Les packages . . . 28

1.8.5 Le mot-cléthis . . . 28

1.9 Encapsulation . . . 29

1.9.1 Exemple . . . 29

1.9.2 Visibilité . . . 31

1.9.3 Constructeur . . . 33

1.9.4 Accesseurs . . . 34

1.9.5 Surcharge . . . 35

1.9.6 Collections . . . 36

1.10 Héritage . . . 39

1.10.1 Héritage . . . 39

1.10.2 Polymorphisme . . . 40

1.10.3 Redéfinition de méthodes . . . 40

1.10.4 Interfaces . . . 40

1.10.5 Classes Abstraites . . . 41

1.11 Exceptions . . . 45

1.11.1 Rattraper une exception . . . 45

1.11.2 Méthodes levant des exceptions . . . 45

1.11.3 Propagation d’une exception . . . 46

1.11.4 Définir une exception . . . 46

1.11.5 Lever une exception . . . 47

1.11.6 Rattraper plusieurs exceptions . . . 47

1.11.7 Finally . . . 47

1.11.8 RuntimeException . . . 48

1.12 Interfaces graphiques . . . 49

1.12.1 Fenêtres . . . 49

1.12.2 Un premier objet graphique . . . 49

1.12.3 Ecouteurs d’événements . . . 50

1.12.4 Premier exemple . . . 50

1.12.5 Classes anonymes . . . 51

1.12.6 Gestionnaires de mise en forme . . . 52

1.12.7 Un exemple complet : Calcul d’un carré . . . 53

1.13 Tests unitaires . . . 55

1.13.1 Exemple . . . 55

1.13.2 Test à la bourrin . . . 56

1.13.3 Test des fonctions . . . 56

1.13.4 Test des fonctions automatisé . . . 57

1.13.5 Tests unitaires . . . 58

1.13.6 Logs . . . 59

1.14 Collections . . . 60

1.14.1 Types paramétrés . . . 60

1.14.2 Paramètres et héritage . . . 61

1.14.3 Collections standard . . . 62

(4)

1.15 Threads . . . 70

1.15.1 Le dîner des philosophes . . . 70

1.15.2 Lancement . . . 71

1.15.3 Synchronisation . . . 71

1.15.4 Mise en Attente . . . 73

1.16 Persistance . . . 75

1.16.1 Fichiers . . . 75

1.16.2 Serialization . . . 76

1.16.3 JDBC . . . 77

1.16.4 L’attaque par injection . . . 78

1.17 Hibernate . . . 81

1.17.1 Introduction . . . 81

1.17.2 Un premier exemple . . . 81

1.17.3 Un gestionnaire de contacts en quelques lignes . . . 84

1.17.4 Un exemple de relations entre les classes . . . 88

2 Exercices 99 2.1 Variables . . . 99

2.1.1 Saisie et affichage . . . 99

2.1.2 Entiers . . . 100

2.1.3 Flottants . . . 100

2.1.4 Caractères . . . 100

2.2 Opérateurs . . . 101

2.2.1 Conversions . . . 101

2.2.2 Opérations sur les bits (difficiles) . . . 101

2.2.3 Morceaux choisis (difficiles) . . . 101

2.3 Conditions . . . 103

2.3.1 Prise en main . . . 103

2.3.2 Switch . . . 103

2.4 Boucles . . . 104

2.4.1 Compréhension . . . 104

2.4.2 Utilisation de toutes les boucles . . . 104

2.4.3 Choix de la boucle la plus appropriée . . . 105

2.4.4 Morceaux choisis . . . 105

2.4.5 Extension de la calculatrice . . . 106

2.5 Tableaux . . . 107

2.5.1 Exercices de compréhension . . . 107

2.5.2 Prise en main . . . 108

2.5.3 Indices . . . 108

2.5.4 Matrices . . . 108

2.6 Les sous-programmes . . . 110

2.6.1 Initiation . . . 110

2.6.2 Géométrie . . . 110

2.6.3 Arithmétique . . . 113

2.6.4 Tableaux . . . 114

2.6.5 Pour le sport . . . 114

2.7 Objets . . . 115

2.7.1 Création d’une classe . . . 115

2.7.2 Méthodes . . . 115

2.8 Encapsulation . . . 116

2.8.1 Prise en main . . . 116

2.8.2 Implémentation d’une pile . . . 116

2.8.3 Collections . . . 118

2.8.4 Refactoring de la pile avec des ArrayList . . . 118

2.8.5 Refactoring de la pile avec des listes chaînées . . . 119

(5)

2.9 Héritage . . . 121

2.9.1 Héritage . . . 121

2.9.2 Polymorphisme . . . 121

2.9.3 Interfaces . . . 124

2.9.4 Classes abstraites . . . 127

2.9.5 Un dernier casse-tête . . . 128

2.10 Exceptions . . . 135

2.11 Interfaces graphiques . . . 139

2.11.1 Prise en main . . . 139

2.11.2 Maintenant débrouillez-vous . . . 139

2.12 Tests unitaires . . . 140

2.12.1 Prise en main . . . 140

2.12.2 Pour aller plus loin . . . 141

2.13 Collections . . . 142

2.13.1 Types paramétrés . . . 142

2.13.2 Collections . . . 142

2.13.3 Morceaux choisis . . . 142

2.14 Threads . . . 145

2.14.1 Prise en main . . . 145

2.14.2 Synchronisation . . . 145

2.14.3 Débrouillez-vous . . . 145

2.15 Persistance . . . 146

2.15.1 Remember my name . . . 146

2.15.2 Hachage . . . 146

2.15.3 Morceaux choisis . . . 146

2.16 Hibernate . . . 147

2.16.1 Prise en main . . . 147

2.16.2 Contacts . . . 147

(6)

Cliquez ici pour telecharger le PDF complet

Références

Documents relatifs

La fonction retourne un élément du tableau, donc un double, et prend en paramètre le tableau.. public static double

Créer un fichier HelloWorldWithMethod.java contenant la classe HelloWorldWithMethod 2- Ajouter une méthode void Hello() qui fait l’affichage d’une chaîne de caractères exemple :..

Le mot clé « implements » indique que la classe Radio doit forcément donner une définition précise pour les méthodes spécifiées dans l’interface. Une classe peut

[r]

Ecrire la procédure de concaténation de deux listes liste1 et liste 2 dans une seule liste liste : concat(liste1:pointeur; liste2 pointeur ; var liste:pointeur);.. 5.9

Exercice 1 Écrire une unité que vous appelez liste, qui importe l'unité vect vue dans le TP précédent, dans laquelle vous déclarez le type RefCellule d'entiers et vous implantez

debut qui contient l’adresse 15, elle-même ramenée par la fonction malloc().. 2 Il reste à remplir les composantes de la cellule. Notamment si l’on accède à debut, on pourra

En consid´erant que la liste la plus simple est la liste vide (not´ee [ ]), qui ne contient aucun ´el´ement, on peut donner une d´efinition r´ecursive aux listes