Débuter à la programmation orienté objet avec Java
Table des matières :
1 INTRODUCTION 1
1.1 HISTORIQUE 1
1.2 JAVA ET LA PROGRAMMATION ORIENTEE OBJET (POO) .1
1.2.1 Objet 1
1.2.2 Encapsulation des données .1
1.2.3 Classe .1
1.2.4 Héritage .1
1.2.5 Polymorphisme 1
1.2.6 Langage de POO presque pur .1
1.3 JAVA ET LA PROGRAMMATION EVENEMENTIELLE .1
1.4 JAVA ET LA PORTABILITE .1
1.5 AUTRES PARTICULARITES DE JAVA .1
1.6 PHASES DE DEVELOPPEMENT D'UN PROGRAMME JAVA 1
2 GENERALITES 3
2.1 PROGRAMME ECRITURE CONSOLE 3
2.2 PROGRAMME ECRITURE FENETRE 3
2.3 PROGRAMME LECTURE .5
2.4 REGLES GENERALES D'ECRITURE .8
2.4.1 Identificateurs 8
2.4.2 Mots clés .8
2.4.3 Séparateurs .8
2.4.4 Format libre .8
2.4.5 Commentaires .8
2.4.6 Blocs 8
2.4.7 Code Unicode 8
3 TYPES PRIMITIFS 9
3.1 NOTION DE TYPE 9
3.2 TYPE BOOLEEN .9
3.3 TYPE ENTIER .9
3.4 TYPE REEL .9
3.5 TYPE CARACTERE 10
3.6 INITIALISATION 10
3.7 CONSTANTE .10
3.8 EXPRESSION CONSTANTE .10
4 OPERATEURS ET EXPRESSIONS .11
4.1 ORIGINALITE DES NOTIONS D'OPERATEUR ET D'EXPRESSION 11
4.2 OPÉRATEURS ARITHMETIQUES 11
4.2.1 Opérateurs unaires 11
4.2.2 Opérateurs binaires .11
4.2.3 Priorité des opérateurs 11
4.3 CONVERSIONS IMPLICITES DANS LES EXPRESSION .11
4.4 OPERATEURS RELATIONNELS (COMPARAISON) 11
4.5 OPERATEURS LOGIQUES .11
4.5.1 Opérateur unaire .11
4.5.2 Opérateurs binaires .11
4.6 OPERATEUR D'AFFECTATION 12
4.7 OPERATEURS D'INCREMENTATION ET DE DECREMENTATION 12
4.8 OPERATEURS D'AFFECTATION ELARGIE .12
4.9 OPERATEUR DE CAST 12
4.10 OPERATEURS DE MANIPULATION DE BITS 12
4.11 OPERATEUR CONDITIONNEL .13
5 INSTRUCTIONS DE CONTROLE 15
5.1 INSTRUCTION if .15
5.2 INSTRUCTION switch .15
5.3 INSTRUCTION while .15
5.4 INSTRUCTION do while 16
5.5 INSTRUCTION for .16
5.6 INSTRUCTION break 17
5.7 INSTRUCTIONS break AVEC ETIQUETTE, continue, continue AVEC
ETIQUETTE 17
6 CLASSES ET OBJETS 19
6.1 CLASSES 19
6.1.1 Définition d'une classe .19
6.1.2 Utilisation d'une classe 19
6.1.3 Plusieurs classes dans un même fichier source 19
6.1.4 Une classe par fichier source .22
6.2 CONSTRUCTEURS 22
6.2.1 Principe 22
6.2.2 Quelques règles 23
6.2.3 Création d'un objet .23
6.2.4 Initialisation avec les champs d'un objet 23
6.3 CONCEPTION DES CLASSES .23
6.4 AFFECTATION ET COMPARAISON D'OBJETS .25
6.5 RAMASSE-MIETTES .25
6.6 PROPRIETES DES METHODES 25
6.6.1 Méthodes ne fournissant aucun résultat 25
6.6.2 Méthodes fonction fournissant un résultat .26
6.6.3 Arguments formels et effectifs .26
6.6.4 Variables locales 27
6.7 CHAMPS ET METHODES DE CLASSE 27
6.7.1 Champs de classe .27
6.7.2 Méthodes de classe .28
6.7.3 Initialisation des champs de classe 29
6.8 SURDEFINITION (SURCHARGE) DE METHODES 29
6.8.1 Définition 29
6.8.2 Surdéfinition de méthodes .30
6.8.3 Surdéfinition de constructeurs .33
6.9 TRANSMISSION D'INFORMATION AVEC LES METHODES .33
6.9.1 Transmission par valeur .33
6.9.2 Transmission d'objet en argument .34
6.9.3 Transmission par valeur de types primitifs .36
6.9.4 Transmission par adresse de la référence d'un objet .39
6.9.5 Valeur de retour d'une méthode .43
6.9.6 Autoréférence this .43
6.10 RECURSIVITE DES METHODES .47
6.11 CLASSES INTERNES .47
6.12 PAQUETAGES 54
6.12.1 Définition 54
6.12.2 Attribution d'une classe à un paquetage 54
6.12.3 Utilisation d'une classe d'un paquetage .54
6.12.4 Paquetages standard .54
6.12.5 Portée des classes 54
6.12.6 Portée des champs et des méthodes .54
7 TABLEAUX 55
7.1 DECLARATION ET CREATION DE TABLEAUX .55
7.1.1 Introduction 55
7.1.2 Déclaration d'un tableau 55
7.1.3 Création d'un tableau .55
7.2 UTILISATION DE TABLEAUX .55
7.2.1 Accès individuel aux éléments d'un tableau .55
7.2.2 Accès global au tableau (affectation de références) 55
7.2.3 Taille d'un tableau 55
7.3 TABLEAU D'OBJETS 55
7.4 TABLEAU EN ARGUMENT .56
7.5 TABLEAUX MULTIDIMENSIONNELS .58
8 HERITAGE .59
8.1 INTRODUCTION .59
8.2 ACCES D'UNE CLASSE DERIVEE AUX MEMBRES DE SA CLASSE
DE BASE .59
8.3 CONSTRUCTION ET INITIALISATION DES OBJETS DERIVES 61
8.3.1 Appel du constructeur 61
8.3.2 Initialisation d'un objet dérivé .63
8.4 DERIVATIONS SUCCESSIVES 63
8.5 REDEFINITION ET SURDEFINITION DE MEMBRES .64
8.5.1 Redéfinition de méthodes 64
8.5.2 Surdéfinition (surcharges) de méthodes 65
8.5.3 Utilisation simultanée de redéfinition et de surdéfinition .66
8.5.4 Contraintes portant sur la redéfinition 66
8.5.5 Règles générales de redéfinition et de surdéfinition .66
8.5.6 Duplication de champs .66
8.6 POLYMORPHISME .66
8.6.1 Définition 66
8.6.2 Polymorphisme et gestion d'un tableau hétérogène 67
8.6.3 Polymorphisme et absence de méthode dans une classe dérivée .68
8.6.4 Polymorphisme et structuration des objets 69
8.6.5 Polymorphisme et surdéfinition 70
8.6.6 Règles du polymorphisme .70
8.6.7 Opérateur instanceof .70
8.6.8 Mot clé super .70
8.7 SUPER CLASSE OBJET .70
8.7.1 Définition 70
8.7.2 Utilisation d'une référence de type Object 70
8.7.3 Utilisation de la méthode toString de la classe Object .71
8.7.4 Utilisation de la méthode equals de la classe Object .73
8.7.5 Autres méthodes de la classe Object .74
8.7.6 Tableaux et classe Object 74
8.8 CLASSES ET METHODES FINALES 74
8.9 CLASSES ABSTRAITES .74
8.9.1 Définition 74
8.9.2 Propriétés 75
8.9.3 Objectifs des classes abstraites .75
8.10 INTERFACES 77
8.10.1 Introduction 77
8.10.2 Propriétés 77
8.10.3 Définition d'une interface .77
8.10.4 Implémentation d'une interface 77
8.10.5 Variable de type interface et polymorphisme .78
8.10.6 Interface et classe dérivée .80
8.10.7 Interface et constante 80
8.10.8 Dérivation d'une interface 81
8.10.9 Conflits de noms 81
8.11 CLASSES ENVELOPPES .82
8.12 QUELQUES REGLES POUR LA CONCEPTION DE CLASSES .83
8.13 CLASSES ANONYMES .86
9 CHAINES DE CARACTERES .89
9.1 CHAINES DE CARACTERES (OBJET DE TYPE STRING) 89
9.1.1 Introduction 89
9.1.2 Valeur d'un objet de type String .89
9.1.3 Entrées/sorties de chaînes 89
9.1.4 La méthode de longueur de chaîne length() 89
9.1.5 La méthode d'accès aux caractères d'une chaîne charAt 89
9.1.6 L'opérateur de concaténation de chaînes + .89
9.1.7 Conversion des opérandes de l'opérateur + 89
9.1.8 L'opérateur de concaténation de chaînes += .89
9.2 METHODE DE RECHERCHE DANS UNE CHAINE indexOf() 89
9.3 METHODES DE COMPARAISON DE CHAINES .89
9.3.1 Les opérateurs == et != .89
9.3.2 La méthode de comparaison de 2 chaînes equals .89
9.3.3 La méthode de comparaison de 2 chaînes compareTo .89
9.4 MODIFICATION DE CHAINES 89
9.4.1 La méthode de remplacement de caractères replace 89
9.4.2 La méthode d'extraction de sous-chaîne substring 89
9.4.3 La méthode de passage en majuscule ou minuscule toLowerCase et
toUpperCase 90
9.5 TABLEAU DE CHAINES 90
9.6 CONVERSIONS ENTRE CHAINES ET TYPES PRIMITIFS 90
9.6.1 Conversion d'un type, primitif ou objet, en une chaîne .90
9.6.2 Conversion d'une chaîne en type primitif .91
9.7 CONVERSIONS ENTRE CHAINES ET TABLEAUX DE CARACTERES .91
9.7.1 Conversion d'un tableau de caractères en chaîne .91
9.7.2 Conversion d'une chaîne en tableau de caractères .91
9.8 ARGUMENTS DE LA LIGNE DE COMMANDE .91
9.9 LA CLASSE StringBuffer .91
11 FLUX 93
11.1 INTRODUCTION .93
11.2 LES FLUX TEXTE .93
11.2.1 Généralités 93
11.2.2 Ecriture d'un fichier texte .93
11.2.3 Lecture d'un fichier texte sans accès à l'information 94
11.2.4 Lecture d'un fichier texte avec accès à l'information 95
12 LA CLASSE java.lang.Math 97
12.1 CHAMPS STATIQUES DE LA CLASSE java.lang.math 97
12.2 METHODES STATIQUES DE LA CLASSE java.lang.math .97
12.3 CLASSE Random DE java.util .97
Débuter à la programmation orienté objet avec Java