Académique Documents
Professionnel Documents
Culture Documents
U: 2012/2013 à 2021/2022
Prof. E. M. EN-NAIMI
Partie I:
Chap.1 : Présentation Générale de la POO en JAVA (2 Séances)
Chap.2 & 3: Eléments de Base & Opérateurs et Expressions (2 Séances)
Chap.4: Les Structures de Contrôle (1 Séance)
Chap.5: Les Tableaux & Chaines de Caractères (1 ou 2 Séance(s) )
Partie II:
Chap.6: Classes et Objets & Classes String
Chap.7: Héritage et Polymorphisme
Chap. 8: Classes Abstraites & Les Interfaces
Chap. 9: Collection & Gestion des Exceptions
Chap. 10: Packages et Quelques API de JAVA
Chap. 11: Gestion des E/S
Chap. 12: Interfaces Graphiques
Chap. 13: Accès/Connexion aux BDD en JAVA (L'API JDBC),…, etc.
Java en action
Auteur : Ian F. Darwin
Éditeur : O’Reilly
Edition : 2002 - 836 pages - ISBN : 2841772039
Dans les années 90, vers une maturité des concepts objets
Ø Standardisation de C++ ;
Ø Apparition de langages comme Java ou Python…
Historique de Java (3)
o Java a été développé à partir de Décembre 1990 par une équipe de
Sun Microsystems dirigée par James Gosling;
o 1990 : Ecriture d'un nouveau langage plus adapté à la réalisation
de logiciels embarqués, appelé OAK:
n Petit, fiable et indépendant de l'architecture
n Destiné à la télévision interactive
n Non rentable sous sa forme initiale
o 1993 : le WEB « décolle », Sun redirige ce langage vers Internet :
les qualités de portabilité et de compacité du langage OAK en ont
fait un candidat parfait à une utilisation sur le réseau. Cette
réadaptation prit près de 2 ans;
o 1995 : Sun rebaptisa OAK en Java (nom de la machine à café autour de
laquelle se réunissait James Gosling et ses collaborateurs)
- Attributs / Méthodes;
- Encapsulation;
- Héritage ;
- Polymorphisme;
- …, etc.
La Programmation Orientée Objet (P.O.O) est fondée sur le concept d’objet. Un objet est
une association des données et des traitements appelés méthodes agissant sur ces données :
• Un objet constitue une instance (ou variable) d’une classe. Le mécanisme qui permet de
créer des objets à partir des classes s’appelle l’instanciation.
Ce mécanisme permet non seulement de créer l’objet mais aussi de l’initialiser.
• Une classe constitue une description (ou un modèle) d’un ensemble d’objets ayant une
même structure de données et disposant des mêmes méthodes
Classe ⇔ ensemble (ou type de données)
Objet ⇔ élément de la classe (ou variable, on dit aussi instance de la classe)
Ø Approche procédurale :
"Que doit faire mon programme ? "
Ø Approche orientée-objet :
"De quoi doit être composé mon programme ?"
@ Prof. E. M. EN-NAIMI Dépt. G. Informatique / FST de Tanger 22
2012/2013 & 2021/2022
Aperçu : Orienté Objet
Des objets similaires peuvent être informatiquement décrits par
une même abstraction : une classe
Ø une même structure de données et méthodes de traitement
Ø des valeurs différentes pour chaque objet
Notion de classe
On regroupe les objets qui ont les mêmes états et les mêmes comportements :
c’est une classe
Les classes servent de « moules » pour la création des objets : un objet est
une « instance » d’une classe
Un programme OO est constitué de classes qui permettent de créer des
objets qui s’envoient des messages
Voiture
Nom de la classe
- puissance : entier
- estDémarrée : booléen
Attributs
- vitesse : réel
+ deQuellePuissance() : entier
+ demarre()
Méthodes
+ accélère (réel)
Visibilité
JAVA: Classe
- Les briques de constructions d’un programme JAVA sont les classes,
LES ATTRIBUTS :
Partie statique les données (Propriétés) Les attributs représentent la
description des données
propres à chaque classe
d'objets
LES METHODES :
le code les manipulant Les méthodes représentent
Partie dynamique
(Méthodes) l'ensemble des actions,
procédures, fonctions ou
opérations que l'on
peut associer à une classe
Classe
@ Prof. E. M. EN-NAIMI Dépt. G. Informatique / FST de Tanger
2012/2013 & 2021/2022 25
Les concepts de la P.O.O
1. L’Encapsulation
En P.O.O pure, les données doivent être encapsulées, ce qui signifie qu’il n’est pas possible
d’agir directement sur les données d’un objet, il faut obligatoirement passer par les méthodes de
l’objet.
Ø L’encapsulation de données permet de les protéger, elle constitue un moyen sûr pour
préserver l’intégrité des données.
Ø L’encapsulation permet la modularité et facilite la réutilisation de logiciel.
2. La Composition
La composition signifie que les objets peuvent être inclus les un dans les autres.
Les objets sont organisés selon la relation composé de.
Exemple :
Point
• Un point est un objet qui contient les
X: réel
coordonnées (x,y) d'un point dans un plan. Y: réel
4. La Généricité
La généricité (ou types paramétrés) permet d'introduire des paramètres (ou variables)
de types dans la définition d'une méthode ou d'une classe.
La généricité facilite la réutilisation de composants logiciels, elle permet aussi
l’écriture du code indépendamment des types spécifiques d'objets
@ Prof. E. M. EN-NAIMI
Dépt. G. Informatique / FST de Tanger
30
2012/2013 & 2021/2022
Les concepts de la P.O.O
5. L’Héritage
L’héritage est un mécanisme de transmission de fonctionnalités d'une classe vers
une autre classe.
Il est possible de définir une nouvelle classe à partir d’une classe existante, à
laquelle on ajoute de nouvelles données et de nouvelles méthodes (ou
comportements).
@ Prof. E. M. EN-NAIMI
Dépt. G. Informatique / FST de Tanger
31
2012/2013 & 2021/2022
Les concepts de la P.O.O
VehiculePrioritaire VoitureElectrique
- gyrophare : booléen - disjoncteur : booléen
+ allumeGyrophare() + démarre()
6. L’interface
§ Une interface regroupe un ensemble de méthodes (ou comportements) dite
abstraites, c’est-à-dire, non implémentées.
§ Certains langages de P.O.O (comme par exemple, le C++) permettent
l'héritage multiple.
§ En Java, l'héritage multiple n'est pas permis, en effet, pour des raisons de
simplicité, Java ne permet d'utiliser que de l'héritage simple.
§ Pour résoudre ce problème, Java propose d'utiliser des interfaces, en effet,
grâce aux interfaces, une classe peut combiner les comportements issus de
plusieurs interfaces !
Les concepts de la P.O.O (java)
7. Le Package
Un package permet de regrouper des classes et des interfaces. De la même manière
que les classes qui permettent d'encapsuler les données, les package peuvent être
utilisés pour encapsuler des classes.
Remarques
• Un package doit obligatoirement avoir au moins une classe public accessible
depuis l'extérieur du package.
• Les packages servent à protéger les classes, les donnés et les méthodes.
• Ils constituent des modules indépendants qu'il est facile de les intégrer et de les
réutiliser dans un nouveau programme.
Caractéristiques du langage Java
Présentation
Une des plus grandes forces est son excellente portabilité : un programme java
peut s’exécuter sous Windows, Mac, Linux, etc….
Simple Interprété
JAVA
Fortement Multitâches
typé
Gère la Économe
mémoire Sûr
o Familier
n Syntaxe proche de celle de C/C++
Fichier
de Librairies
code
Programme
Compilation Code objet Edition de liens
exécutable
Fichier
Byte code Machine virtuelle
de code Compilation
Java (JVM)
Java
javac MaClasse.class java
MaClasse.java
MyProgram.c
MyProgram.o
010110…
MyProgram.java
o Il existe une grande diversité de
systèmes d’exploitation;
o Le compilateur Java génère un
Bytecode, c’est à dire un format Java Compiler
intermédiaire, neutre
architecturalement, conçu pour faire
transiter efficacement le code vers des
hardware différents et/ou plateformes
différentes MyProgram.class
= Bytecode
o Le Bytecode ne peut-être interprété
que par le processeur de la JVM
JVM JVM JVM
Mac Windows Unix
Sondage: www.developpez.net
@ Prof. E. M. EN-NAIMI Dépt. G. Informatique / FST de Tanger 59
2012/2013 & 2021/2022
Les outils Java (Suite…)
Sondage (Source):
https://java.developpez.com/actu/89760/Quel-environnement-de-developpement-integre-Java-utilisez-vous-en-2015-et-pourquoi/
API - Java:
L’API-Java est structuré en libraires (packages).
Les packages comprennent des ensembles fonctionnels de composants (classes)..
Le noyau (core) de l’API Java (inclus dans toute implémentation complète de la
plateforme Java) comprend notamment :
}
} Les instructions se terminent
par des ;
public static void main (String[]args) Tout programme doit contenir une méthode
{ main qui porte la signature ci-contre
System.out.println("Hello the World");
Écrire à l’écran “Hello the World”
}
} Fermer les accolades
javac Bonjour.java
Java Bonjour
Ø Le traitement et l’exécution des différents programmes Java seront effectués par le fameux
environnement de développement, qui est Eclipse.
Ø Donc, on va utiliser désormais la dernière version d’Eclipse (Eclipse IDE for Java
Developers), qu’on peut la télécharger de la page: http://www.eclipse.org/downloads
Ø Eclipse a besoin d'un JRE ou d'un JDK pour fonctionner. Donc, installer JDK au lieu d'un JRE
pour bénéficier de la Javadoc et du code source de l'API Java Standard. L’ancienne version de
la JDK 16 (Java SE 16, mis en œuvre en Avril 2019) est disponible, comme on a
mentionné précédemment, sur le site suivant:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
Ou bien directement :
https://www.oracle.com/java/technologies/javase-jdk16-downloads.html
Ø Pour la saisie de données au clavier, on va utiliser la classe Scanner (java.util.Scanner) qui regroupe
plusieurs méthodes pratiques :
v nextInt(),
v nextDouble(),
v nextFloat(),
v nextLong(),
v nextLine(),
v …
Exemple:
public class AfficheEntier{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);//System.in: Entrée Standard
System.out.println("Entrer un entier:");
int a=sc.nextInt();
System.out.println(" le nombre entré est :" + a);
}}
Noté bien: si vous avez invoqué nextInt(), nextDouble() et que vous invoquez
directement après nextLine(), celle-ci ne vous invite pas à saisir une chaîne de
caractères : elle vide la ligne commencée par les autres instructions. En effet, celles-ci
ne repositionnent pas la tête de lecture, l'instruction nextLine() le fait à leur place.
Exemple:
import java.util.Scanner;
public class Main1 {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("Saisissez un entier : ");
int i = sc.nextInt();
System.out.println("Saisissez une chaîne : ");
String str = sc.nextLine();
System.out.println("FIN ! ");
}}
@ Prof. E. M. EN-NAIMI Dépt. G. Informatique / FST de Tanger 92
2012/2013 & 2021/2022
Lecture d’informations au clavier (3)
En résumé
• Pour pouvoir récupérer ce que vous allez taper dans la console, vous devrez
initialiser l'objet de la classe Scanner avec l'entrée standard, System.in.
ü Il y a une méthode de récupération de données pour chaque type (sauf les char) :
nextLine() pour les String,
nextInt() pour les int ...
o Il peut être utilisé pour obtenir l'apport d'un InputStream, pour analyser
à travers une chaîne de texte ou de lire un fichier.
o C’est une classe qui s'interface parfaitement avec des flux de lecture
pour y permettre une lecture puissante et pratique
o Elle a fait son apparition dans le package java.util dans la version 1.5.0
de java
Packages
ü Tout en minuscule.
ü Utiliser seulement [a-z], [0-9] et le point '.': Ne pas utiliser de tiret '-',
d'underscore '_', d'espace, ou d'autres caractères ($, *, accents, ...).
Constante:
ü Les constantes sont en majuscules et les mots sont séparés par
le caractère souligné « _ »: UNE_CONSTANTE
Convention de codage
Ø Un nom de classe ou interface doit commencer par une majuscule.
ü Ex: loopCounter
üa
Ø Une constante s’écrit en majuscules.
ü Ex: PI
o En Java, tout est objet sauf les types de base ou les types primitifs.
o Il y a huit types de base :
n un type booléen pour représenter les variables ne pouvant prendre que 2 valeurs (vrai et faux,
0 ou 1, etc.) : boolean avec les valeurs associées true et false
n un type pour représenter les caractères : char
n quatre types pour représenter les entiers de divers taille : byte, short, int et long
n deux types pour représenter les réelles : float et double
o La taille nécessaire au stockage de ces types est indépendante de la machine.
n Avantage : portabilité
n Inconvénient : "conversions" coûteuses
o Les réels
n float : codé sur 32 bits, peuvent représenter des nombres
allant de -1035 à + 1035 (Norme IEEE 754-1985)
n double : codé sur 64 bits, peuvent représenter des
nombres allant de -10400 à +10400 (Norme IEEE 754-1985)
o Notation
n 4.55 ou 4.55D réel double précision
n 4.55f réel simple précision
o Les booléens
o boolean
contient soit vrai (true) soit faux (false)
o Les opérateurs logiques de comparaisons
o Egalité : opérateur ==
o Différence : opérateur !=
o supérieur et inférieur strictement à : opérateurs > et <
o supérieur et inférieur ou égal :
opérateurs >= et <=
oNotation
char a,b,c; // a,b et c sont des variables du type char
a='a'; // a contient la lettre 'a'
b= '\u0022' // b contient le caractère guillemet : "
c=97; // x contient le caractère de rang (ou de
valeur interne) 97 : 'a'
o Remarque importante :
n Java exige que toutes les variables soient définies
et initialisées. Le compilateur sait déterminer si
une variable est susceptible d'être utilisée avant
initialisation et produit une erreur de compilation!.
ØLa portée d’une variable s’étend jusqu’à la fin du bloc dans lequel elle est définie.
{
{
int compteur;
…
// compteur est accessible dans ce bloc
}
int i = 258;
long l = i; // ok, i est une variable entère
byte b = i; // error : Explicit cast needed to convert int to byte
byte b = 258; // error : Explicit cast needed to convert int to byte
byte b = (byte) i; // ok, utilisation de l'opérateur de cast (perte d'info)
Les classes portent le même nom que le type élémentaire sur lequel elles
reposent avec la première lettre en majuscule.
Exemple :
String montexte = new String(" 10 ");
Integer monnombre=new Integer(montexte);
int i = monnombre.intValue(); //conversion d'Integer en int
Exemple :
int i=10;
Integer monnombre=new Integer(i);
long j=monnombre.longValue();
- 133 -
Opérateurs logiques (Suite…)
Court-circuit
Court-circuit
- 134 -
@ Prof. E. M. EN-NAIMI Dépt. G. Informatique / FST de Tanger 135
2012/2013 & 2021/2022
Opérateur Conditionnel
a = ( a < b ) ? a + b : a - b;
équivaut à
if ( a < b )
a = a + b;
else
a = a - b;
- 137 -
Syntaxe du Langage JAVA
(Quelques Compléments)
@ Prof. E. M. EN-NAIMI
Dépt. G. Informatique / FST de Tanger
139
2012/2013 & 2021/2022
Types primitifs de Java
Où Type est un type de données et var1, var2, … sont des identificateurs de variables
avec, facultativement, des valeurs d'initialisation.
Le type de données peut être :
q Un des types primitifs ;
q Le nom d’une classe ou d’une interface ;
q Un tableau.
Exemples : int x, y = 2, z;
float eps = 1.0e-5;
@ Prof. E. M. EN-NAIMI
Dépt. G. Informatique / FST de Tanger
142
2012/2013 & 2021/2022
Initialisation et constantes
Initialisation
Une variable peut recevoir une valeur initiale au moment de sa déclaration :
int n = 15;
boolean b = true; Penser à l’initialisation au risque
d’une erreur de compilation
Cette instruction joue le même rôle : int n;
System.out.println(" n = " + n);
int n;
n = 15;
Constantes
Ce sont des variables dont la valeur ne peut affectée qu'une fois
Elles ne peuvent plus être modifiées
Elles sont définies avec le mot clé final
final int n = 5;
final int t;
...
t = 8;
n = 10; // erreur : n est déclaré final
Les opérateurs d'affectation
ØL’opérateur « = » permet d’affecter la valeur de l’expression qui est à
droite à la variable qui est à gauche
ØLa syntaxe de l'opérateur d'affectation = est :
var1 = var2 = F = var3 = var4 = expr;
Cette instruction est équivalente à : class Test {
int calculer () {
var4 = expr;
int i = 0;
var3 = var4; int j = 6;
i = (j + 5) * 3;
…..
return i + j;
var1 = var2; }
}
int x, y, z;
y = 2;
z = 3;
x = y * z ; //x vaut 6
x += 2 ; //x vaut 8
y = x / 4 ; //y vaut 2
y =x % 2 ; //y vaut 0
ØLes opérateur = et += peuvent être utilisés sur des variables de type « String »
ØModulo : ou reste de la division entière, cet opérateur ne s'applique pas aux types
réels).
Les opérateurs de comparaison
{
boolean droitDeVote;
int age;
Ø− >, >=, <, <= ont la même priorité et sont plus prioritaires que == et !=.
ØLes opérateurs de comparaison sont moins prioritaires que les opérateurs
arithmétiques. Ils sont plus prioritaires que les opérateurs logiques.
Les opérateurs logiques
ØLes opérateurs logiques en Java sont : && ou & (et), || ou | (ou), ˆ (ou
exclusif) et ! (non).
@ Prof. E. M. EN-NAIMI
Dépt. G. Informatique / FST de Tanger
151
2012/2013 & 2021/2022
@ Prof. E. M. EN-NAIMI Dépt. G. Informatique / FST de Tanger 152
2012/2013 & 2021/2022
Les structures de contrôles (1)
o Instructions conditionnelles
n Effectuer une ou plusieurs instructions seulement si une certaine
condition est vraie
if (condition) instruction;
et plus généralement : if (condition)
{ bloc d’instructions}
condition doit être un booléen ou renvoyer une valeur booléenne
n Effectuer une ou plusieurs instructions si une certaine condition est
vérifiée sinon effectuer d’autres instructions
if (condition) instruction1; else instruction2;
et plus généralement if (condition) { 1er bloc d’instructions} else
{2ème bloc d’instruction}
import java.io.*;
o Boucles indéterminées
n un autre type de boucle avec le do…while:
o do {bloc d’instructions} while (condition) ;
o L’exécution des instructions dans le bloc sont répétées
tant que la condition reste vraie.
o On rentre toujours au moins une fois dans la boucle : la
condition est testée en fin de boucle.
import java.io.*;
o Boucles déterminées
n On veut répéter une ou plusieurs instructions un nombre
déterminés de fois : on répète l’instruction ou le bloc
d’instructions pour un certain nombre de pas.
n La boucle for
for (int i = 1; i <= 10; i++)
System.out.println(i); //affichage des nombres de 1 à 10
n une boucle for est en fait équivalente à une boucle while
for (instruction1; expression1; expression2) {bloc}
… est équivalent à …
instruction 1; while (expression1) {bloc; expression2}}
import java.io.*;
o Sélection multiples
n l’utilisation de if / else peut s’avérer lourde quand on doit
traiter plusieurs sélections et de multiples alternatives;
n pour cela existe en Java le switch / case assez identique
à celui de C/C++ ;
n La valeur sur laquelle on fait le test doit être un char ou
un entier (à l’exclusion d’un long);
n L’exécution des instructions correspondant à une
alternative commence au niveau du case correspondant
et se termine à la rencontre d’une instruction break ou
arrivée à la fin du switch.
Label
- 167 -
Utilisation d’étiquette (label) avec break (13)
♦ Une étiquette est un identificateur suivi du caractère deux points, comme ceci :
label1:
En Java, une étiquette ne peut se trouver qu'en un unique endroit : juste avant une
instruction d'itération
Label
- 168 -
Les structures de contrôles (14) :
break/continue (Label)
o BREAK [LABEL]
o CONTINUE [LABEL]
test:
for (int i=0 ; i<10 ; i++) {
for(int j=20;j>4;j--){
if (i==5) continue; /* if i=5, vous sautez la suite et recommencer
au début de la boucle courante*/
if (i==7) break test; // if i=7, vous sautez hors de la boucle et continuez
System.out.println("The value of i,j is :"+i+ ", "+j);
}
- 171 -
Chapitre 5:
q Remarque:
Un tableau est considéré comme un objet. Il est manipulé via une référence.
o Comme en C/C++, les indices d’un tableau commencent à ‘0’. Donc un tableau
de taille 100 aura ses indices qui iront de 0 à 99.
Exercice:
Donner un programme Java qui lit un tableau à partir du clavier
puis affiche son maximum.
Exemple :
float tableau[][] = new float[10][10];
La taille des tableaux de la seconde dimension peut ne pas être identique pour
chaque occurrence.
Exemple :
int dim1[][] = new int[3][];
dim1[0] = new int[4];
dim1[1] = new int[9];
dim1[2] = new int[2];
Chaque élément du tableau est initialisé selon son type par l'instruction new : 0 pour
les numériques, '\0' pour les caractères, false pour les booléens et null pour les
chaines de caractères et les autres objets.
q Remarque:
Tous les accès aux tableaux sont contrôlés. Une erreur (Exception) de type :
ArrayIndexOutOfBoundsException est générée en cas de débordement.
- 191 -
Utilisation d’un tableau
(Exercice d’application: TD/TP_1&2-Ex4)
Accès individuelle à chaque élément du tableau
Exercice:
Ecrire un programme Java qui lit un tableau à partir du clavier puis
affiche son maximum (maximum des éléments entrés au clavier)?.
Exercice:
Dans un programme écrit en Langage JAVA, essayer de:
Ø Créer et initialiser une matrice contenant deux tableaux de 2
et 3 points respectivement ?
Ø Créer 5 objets de type "Point" ?
Ø Affecter ces 5 objets aux 5 éléments de la matrice ?
Les tableaux Java sont des structures pouvant contenir un nombre fixe d'éléments de même nature.
Il peut s'agir d'objets ou de primitives.
Tableaux unidimensionnels
Les éléments d’un tableau peuvent être d’un type primitif ou d’un type objet:
Point tp [] ; // tp est une référence à un tableau d’objets de type Point
Point a, tp[], b ; // a et b sont des références à des objets de type Point. tp est une référence à un
tableau d’objets de type Point
Les tableaux (2)
Tableaux unidimensionnels (2)
Création
La création d’un tableau dans java est réalisée par l’opérateur new :
nomTableau = new type [dimension];
Initialisation
1 - Automatique: Chaque élément du tableau est initialisé selon son type par
l'instruction new :
v 0 pour les numériques,
v \0 pour les caractères,
v false pour les booléens
v null pour les chaînes de caractères et les autres objets.
int [] x={1, 2, 3, 4, 5} ;// tableau de cinq éléments de type int initialisé par {1, 2, 3, 4, 5}
Les tableaux (3)
Tableaux unidimensionnels (3)
Exemple :
int t[] = new int[5] ;
System.out.println ("taille de t : " + t.length) ; // affiche 5
t = new int[3] ;
System.out.println ("taille de t : " + t.length) ; // affiche 3
Utilisation d’un tableau
Déclaration et création
type nomTableau [] []= new type[n1][n2];
ou
Déclaration et création
Toutes les lignes d’un tableau à 2 dimensions n’ont pas forcément le même
nombre d’éléments :
int t22[][] ;
t22 = new int[5][];
for( int i = 0; i< t22.length; i++){
t22[i]= new int [i+1];
}
for( int i = 0; i< t22.length; i++){
for( int j = 0; j<t22[i].length; j++){
//accès à t22[i][j]
}
}
Chapitre 5 (Suite):
La manipulation des Chaînes de Caractères
La définition d'un caractère se fait grâce au type char :
Exemple :
char touche = '%';
La définition d'une chaîne se fait grâce au type String (String est une classe !):
Exemple :
String texte = " bonjour ";
Les variables de type String sont des objets. Partout où des constantes chaînes de caractères figurent entre
guillemets, le compilateur Java génère un objet de type String avec le contenu spécifié.
Il est donc possible d'écrire :
String texte = " Java Java Java ".replace('a','o');
Les chaînes de caractères ne sont pas des tableaux : il faut utiliser les méthodes de la classe String d'un objet
instancié pour effectuer des manipulations !.
Remarque: Il est impossible de modifier le contenu d'un objet de type String. Cependant, il est
possible d'utiliser les méthodes de la classe String pour effectuer une modification qui va créer
une nouvelle chaîne de caractères. Il suffit alors d'affecter le résultat de ces méthodes à la
variable pour qu'elle pointe sur la nouvelle chaîne de caractères contenant les modifications.
Exemple :
String texte = " Java Java Java ";
texte = texte.replace('a','o');
0x768
0x852
Ce sont des objets : ils sont donc dérivés de la classe Object. Il est
possible d'utiliser les méthodes héritées telles que equals() ou getClass().
Le premier élément d'un tableau possède l'indice 0.
Un tableau est un ensemble indexé de données d'un même type. L'utilisation d'un
tableau se décompose en trois parties :
Création du tableau
Remplissage du tableau
Lecture du tableau
Exemple :
int tableau[5] = {10,20,30,40,50};
int tableau[3][2] = {{5,1},{6,2},{7,3}};
La taille du tableau n'est pas obligatoire si le tableau est initialisé à
sa création.
Exemple :
int tableau[] = {10,20,30,40,50};
Le nombre d'éléments de chaque ligne peut ne pas être identique.
Exemple :
int[][] tabEntiers ={{1,2,3,4,5,6},{1,2,3,4},{1,2,3,4,5,6,7,8,9}};
Exemple :
for (int i = 0; i < tableau.length ; i ++) { ... }
La variable length retourne le nombre d'éléments du tableau.
Pour passer un tableau à une méthode, il suffit de déclarer les
paramètres dans l'en-tête de la méthode.
Exemple :
public void printArray(String texte[]){ ... }
Les tableaux sont toujours transmis par référence puisque ce sont
des objets.
Un accès a un élément d'un tableau qui dépasse sa capacité, lève
une exception du type:
java.lang.arrayIndexOutOfBoundsException.
@ Prof. E. M. EN-NAIMI Dépt. G. Informatique / FST de Tanger 215
2012/2013 & 2021/2022
Tableaux (Compléments: suite…)
Des Remarques:
Les tableaux en JAVA (à partir du Java 5)
La copie d'un tableau implique la copie de ses éléments dans un autre tableau.
Dans le cas d'un tableau d'objets, seules les références à ces objets sont
copiées, aucun nouvel objet n'est créé.
Exemple :
String texte1 = " texte 1 "; String texte2 = " texte 2 ";
if ( texte1.equals(texte2) )...
La détermination de la longueur d'une chaine:
La méthode length() permet de déterminer la longueur d'une chaine.
Exemple :
String texte = " texte "; int longueur = texte.length();
La modification de la casse d'une chaine:
Les méthodes Java toUpperCase() et toLowerCase() permettent respectivement
d'obtenir une chaîne tout en majuscules ou tout en minuscules.
Exemple :
String texte = " texte ";
String textemaj = texte.toUpperCase();
La classe Math
o Math.pow ( ) : xa (x puissance a)
o Math.sqrt( ) : détermine la racine carrée d'un nombre
o Math.abs ( ) : |x| (valeur absolue de x)
o Math.min ( ) : détermine le minimum de deux nombres
o Math.max( ) : détermine le maximum de deux nombres
o Math.random( ) : donne un nombre au hasard entre 0 et 1 (>=0 et <1)