Module IP1
Programmation Orient´ee Objets
Le Langage JAVA
Amaury Habrard
Universit´e de Saint-Etienne
amaury.habrard@univ-st-etienne.fr
Mis `a jour par Fran¸cois-Xavier Dup´e
Universit´e d’Aix-Marseille
francois-[email protected]mrs.fr
2
Table des mati`eres
1 Avant propos 7
2 Introduction : le langage JAVA 9
2.1 Pr´esentation........................................ 9
2.2 Historiquedulangage .................................. 9
2.2.1 Quelquesmotscl´es................................ 10
2.3 Java et la programmation orient´ee objet . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3.1 Leconceptdobjets................................ 11
2.3.2 Ind´ependance vis `a vis de la plateforme . . . . . . . . . . . . . . . . . . . . 11
2.4 Structure d’un programme JAVA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.4.1 Que contient un fichier source ? . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.4.2 Execution d’un programme Java . . . . . . . . . . . . . . . . . . . . . . . . 12
2.4.3 Lamachinevirtuelle............................... 12
2.4.4 La m´ethode main ................................. 12
2.4.5 Utilisation d’arguments dans la fonction main ................. 13
2.5 Installation et utilisation de Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.6 Types, expressions et structures de contrˆole fondamentales . . . . . . . . . . . . . . 15
2.6.1 lestypesprimitifs ................................ 15
Lanotiondetype ................................ 15
letypeentier(int) ................................ 15
Les flottants/r´eels (float ou double) . . . . . . . . . . . . . . . . . . . . . . 16
Letypecaract`ere(char)............................. 16
Le type bool´een (boolean) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Initialisations et constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.6.2 Op´erateurs et expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Op´erateurs arithm´etiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Op´erateurs de comparaison . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Op´erateurslogiques ............................... 18
Op´erateursdaectation............................. 18
Conversiondetypes ............................... 19
Op´erateurconditionnel ............................. 19
Priorit´edesop´erateurs.............................. 19
2.6.3 Les structures de contrˆole . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
if.......................................... 20
switch....................................... 20
while........................................ 21
do-while...................................... 22
for......................................... 22
Les instructions break et continue . . . . . . . . . . . . . . . . . . . . . . . 24
2.6.4 Les ´el´ements sp´ecifiques au langage JAVA . . . . . . . . . . . . . . . . . . . 25
2.7 Une premi`ere introduction au type String ....................... 25
2.8 R`egles d’´ecriture d’un programme JAVA . . . . . . . . . . . . . . . . . . . . . . . 26
3
4TABLE DES MATI `
ERES
2.8.1 Lesidenticateurs ................................ 26
2.8.2 Commentaires .................................. 27
2.8.3 Motscl´esr´eserv´es ................................ 27
2.8.4 Remarquesglobales ............................... 27
2.8.5 Commentaires sur le rendu d’un programme Java . . . . . . . . . . . . . . . 27
2.8.6 Liens sur la programmation JAVA . . . . . . . . . . . . . . . . . . . . . . . 28
2.8.7 Bibliographie ................................... 29
2.9 Exercicesdecours .................................... 29
2.9.1 Compilateur ................................... 29
2.9.2 Motscrois´es.................................... 30
3 La notion d’objets : d´efinition et utilisation 31
3.1 Introduction au eveloppement objets . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.2 Lanotiondeclasse.................................... 34
3.2.1 Exempledeclasse:................................ 34
3.2.2 Cr´eation d’un objet `a l’aide d’une classe . . . . . . . . . . . . . . . . . . . . 34
3.2.3 Exemple d’utilisation dans un programme complet . . . . . . . . . . . . . . 35
3.3 Lanotiondeconstructeur ................................ 36
3.4 Affectation et comparaison d’objets . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.4.1 La r´ef´erence null ................................. 38
3.5 Leramasse-miettes.................................... 39
3.6 L’encapsulation de donn´ees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.7 Champs et m´ethodes statiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.7.1 Variablesstatiques................................ 41
3.7.2 Les ethodes statiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.8 Surd´efinition/surcharge de ethodes . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.8.1 Surd´efinition de constructeurs . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.9 Lacopiedobjets ..................................... 46
3.10 Autor´ef´erencement : le mot cl´e this .......................... 47
3.11 Remarques sur la d´efinition de ethodes . . . . . . . . . . . . . . . . . . . . . . . . 49
3.11.1 M´ethodes de type proc´edures et fonctions . . . . . . . . . . . . . . . . . . . 49
3.11.2 Lesarguments .................................. 49
3.11.3 Lesvariableslocales ............................... 50
3.11.4 Lar´ecursivit´e................................... 51
3.12 Les paquetages (packages) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.12.1 Attribution d’une classe `a un paquetage . . . . . . . . . . . . . . . . . . . . 51
3.12.2 Utilisation d’une classe situ´ee dans une paquetage . . . . . . . . . . . . . . 52
3.12.3 Droitsdacc`es................................... 53
3.13Lestableaux ....................................... 53
3.13.1 D´eclaration et cr´eation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.13.2 Tableau en argument ou en retour . . . . . . . . . . . . . . . . . . . . . . . 56
3.13.3 Les tableaux `a plusieurs indices . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.14Exercicesdecours .................................... 60
3.14.1 Compilateur ................................... 60
3.14.2 Quisuis-je?.................................... 61
3.14.3 Compilateur2 .................................. 62
3.14.4 Quisuis-je?.................................... 63
3.14.5 Compilateur3 .................................. 63
3.14.6 Motscrois´es.................................... 66
3.14.7 Motscrois´es.................................... 67
TABLE DES MATI `
ERES 5
4 Les concepts d’H´eritage et de Polymorphisme 69
4.1 Pr´esentation et efinition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.2 Construction et initialisation des objets d´eriv´es . . . . . . . . . . . . . . . . . . . . 72
4.3 Red´efinition, surd´efinition et eritage . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.3.1 Red´enition.................................... 74
4.3.2 Lasurchage.................................... 75
4.3.3 Enr´esum´e..................................... 75
4.4 Lepolymorphisme .................................... 75
4.4.1 Tableaux et´erog`enes d’objets . . . . . . . . . . . . . . . . . . . . . . . . . . 77
4.4.2 R`egles du polymorphisme en Java . . . . . . . . . . . . . . . . . . . . . . . 78
4.5 La super-classe Object .................................. 78
4.6 Acc`es par membres prot´eg´es : protected ....................... 80
4.7 M´ethodes et classes finales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
4.8 Lesclassesabstraites................................... 80
4.9 Lesinterfaces ....................................... 82
4.9.1 D´efinition et mise en œuvre . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
4.9.2 Inerˆet des interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
4.10 Connaˆıtre la classe et les types d’un objet . . . . . . . . . . . . . . . . . . . . . . . 83
4.10.1 L’op´erateur instanceof ............................. 83
4.10.2 La class Class .................................. 84
4.11ExercicesdeCours .................................... 85
4.11.1 Classes abstraites - classes concr`etes . . . . . . . . . . . . . . . . . . . . . . 85
4.11.2 Compilateur ................................... 86
4.11.3 Quisuis-je?.................................... 88
4.11.4 VraiouFaux? .................................. 88
5 La gestion d’exceptions 89
5.1 Pr´esentation........................................ 89
5.2 Gestion de plusieurs exceptions et transmission d’informations . . . . . . . . . . . 90
5.3 D´erivation et red´eclenchement d’exceptions . . . . . . . . . . . . . . . . . . . . . . 93
5.4 Le bloc finally ..................................... 95
5.5 Lesexceptionsstandard ................................. 96
5.6 ExercicesdeCours.................................... 97
5.6.1 VraiouFaux? .................................. 97
5.6.2 Motscrois´es.................................... 98
6 Les chaˆınes de caract`eres en Java 99
6.1 LetypeString ...................................... 99
6.1.1 Les chaˆınes de caract`eres sont des objets . . . . . . . . . . . . . . . . . . . . 99
6.1.2 Affichage d’une chaˆıne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
6.1.3 Longueur d’une chaˆıne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
6.1.4 acc`es aux caract`eres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
6.1.5 Concat´enation : l’op´erateur + . . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.1.6 Recherche dans une chaˆıne : la m´ethode indexOf ............... 100
6.1.7 La comparaison de chaˆınes . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Tester l’´egalit´e de deux chaˆınes . . . . . . . . . . . . . . . . . . . . . . . . . 100
Comparerdeuxchaˆınes ............................. 101
6.1.8 Modification d’un caract`ere . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
6.1.9 Extraction de sous-chaˆınes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
6.1.10 Passage en majuscules/minuscules . . . . . . . . . . . . . . . . . . . . . . . 101
6.1.11 Conversion d’une chaˆıne vers un type primitif . . . . . . . . . . . . . . . . . 101
6.1.12 Conversion d’un type primitif vers une chaˆıne . . . . . . . . . . . . . . . . . 101
6.1.13 Chaˆınes et tableaux de caract`eres . . . . . . . . . . . . . . . . . . . . . . . . 102
6.1.14 Tableaudechaˆınes................................ 102
1 / 121 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 !