Académique Documents
Professionnel Documents
Culture Documents
2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 1 2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 2
2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 3 2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 4
Qu’est-ce que Java ? Java comme langage de programmation
Java est un langage de programmation Java est un langage de programmation particulier qui
Un programme Java est compilé et interprété possède des caractéristiques avantageuses:
Simplicité et productivité:
Intégration complète de l’Orienté Objet (OO)
Java est une plateforme
Gestion mémoire : ramasse-miettes (« Garbage collector »)
La plateforme Java, uniquement software, est exécutée sur la
Performance, Robustesse, fiabilité et sécurité
plateforme du système d’exploitation
Pas de pointeurs, pas de fonctions d'arguments variables.
La « Java Platform » est constituée de :
Compilateurs très stricts car toutes les valeurs doivent être initialisées.
La « Java Virtual Machine » (JVM)
Le traitement des exceptions est obligatoire.
Des interfaces de programmation d’application (Java API)
Les erreurs à l'exécution sont vérifiées tout comme les limites des
tableaux.
Indépendance par rapport aux plateformes
Ouverture:
Support intégré d’Internet
Connexion intégrée aux bases de données (JDBC)
2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 5 2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 6
2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 9 2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 10
Java comme Plateforme : Java Virtual Machine Java comme Plateforme Java Runtime Environment (JRE)
2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 11 2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 12
Déploiement d’un programme (1/2) Déploiement d’un programme (2/2)
Changement de la vision traditionnelle de la compilation
Paradigme classique de la compilation
Chaque programme est compilé et interprété
MyProgram.c « Write once run everywhere »
Exécuté une seule fois Mais différent Génère du code natif directement MyProgram.java
pour chaque environnement exécutable, mais spécifique à chaque
environnement Traduit le programme en un code intermédiaire
Exécuté une seule fois Compiler Appelé bytecode – indépendant de la machine
Compiler1 Compiler2
MyProgram.class
MyProgram.obj MyProgram.obj Lit le bytecode et exécute sur la machine
2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 13 2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 14
2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 15 2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 16
Comment développer une application?
Deux façons d’écrire des programmes Java:
• 1. Introduction générale et historique En écrivant le code dans un simple éditeur de texte
Compilation et exécution du code en ligne de commande (DOS)
• 2. Première application en Java
2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 17 2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 18
2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 19 2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 20
Les utilitaires de Java : Exemple Javac et Java L’environnement Eclipse
Javac
Compile un fichier source .java ou un package entier Eclipse est un Environnement de Développement Intégré (IDE)
Exemples: Spécialement conçu pour le développement en Java
javac MyBankAccount.java Créé à l’origine par IBM
compile le fichier mentionné, qui doit se trouver dans le package par
défaut Puis cédé à la communauté Open Source
javac be\newco\*.java –d c:\classes Caractéristiques principales
compile tout le package be\newco et génère du code compilé dans Notion de « projet » (1 programme 1 projet)
c:\classes, qui doit exister
Colore le code en fonction de la signification des mots utilisés
Java
Force l’indentation du code
Lance un programme principal
Compile le code en temps réel
Exemples: Identifie les erreurs en cours de frappe
java bankStream.MyProgram
Peut générer des bouts de code automatiquement
Lance le programme spécifié par la méthode public static void
main(String[] args) dans la classe MyProgram qui se trouve dans Permet de gérer le lancement des applications
le package bankStream.
2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 21 2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 22
2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 23 2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 24
Créer un projet Eclipse – Etape 2 Créer un projet Eclipse – Etape 3
1 2
2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 25 2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 26
2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 27 2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 28
Une première application en Java Une première application en Java
2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 29 2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 30
2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 31 2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 32
Syntaxe Java Vocabulaire Java : Mots-clé
Un langage informatique est composé de
abstract else interface switch
Mots-clés assert enum long synchronized
Constituent le vocabulaire du langage boolean extends native this
Structures et règles break false new throw
La « grammaire » du langage (=la forme requise des instructions) byte final null throws
case finally package transient
Conventions
catch float private true
En général des règles de notations adoptées par tous les
char for protected try
programmeurs
class goto public void
const if return volatile
continue implements short while
default import static
do instanceof strictfp
double int super
2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 33 2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 34
2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 35 2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 36
Vocabulaire Java Vocabulaire Java
Types de variables en Java: Types primitifs (1/4) Types de variables en Java: Types primitifs (2/4)
Les types de données primitifs en Java sont prédéfinis et en
nombre limité: Explication:
byte : codé sur 8 bits 28 valeurs (–27) to (27–1) = -128 à 127
Integral
int : codé sur 32 bits 232 valeurs (–231) to (231–1)
byte 8 bits : -128 to 127
short 16 bits : -32768 to 32767
Déclaration et initialisation :
int 32 bits : -2^31 to 2^31-1
int int x=12;
long 64 bits : -2^63 to 2^63-1
short short x= 32; //(short x=33000; // Hors limite)
Textual long long x= 200L; // Nombre accolé à un L
char 16 bits
byte byte x=012; // Nombre commençant avec un 0
Floating double double x=23.2323;
flot 32 bits : 1.4 E-45 to 3.4 E38 float float x= 23.233F; // Nombre accolé à un F
double 64 bits : 4.9 E-324 to 1.8 E308 char char c=‘a’; char c=(char)97;
Logical boolean boolean b = true;
boolean
2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 37 2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 38
Pour pouvoir être utilisée, une variable en Java doit être Fonctionnement:
Déclarée (définir son nom et son type)
Initialisée (lui donner une valeur initiale) int a = 5;
Peut se faire en même temps que la déclaration Déclaration et initialisation de 2 entiers: a et b
int b = 8;
Assignée (modifier sa valeur au cours de son cycle de vie)
Syntaxe:
a=b; Affectation de la valeur de b à a
int t; Déclaration d’un entier t (t est l’identificateur)
int u = 3; Déclaration et initialisation d’un entier u
t=7; Initialisation de t à la valeur 7 a b
Il existe deux variables en mémoire qui ont la
u=t; Assignation (affectation) de la valeur de t à u même valeur
8 8
m=9; ERREUR: « m » n’a pas été déclaré
char c; Déclaration
c=‘a’; Initialisation
2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 39 2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 40
Vocabulaire Java : Les chaînes de caractères Grammaire Java : opérateurs arithmétiques
Les chaînes de caractères « String » sont essentielles et toujours Quelle est la valeur de : 5+3*4+(12/4+1)
présentes dans les programmes informatiques Règles de précédences sur les opérateurs:
Or il n’existe pas de type primitif « string » en Java
String n’est pas un type primitif, c’est une classe
L’utilisation de String ressemble très fort à celle des autres types: Niveau Symbole Signification
Déclaration de deux String:
String s1, s2; // On peut toujours déclarer plusieurs variables de 1 () Parenthèse
// même type simultanément en les séparant
* Produit
// par des virgules
Initialisation : 2 / Division
s1 = "Hello"; % Modulo
s2 = "le monde"; + Addition ou concaténation
Déclaration et initialisation : 3
- Soustraction
String s3 = "Hello";
Concaténation :
String s4 = s1 + " " + s2;
2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 41 2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 42
|| expr1 || expr2 Expr1 ou expr2, ou les deux sont vraies %= expr1 %= expr2 expr1 = expr1 % expr2
| expr1 | expr2 idem mais évalue toujours les 2 expressions ++ expr1++ expr1 = expr1 + 1
! ! expr1 expr1 est fausse -- expr1-- expr1 = expr1 - 1
!= expr1 != expr2 si expr1 est différent de expr2
2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 43 2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 44
Grammaire Java : Instructions et blocs d’instruction Grammaire Java: Instructions et blocs d’instruction
Types d’instructions:
Une instruction
Déclaration
Réalise un traitement particulier: Définit un élément (variable, méthode ou classe)
Renvoie éventuellement le résultat du calcul S’il s’agit d’une déclaration de variable:
Est (presque) toujours suivie de « ; » Est normalement toujours suivie d’un « ; »
2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 45 2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 46
2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 49 2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 50
Une autre forme de boucle: while – do while Interrompre une boucle une fois lancée: BREAK / CONTINUE
while (CONDITION_A_RENCONTRER_POUR_CONTINUER) { BREAK: achève immédiatement la boucle ou la conditionnelle
// Instructions à réaliser tant que la condition est CONTINUE: ignore le reste des instructions et passe tout de suite à
// rencontrée. A la fin de chaque itération, on l’itération suivante (au début de la boucle)
// réévalue la condition et on décide soit de rester
// dans la boucle avec une nouvelle itération, soit de sortir for (int i=0; i<10 ;i++){
} if (i==5) continue; // Si i=5, on passe à 6 sans afficher
if (i==7) break; // Si i=7, on sort de la boucle
Exemple:
System.out.println("The value of i is : " + i);
int i = 0; }
while(i<10) {
System.out.println("The value of i is : " + i);
i++;
}
2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 51 2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 52
Grammaire Java : Structures de contrôle Grammaire Java : Structures de contrôle
BREAK [LABEL] Intercepter les exceptions (« plantages »): TRY – CATCH
CONTINUE [LABEL] Certains traitements sont parfois « à risque », càd que le
programmeur ne peut savoir avec certitude à l’avance si l’instruction
qu’il écrit fonctionnera correctement ou non au moment de l’exécution
for(int i=10;i>0;i‐‐){ car cela dépendra de paramètres dont il n’a pas le contrôle
if (i==7) continue; // if i=5, you jump to the beginning of the loop Les blocs TRY – CATCH (littéralement « ESSAIE [ceci] ET SI CELA
if (i==3) break; // if i=7, you jump outside the loop and continue PROVOQUE UNE ERREUR FAIS [cela] ») permettent de « prévoir le
System.out.println("The value of i is :"+i);
coup » en interceptant l’erreur qui pourrait se produire et en prévoyant
une action correctrice
}
try{
// Une ou plusieurs instructions potentiellement « à risque »
System.out.println("The end ");
} catch(ExceptionXYZ unProblemeDeTypeXYZ){
// Ce qu’il faut faire si un problème de type XYZ se produit
}
2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 53 2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 54
Grammaire Java : Portée des variables Grammaire Java : Structure d’un programme
Portée d’une variable et des attributs
Portée = Section du programme dans laquelle une variable existe
Un programme simple en Java doit avoir la structure suivante:
La variable ne peut pas être utilisée en dehors de cette section
La portée est définie par les accolades qui l’entourent directement
Exemple:
public class NomDeLaClasse {
if(solde < 0){ public static void main(String[] args){
String avertissement = "Attention, solde négatif !"; // Le programme commence ici
}
// Tout se passe à l’intérieur de ces accolades
else{
String avertissement = " ok c’est bon !"; }
} }
System.out.println(avertissement);
// Une erreur apparaîtra dès la compilation, car la variable
// « avertissement » n’existe pas en dehors du bloc IF
Avantages
Rend les programmes plus faciles à corriger
Limite le risque d’erreurs liées au réemploi d’un nom pour différentes variables
2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 55 2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 56
Conventions : Règles de notation pour les identificateurs Conventions : Commentaires dans le code source
Il est hautement conseillé de « documenter » le code
Java est « case sensitive », il faut donc adopter des règles de Cela se fait en ajoutant des commentaires précisant le rôle
notation claires et définitives en termes de majuscules et des instructions
minuscules.
Les commentaires sont ignorés dans le code à la
Les règles ci-dessous sont universellement appliquées par les compilation
développeurs Java et elles sont en particulier appliquées dans
toutes les classes prédéfinies
Pour inclure des commentaires dans le code:
Pour une seule ligne de commentaires:
Classes Packages 2 barres obliques « // » neutralisent tout le code à droite sur la
même ligne
class BankAccount package coursSolvay2006;
System.out.println("Hello"); // Affiche Hello à l’écran
class RacingBike Variables
Pour annuler tout un bloc de lignes: Tout le texte entre « /* » et
Interfaces int accountNumber
« */ » est neutralisé
interface Account Constantes public static void main(String[] args){
Méthodes MAXIMUM_SIZE /* La ligne qui suit sert à afficher un message à
deposit() l’écran. Le message en question est « Hello »
getName() Mais il peut être remplacé par n’importe quel autre */
System.out.println("Hello");
2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 57 2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 58
Trucs et astuces de base : Méthodes essentielles Trucs et astuces de base : Méthodes essentielles
Manipuler les dates
Afficher quelque chose à l’écran:
La classe java.util.Date
System.out.println("Texte ou données à afficher");
Contient en fait un entier long qui correspond à un moment dans le temps
Choisir un nombre aléatoire exprimé en millisecondes depuis le 1/1/1970 à 0:00:00-000
Math.random(); // Renvoie un double entre 0 et 1 Pour créer une date:
Convertir un double en entier Date d = new Date();
int i = (int) d; // A supposer que d est un double DateFormat df=DateFormat.getDateInstance(DateFormat.SHORT,Locale.FRANCE);
try { d = df.parse("13/11/2005");
Convertir un entier en chaîne de caractères } catch (ParseException e) {e.printStackTrace();}
String s = ""+i; // A supposer que i est un int Pour obtenir la date et l’heure du système:
Obtenir le nombre entier contenu dans une chaîne de caractère: Date d = new Date(System.currentTimeMillis());
int i = Integer.parseInt(s); // Si s est une chaîne de Pour formater une date:
// caractères faite d’1 entier String s = DateFormat.getDateInstance(DateFormat.SHORT).format(d);
Vérifier si une chaîne de caractères est égale à une autre String s = DateFormat.getDateInstance(DateFormat.LONG).format(d);
s1.equals(s2) // Renvoie true si s1=s2 et false sinon String s = DateFormat.getDateInstance(DateFormat.MEDIUM).format(d);
s1.equalsIgnoreCase(s2) // Idem sans prêter attention aux Il faut pour cela importer:
// majuscules/minuscules java.util.Date, java.util.Locale, java.text.DateFormat
2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 59 2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 60
Trucs et astuces de base : Méthodes essentielles Le point d’entrée d ’une application
Récupérer les entrées au clavier de l’utilisateur: Pour débuter une application on doit fournir un point d'entrée.
Au début du programme (avant la déclaration de la classe): Lorsqu'une classe sert d'application elle doit fournir ce point
import java.util.Scanner; d'entrée qui est une méthode statique portant le nom de « main ».
Ce point d'entrée doit respecter la syntaxe suivante :
Au moment d’inviter l’utilisateur à saisir une donnée au clavier:
Scanner sc = new Scanner(System.in); public static void main( String [ ] args )
System.out.println("Veuillez saisir un mot :"); {
String str = sc.nextLine(); // une chaine de caractere // Corps du point d'entrée
}
int val = sc.nextInt(); // un entier
2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 61 2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 62
2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 63 2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 64
Exercices Bonus Les tableaux (1)
2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 65 2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 66
2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 67 2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 68
Les tableaux (4) Les tableaux (6)
Tab1.java Tab1.java
Mémoire
public class Tab1 public class Tab1
{ {
public static void main (String args[]) public static void main (String args[])
{ {
Pour déclarer une variable tableau
int tab[ ] ; int tab[ ] ; 0x0000
0x258 tab
on indique le type des éléments du
tab = new int[4]; tab = new int[4];
tableau et le nom de la variable
tab[0]=5; tab[0]=5; 5
0 0x258
tableau suivi de [ ]
tab[1]=3; tab[1]=3; 3
0
tab[2]=7; tab[2]=7; 7
0
tab[3]=tab[0]+tab[1]; on utilise new <type> [taille]; pour tab[3]=tab[0]+tab[1]; 8
0
} réserver un espace mémoire au tableau }
} }
2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 69 2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 70
2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 71 2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 72
Les tableaux (9) Utilisation des tableaux de taille dynamique
matriceDEntiers
Les tableaux ont pour défaut d’avoir une taille fixée à priori.
int[][] matriceDEntiers;
Java fourni des collections plus souples et simples d’utilisation.
matriceDEntiers = new int[2][];
La gestion de la taille est automatisée et allège la tâche du
matriceDEntiers[0] = new int[2];
[0] programmeur.
matriceDEntiers[1] = new int[3];
25 Pour déclarer une variable de type tableau d’entiers :
matriceDEntiers[0][0] = 25; [0]
matriceDEntiers[0][1] = 76; [1]
ArrayList<Integer> monTableau = new ArrayList<Integer>();
matriceDEntiers[1][0] = 13; 76 On peut remplacer Integer par n’importe quelle “class”
matriceDEntiers[1][1] = 45; Pour ajouter une donnée au tableau :
matriceDEntiers[1][2] = 68; [1] monTableau.add(3);
13
Pour récupérer un élément en position k :
[0]
int elem = monTableau.get(k);
45 [1]
[2]
68
2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 73 2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 74
2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 75 2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 76
Différences entre objets et types de base La classe String (2)
2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 77 2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 78
Récupération d’un caractère dans une chaîne Les chaînes de caractères sont des objets :
méthode char charAt(int pos) : renvoie le caractère situé à la pour tester si 2 chaînes sont égales il faut utiliser la méthode
position pos dans la chaîne de caractère à laquelle on envoie se boolean equals(String str) et non ==
message pour tester si 2 chaînes sont égales à la casse près il faut utiliser
String str1 = "bonjour"; la méthode boolean equalsIgnoreCase(String str)
char c= str1.charAt(3); // c contient le caractère 'j' String str1 = new String("BonJour");
Modification des objets String String str2 = new String("bonjour");
il est possible de modifier le contenu de la variable contenant la String str3 = new String( "bonjour");
chaîne (la variable ne référence plus la même chaîne). boolean a, b, c, d, e;
str1 = str1.substring(0,3) + " soir"; a = str1.equals("BonJour"); //a contient la valeur true
/* str1 contient maintenant la chaîne "bonsoir" */ b = (str2 = = str3); //b contient la valeur false
c = str1.equals(str2); //c contient la valeur false
d = str1.equalsIgnoreCase(str2); //d contient la valeur true
e = "bonjour".equals(str2); //e contient la valeur true
2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 79 2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 80
La classe String (5) La classe Math
Quelques autres méthodes utiles Les fonctions mathématiques les plus connues sont
boolean startsWith(String str) : pour tester si une chaine de regroupées dans la classe Math qui appartient au package
caractère commence par la chaine de caractère str java.lang
boolean endsWith(String str) : pour tester si une chaîne de
les fonctions trigonométriques
caractère se termine par la chaine de caractère str
les fonctions d’arrondi, de valeur absolue, ...
String str1 = "bonjour ";
la racine carrée, la puissance, l’exponentiel, le logarithme, etc.
boolean a = str1.startsWith("bon"); //a vaut true
boolean b = str1.endsWith("jour"); //b vaut true Ce sont des méthodes de classe (static)
double calcul = Math.sqrt (Math.pow(5,2) + Math.pow(7,2));
double sqrt(double x) : racine carrée de x
double pow(double x, double y) : x puissance y
2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 81 2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 82
Exercices
Etudiants
Ecrire un programme permettant d’enregistrer les notes des
étudiants à un examen
Le programme demande d’abord à l’utilisateur combien de notes il
souhaite saisir (soit N)
Ensuite il demande à l’utilisateur d’introduire une à une les notes
des N étudiants (/20)
Votre programme mémorise ces résultats
Les affiche une fois la dernière note saisie
Et affiche quelques statistiques de base:
le nombre de réussites
Le nombre d’échecs
la moyenne totale
2023/2024 Programmation Orientée Objet – Java – LCE2 – ISIMA Enseignant : Soufien GDAIM 83