Académique Documents
Professionnel Documents
Culture Documents
Date : ../../20..
2
🎓
Les bases de Java
3
✅✅ Installation Java
Pour vérifier si Java est installé sur un PC Windows, tapez ce qui suit dans
l'invite de commande (cmd) :
Si Java est installé, vous verrez quelque chose comme ceci (selon la version)
Si Java n'est pas installé sur votre ordinateur, vous pouvez le télécharger
gratuitement sur oracle.com .
# windows:
-javaagent:c:/fineagent.jar
# mac:
-javaagent:/Users/neo/fineagent.jar
# linux:
-javaagent:/home/neo/fineagent.jar
5AYV1D1RE5-eyJsaWNlbnNlSWQiOiI1QVlWMUQxUkU1IiwibGljZW5zZWVOYW
1lIjoiaHR0cHM6Ly93d3cuaml3ZWljaGVuZ3podS5jb20iLCJhc3NpZ25lZU5hbW
UiOiIiLCJhc3NpZ25lZUVtYWlsIjoiIiwibGljZW5zZVJlc3RyaWN0aW9uIjoiIiwiY2hl
Y2tDb25jdXJyZW50VXNlIjpmYWxzZSwicHJvZHVjdHMiOlt7ImNvZGUiOiJJSSIs
ImZhbGxiYWNrRGF0ZSI6IjIwOTktMTItMzEiLCJwYWlkVXBUbyI6IjIwOTktMTIt
9
MzEifSx7ImNvZGUiOiJBQyIsImZhbGxiYWNrRGF0ZSI6IjIwOTktMTItMzEiLCJw
YWlkVXBUbyI6IjIwOTktMTItMzEifSx7ImNvZGUiOiJEUE4iLCJmYWxsYmFja0Rh
dGUiOiIyMDk5LTEyLTMxIiwicGFpZFVwVG8iOiIyMDk5LTEyLTMxIn0seyJjb2RlIj
oiUFMiLCJmYWxsYmFja0RhdGUiOiIyMDk5LTEyLTMxIiwicGFpZFVwVG8iOiIyMD
k5LTEyLTMxIn0seyJjb2RlIjoiR08iLCJmYWxsYmFja0RhdGUiOiIyMDk5LTEyLTMx
IiwicGFpZFVwVG8iOiIyMDk5LTEyLTMxIn0seyJjb2RlIjoiRE0iLCJmYWxsYmFja0
RhdGUiOiIyMDk5LTEyLTMxIiwicGFpZFVwVG8iOiIyMDk5LTEyLTMxIn0seyJjb2R
lIjoiQ0wiLCJmYWxsYmFja0RhdGUiOiIyMDk5LTEyLTMxIiwicGFpZFVwVG8iOiIy
MDk5LTEyLTMxIn0seyJjb2RlIjoiUlMwIiwiZmFsbGJhY2tEYXRlIjoiMjA5OS0xMi0
zMSIsInBhaWRVcFRvIjoiMjA5OS0xMi0zMSJ9LHsiY29kZSI6IlJDIiwiZmFsbGJh
Y2tEYXRlIjoiMjA5OS0xMi0zMSIsInBhaWRVcFRvIjoiMjA5OS0xMi0zMSJ9LHsiY2
9kZSI6IlJEIiwiZmFsbGJhY2tEYXRlIjoiMjA5OS0xMi0zMSIsInBhaWRVcFRvIjoiM
jA5OS0xMi0zMSJ9LHsiY29kZSI6IlBDIiwiZmFsbGJhY2tEYXRlIjoiMjA5OS0xMi0
zMSIsInBhaWRVcFRvIjoiMjA5OS0xMi0zMSJ9LHsiY29kZSI6IlJNIiwiZmFsbGJh
Y2tEYXRlIjoiMjA5OS0xMi0zMSIsInBhaWRVcFRvIjoiMjA5OS0xMi0zMSJ9LHsiY2
9kZSI6IldTIiwiZmFsbGJhY2tEYXRlIjoiMjA5OS0xMi0zMSIsInBhaWRVcFRvIjoiM
jA5OS0xMi0zMSJ9LHsiY29kZSI6IkRCIiwiZmFsbGJhY2tEYXRlIjoiMjA5OS0xMi0
zMSIsInBhaWRVcFRvIjoiMjA5OS0xMi0zMSJ9LHsiY29kZSI6IkRDIiwiZmFsbGJh
Y2tEYXRlIjoiMjA5OS0xMi0zMSIsInBhaWRVcFRvIjoiMjA5OS0xMi0zMSJ9LHsiY2
9kZSI6IlJTVSIsImZhbGxiYWNrRGF0ZSI6IjIwOTktMTItMzEiLCJwYWlkVXBUbyI
6IjIwOTktMTItMzEifV0sImhhc2giOiIxMjc5Njg3Ny8wIiwiZ3JhY2VQZXJpb2REY
XlzIjo3LCJhdXRvUHJvbG9uZ2F0ZWQiOmZhbHNlLCJpc0F1dG9Qcm9sb25nYX
RlZCI6ZmFsc2V9-HNPogO0kWkHCVMnsjmBXUqQt87UPHqdkYqZGveSJtu8hb
2V2Yq7gHsHenp4UuEd3jwEwC+YrUIf7U5yDA/56F5Sdn0RLUHZX5DHeQbJPb
mYCBsDRT7m8rnmMFOSZn3vwNatvv1cooZbcGOk3Wwxx6bF7XcgaIrmXRcm
ZMZgv2PZehr0WS1HxNKe3X4nbGP3MwiSbg4ypmxNDrljmgv+Si9QDDwNLDff
qeO0Lce0FqEJuMWmvBS42S0aeIYF8IS5bp4+LFKLJ8T7tF40OxKYDurBb9+9c
43GZBscM/eLB8Jos66jNGFwgebFUlvhzJKVHZtuc/N8zGeEnTq6K0T/B8w==-M
IIDTjCCAjagAwIBAgIBDTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZ
XRQcm9maWxlIENBMCAXDTE4MTEwMTEyMjk0NloYDzIwOTkwODA5MDIyNjA
10
3WjAfMR0wGwYDVQQDDBRwcm9kMnktZnJvbS0yMDIwMTAxOTCCASIwDQYJ
KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMK3eyr0+Oys/TwcQO+qYaXWGB
mXcEP4fR0bHHzZd/4WNGltXhecM80OWthA38BQRYAJBCKz/dSkO2Kj1H2y+7
KB5cIaOiJEyTESfTSgzQdot6laRBU8oxy9mmagI46M8zEEmplPybY4YJj4HOwZi
BsMQEMxoTgMDLpuHX6uASoVhSj6koB55lOj4wEgsQBeAMWTAXmTl88ixE179
J8aBUkBGpL8w/tZzl9BJXZNF15gPfkS58rw8cdPzXLS0Yym37A2/KKFhfHzJc5K
hbaxqYzmkAfTMqPsIqCQ1lQUAqfiPn2gN2I1Z3/cQuEW27M55fXVr2DduQe5D
WzYJs85L50CAwEAAaOBmTCBljAJBgNVHRMEAjAAMB0GA1UdDgQWBBQk2hEi
lvWFQcCTR+gxI0z0wIQC/zBIBgNVHSMEQTA/gBSjnrZIZ0ISNkG9beC5tKBSi5f
xs6EcpBowGDEWMBQGA1UEAwwNSmV0UHJvZmlsZSBDQYIJANJssYOyg3nhM
BMGA1UdJQQMMAoGCCsGAQUFBwMBMAsGA1UdDwQEAwIFoDANBgkqhkiG9
w0BAQsFAAOCAQEAsCQBjO5wttco/Z5cj/o4GBrku8UtBBBVFq4xsBanshTHm4
deVxcTvta4aScV0TPKcaLqGqWx8A9v8XXO8dBbCuyXvWZteZ/C2Covg1xXiM9
9lz7VxqpjVmLdKanZn5u0gQSiYJdcfF+TdbmEIeSOnN/kLXNq2hXdJQK2zk2J25
UZqu5EibRtTbdOzw6ZcfwJ8uOntXfsmAhnNICP3Wf/4wR/mwB0Ka4S+JA3IbF5
MUmUZ/fjUaFarnin70us+Vxf/sZUi7u67wilvwVV0NAqDpthHUV0NRc4q+yOr2D
t/uCHdy4XRXLJfAv/z9/xBwNZZALNz3EtQL6IeIWWJByl3g==
11
Le fichier doit contenir un message « Hello World », qui est écrit avec le code
suivant
📂 Exemple :
public class Main {
System.out.println("Hello World");
📂 Notes :
❖ Le nom de la classe doit être identique au nom du fichier.
❖ Chaque ligne de code exécutée en Java doit se trouver dans une classe
❖ Le nom de classe doit toujours commencer par une première lettre
majuscule.
❖ Java est sensible à la casse : « MyClass » et « myclass » sont
différentes.
❖ System est une classe Java intégrée qui contient des éléments utiles,
tels que out, qui est l'abréviation de « sortie ». La méthode println(),
abréviation de « print line », est utilisée pour imprimer une valeur à
l'écran (ou dans un fichier). Il existe également une méthode print()
similaire à println(). La seule différence est qu'il n'insère pas de
nouvelle ligne à la fin de la sortie :
12
Cet exemple utilise un commentaire sur une seule ligne avant une ligne de
code :
📂 Exemple :
public static void main(String[] args) {
System.out.println("Hello World");
📚 Commentaires multiligne
Les commentaires sur plusieurs lignes commencent /* et se terminent par
*/. Tout texte entre /* et */ sera ignoré par Java.
📂 Exemple :
public class Main {
/*
*/
System.out.println("Hello World");
}
14
📂 Exemple :
public class Main {
❖ Les noms peuvent contenir des lettres, des chiffres, des traits de
soulignement et des signes dollar.
❖ Les noms doivent commencer par une lettre
❖ Les noms doivent commencer par une lettre minuscule et ne peuvent
pas contenir d'espace.
❖ Les noms peuvent aussi commencer par $ et _ (Déconseillé)
❖ Les noms sont sensibles à la casse ("myVar" et "myvar" sont des
variables différentes)
❖ Les mots réservés (comme les mots-clés Java, tels que int ou
boolean) ne peuvent pas être utilisés comme noms
15
📚 Les constantes
Une constante est une variable dont la valeur est immuable et en lecture
seule, c’est a dire, on ne pourra pas modifier sa valeur dans le programme;
📂 Exemple :
public class Main {
}
16
❖ Les types de données primitifs - tels que les entiers (byte, short,
int, long), les nombres à virgule flottante (float, double), les caractères
char et les booléens boolean.
❖ Les types de données non primitifs - tels que String, Arrays, Class,
Interface… (vous en apprendrez davantage à ce sujet dans un chapitre
ultérieur)
int 4 octets Stocke des nombres entiers de -2 147 483 648 à 2 147 483 647
📂 Note 2 :
❖ Même s'il existe de nombreux types numériques en Java, les plus
utilisés pour les nombres sont int (pour les nombres entiers) et double
(pour les nombres à virgule flottante).
❖ La précision d'une valeur à virgule flottante indique le nombre de
chiffres que la valeur peut avoir après la virgule décimale. La précision
de float n'est que de six ou sept chiffres décimaux, tandis que les
variables double ont une précision d'environ 15 chiffres. Il est donc
plus sûr de l’utiliser double pour la plupart des calculs.
❖ Un nombre à virgule flottante peut également être un nombre
scientifique avec un « e » pour indiquer la puissance de 10.
❖ Une chaîne en Java est en fait un type de données non primitif , car
elle fait référence à un objet. L'objet String possède des méthodes
utilisées pour effectuer certaines opérations sur les chaînes.
❖ Les types de données non primitifs sont appelés types de référence
car ils font référence à des objets. La principale différence entre les
types de données primitifs et non primitifs est :
● Les types primitifs sont prédéfinis (déjà définis) en Java. Les
types non primitifs sont créés par le programmeur et ne sont pas
définis par Java (sauf pour String).
● Les types non primitifs peuvent être utilisés pour appeler des
méthodes afin d’effectuer certaines opérations, contrairement
aux types primitifs.
● Un type primitif a toujours une valeur, tandis que les types non
primitifs peuvent l'être null.
● Un type primitif commence par une lettre minuscule, tandis que
les types non primitifs commencent par une lettre majuscule.
18
📂 Exemple :
public class Main {
int x = 5, y = 6, z = 50;
float f1 = 35e3f;
double d1 = 12E4d;
}
19
✅✅ Le transtypage ou casting
La conversion de type consiste à attribuer une valeur d'un type de données
primitif à un autre type.
Voici l'ordre des types de la plus petite taille à la plus grande taille.
byte-> short-> char-> int-> long-> float->double
Voici l'ordre des types de la plus grande taille à la plus petite taille.
double-> float-> long-> int-> char-> short->byte
20
System.out.println(myInt); // Outputs 9
System.out.println(myInt); // Outputs 9
}
21
❖ Opérateurs arithmétiques
❖ Opérateurs d'affectation
❖ Opérateurs de comparaison
❖ Opérateurs logiques
La valeur de retour d'une comparaison est soit true ou false. Ces valeurs
sont appelées valeurs booléennes.
24
✅✅ Les échappement
Étant donné que les chaînes doivent être écrites entre guillemets, Java
comprendra mal cette chaîne et générera une erreur :
📂 Exemple :
public class Main {
north.";
📂 Exemple :
public class Main {
north.";
}
25
📂 Note :
Les autres séquences d'échappement courantes valides en Java sont :
26
txt.length());
}
27
System.out.println(txt.indexOf("locate")); // Outputs 7
grande planète.";
System.out.println(myStr.lastIndexOf("planète")); //47
}
28
System.out.println(myStr.charAt(0)); //H
System.out.println(myStr1.compareTo(myStr2)); // Retourne 0
System.out.println(myStr1.compareToIgnoreCase(myStr2)); //0
}
29
System.out.println(myStr1.equals(myStr2)); // true
System.out.println(myStr1.equals(myStr3)); // false
System.out.println(myStr.contains("Hel")); // true
System.out.println(myStr.contains("e")); // true
System.out.println(myStr.contains("Hi")); // false
System.out.println(myStr.startsWith("Hel")); // true
System.out.println(myStr.startsWith("llo")); // false
System.out.println(myStr.endsWith("o")); // true
System.out.println(myStr.hashCode()); // 69609650
System.out.println(myStr1.isEmpty()); //false
System.out.println(myStr2.isEmpty()); //true
}
31
System.out.println(txt.replaceFirst("jour", "soir"));
//bonsoir bonjour
}
32
System.out.println(txt.toCharArray()[0]); //b
}
33
System.out.println(Math.random());
📂 Note:
Pour avoir plus de contrôle sur le nombre aléatoire, par exemple, si vous
souhaitez uniquement un nombre aléatoire compris entre 0 et 100, vous
pouvez utiliser la formule suivante :
📝 Syntaxe if :
📂 Exemple if :
public static void main(String[] args) {
int x = 20;
int y = 18;
if (x > y) {
}
36
📝 Syntaxe if…else:
📂 Exemple if…else :
public static void main(String[] args) {
📝 Syntaxe else…if:
📂 Exemple else…if :
public static void main(String[] args) {
}
37
Il peut être utilisé pour remplacer plusieurs lignes de code par une seule
ligne, et est le plus souvent utilisé pour remplacer de simples instructions if
else :
📝 Syntaxe :
System.out.println(result);
}
38
📚 switch case
Au lieu d'écrire plusieurs déclarations if..else, vous pouvez utiliser la
déclaration switch.
📝 Syntaxe :
📂 Exemple :
public static void main(String[] args) {
int day = 4;
switch (day) {
case 1:
System.out.println("Monday");
break;
39
case 2:
System.out.println("Tuesday");
break;
case 3:
System.out.println("Wednesday");
break;
case 4:
System.out.println("Thursday");
break;
case 5:
System.out.println("Friday");
break;
case 6:
System.out.println("Saturday");
break;
case 7:
System.out.println("Sunday");
break;
default:
}
40
📚 La boucle while
La boucle while parcourt un bloc de code tant qu'une condition spécifiée est
vrai:
📝 Syntaxe :
📂 Exemple :
public static void main(String[] args) {
int i = 0;
while (i < 5) {
System.out.println(i); //De 0 à 4
i++;
}
41
📚 La boucle for
Lorsque vous savez exactement combien de fois vous souhaitez parcourir un
bloc de code, utilisez la boucle for au lieu d'une boucle while :
📝 Syntaxe :
📂 Exemple 1 :
public static void main(String[] args) {
System.out.println(i);
System.out.println(i);
}
42
📚 La boucle for-each
Il existe également une boucle " for-each ", qui est utilisée exclusivement
pour parcourir les éléments d'un tableau :
📝 Syntaxe :
📂 Exemple :
public static void main(String[] args) {
String[] cars = { "Volvo", "BMW", "Ford", "Mazda" };
for (String car : cars) {
System.out.println(car);
}
}
43
📚 Boucle imbriquées
Il est également possible de placer une boucle à l'intérieur d'une autre
boucle. C'est ce qu'on appelle une boucle imbriquée .
📂 Exemple :
public static void main(String[] args) {
// Outer loop
// Inner loop
times (2 * 3)
}
44
L'instruction break peut également être utilisée pour sortir d'une boucle .
if (i == 4) { break; }
System.out.println(i);
📚 l’instruction continue
L'instruction continue interrompt une itération (dans la boucle), si une
condition spécifiée se produit, et continue avec l'itération suivante dans la
boucle. Cet exemple ignore la valeur 4 :
System.out.println(i);
}
45
📂 Pour y insérer des valeurs, vous pouvez placer les valeurs dans une liste
séparées par des virgules, entre accolades :
}
46
cars[0] = "Opel";
System.out.println(cars.length); // Outputs 4
}
47
Pour créer un tableau à deux dimensions, ajoutez chaque tableau dans son
propre ensemble d' accolades.
int[][] myNumbers = { { 1, 2, 3, 4 }, { 5, 6, 7 } };
int[][] myNumbers = { { 1, 2, 3, 4 }, { 5, 6, 7 } };
System.out.println(myNumbers[1][2]); // Outputs 7
}
48
int[][] myNumbers = { { 1, 2, 3, 4 }, { 5, 6, 7 } };
System.out.println(myNumbers.length); //2
2 fois
System.out.println(myNumbers[i][j]);
}
49
📂 Exemple :
📂 Correction :
import java.util.Scanner;
class Hello {
FAHRENHEIT");
System.out.println("------------------------------------");
// Récupération du mode
");
mode = sc.nextLine().charAt(0);
choix.");
aConvertir = sc.nextDouble();
sc.nextLine();
résultat
if(mode == '1'){
else{
do{
température ?(O/N)");
52
reponse = sc.nextLine().charAt(0);
}while(reponse == 'O');
//Fin de programme
Math.pow(10, B);
}
53
🎓
La POO en Java
54
📚 Les classes
Tout en Java est associé à des classes et des objets, ainsi qu'à ses attributs
et méthodes. Par exemple : dans la vraie vie, une voiture est un objet. La
voiture a des attributs , tels que le poids et la couleur, et des méthodes ,
telles que la conduite et le freinage.
📂 Exemple : Créer une classe personne. Une personne est caractérisée par
son nom, prénom, adresse et âge.
String nom;
String prenom;
String adresse;
int age;
📚 Les Objets
En Java, un objet est créé à partir d'une classe. Nous avons déjà créé la
classe nommée Personne, nous pouvons donc maintenant l'utiliser pour
créer des objets.
📂 Exemple :
public class Personne {
issa.prenom = "Issa";
issa.nom = "Pouye";
System.out.println(modou.nom); //Sarr
System.out.println(issa.nom); //Pouye
}
57
📚 Les méthodes
Les méthodes sont déclarées au sein d'une classe. Une méthode, c’est une
action que peut effectuer un objet.
📂 Exemple :
public class Personne {
// Attributs
// Méthode manger
// Méthode getAge
modou.manger();
System.out.println( modou.getAge());
}
58
📚 Constructeur
Dans les exemples précédents, nous avons fixé les attribut, ce qui fait que à
chaque fois qu’on crée un nouvel objet, il a les mêmes valeurs
(Problématique). Comment faire de telle sorte que si on créer un objet issa
issa aura le nom Issa et non pas Modou par exemple, pour bien faire cela, la
création d’un constructeur sera nécessaire.
📂 Exemple :
public class Personne {
// Attributs
// Constructeur
age)
this.prenom = prenom;
59
this.nom = nom;
this.adresse = adresse;
this.age = age;
//objet modou
//objet issa
System.out.println(modou.prenom); //Modou
System.out.println(issa.prenom); //Issa
}
60
Modificateur Description
default La classe n'est accessible que par des classes du même package.
Ceci est utilisé lorsque vous ne spécifiez pas de modificateur.
Modificateur Description
default Le code n'est accessible que dans le même package. Ceci est utilisé
lorsque vous ne spécifiez pas de modificateur.
61
Modificateur Description
abstract La classe ne peut pas être utilisée pour créer des objets (pour
accéder à une classe abstraite, elle doit être héritée d'une autre
classe.
Modificateur Description
abstract Ne peut être utilisé que dans une classe abstraite et ne peut être
utilisé que sur les méthodes. La méthode n'a pas de corps, par
exemple Résumé Void run ();. Le corps est fourni par la sous-classe
(hérite de).
📂 Exemple (Final) :
Permet de mettre en attribut en constante.
System.out.println(myObj.x);
}
63
📂 Exemple (static) :
Une méthode static signifie qu'elle est accessible sans créer d'objet de la
classe, contrairement à public:
// Static method
// Public method
// Main method
}
64
class ExterneClass {
int x = 10;
class InterneClass {
int y = 5;
InterneClass();
10 = 15
}
65
📂 Exemple :
// Dans un fichier ExterneClass.java
class ExterneClass {
int x = 10;
int y = 5;
InterneClass(); //erreur
System.out.println(interneClasse.y + externeClasse.x);
//erreur
}
66
📂 Exemple :
// Dans un fichier ExterneClass.java
class ExterneClass {
int x = 10;
int y = 5;
System.out.println(myInner.y);
📝 Remarque : tout comme les attributs et les méthodes static, une classe
interne static n'a pas accès aux membres de la classe externe.
67
📂 Exemple :
// Dans OuterClass.java
class OuterClass {
int x = 10;
class InnerClass {
return x;
// Dans Main.java
System.out.println(myInner.myInnerMethod()); // Outputs 10
}
68
69
📚 Packages intégrés
L'API Java est une bibliothèque de classes pré-écrite, dont l'utilisation est
gratuite, incluses dans l'environnement de développement Java.
📂 Exemple :
Dans l’exemple ci-dessus, java.util est un package, tandis que Scanner est
une classe du package java.util.
import java.util.Scanner;
class MyClass {
import java.util.*;
71
package mypack;
class MyPackageClass {
System.out.println("This is my package!");
}
72
📝 Abstraction
L'abstraction des données est le processus consistant à masquer certains
détails et à afficher uniquement les informations essentielles à l'utilisateur.
L'abstraction peut être réalisée soit avec des classes abstraites , soit avec
des interfaces.
❖ Une Classe abstraite : est une classe restreinte qui ne peut pas être
utilisée pour créer des objets (pour y accéder, elle doit être héritée
d'une autre classe). Une classe abstraite peut avoir à la fois des
méthodes abstraites et non abstraites.
73
❖ Une Méthode abstraite : ne peut être utilisée que dans une classe
abstraite et n’a pas de corps. Le corps est fourni par la sous-classe
(héritée de).
📂 Exemple 1 :
// abstract class
class Second {
// Objet modou
modou.study();
📂 Exemple 2 :
// Abstract class
// Regular method
System.out.println("kroth kroth");
}
75
System.out.println("Mbéééééééééé");
class Main {
mouton.animalSound();
mouton.sleep();
}
76
📝 Encapsulation
Le sens de l'encapsulation est de s'assurer que les données "sensibles"
sont cachées aux utilisateurs. Pour y parvenir, vous devez :
Vous avez appris dans le chapitre précédent que les variables private ne
sont accessibles qu'au sein de la même classe (une classe extérieure n'y a
pas accès). Cependant, il est possible d'y accéder si nous fournissons des
méthodes publiques get et set .
La syntaxe des deux est qu'ils commencent par soit get ou set, suivi du
nom de la variable, avec la première lettre en majuscule :
📂 Exemple :
public class Personne {
// Getter
// Setter
}
77
System.out.println(modou.name); // error
System.out.println(modou.getName()); // ok
📚 Pourquoi l'encapsulation ?
❖ Meilleur contrôle des attributs et des méthodes de classe
❖ Les attributs de classe peuvent être rendus en lecture seule (si vous
utilisez uniquement la méthode get) ou en écriture seule (si vous
utilisez uniquement la méthode set)
❖ Flexible : le programmeur peut modifier une partie du code sans
affecter les autres parties
❖ Sécurité accrue des données (On peut faire des contrôles dans les
méthodes get et set).
📂 Exemple :
78
📝 Héritage
En Java, il est possible d'hériter d'attributs et de méthodes d'une classe à
une autre. Nous regroupons la « notion de patrimoine » en deux catégories :
Si vous voulez créer une classe qui est légèrement différente d’une classe
existante, vous n’avez pas besoin de dupliquer votre code. À la place, vous
pouvez étendre la classe existante dans une sous-classe qui hérite de ses
attributs et méthodes et écrire dans cette sous-classe les fonctionnalités
supplémentaires.
📂 Exemple 1 :
79
📂 Exemple 2 :
class Vehicle {
System.out.println("Tuut, tuut!");
myCar.honk();
} }
80
📝 Polymorphisme
Le polymorphisme signifie « plusieurs formes », et cela se produit lorsque
nous avons de nombreuses classes liées les unes aux autres par héritage.
Par exemple, pensez à une superclasse appelée Animal qui possède une
méthode appelée animalSound(). Les sous-classes d'animaux pourraient
être des cochons, des chats, des chiens, des oiseaux - Et ils ont également
leur propre implémentation d'un son d'animal (le cochon grogne et le chat
miaule, etc.) :
📂 Exemple :
class Animal {
}
81
class Main {
myAnimal.animalSound();
myPig.animalSound();
myDog.animalSound();
}
82
this.nom = nom;
public Personne() {
System.out.println("Salut");
📝 Redéfinition de méthode
Redéfinition signifie avoir deux méthodes avec le même nom et les mêmes
paramètres, l'une des méthodes est dans la classe mère et l'autre dans la
sous classe. La redéfinition permet à une sous classe de fournir une
implémentation spécifique d'une méthode déjà fournie à sa classe mère.
83
✅✅ Exercice 1
✅✅ Exercice 2
84
📂 Exemple :
// interface
interface Animal {
📂 Exemple :
// Interface
interface Animal {
// Déclaration
}
85
// Implémentation animalSound()
System.out.println("Mbéééééééééé");
// Implémentation sleep()
System.out.println("kroth kroth");
class Main {
mouton.animalSound();
mouton.sleep();
}
86
📝 Remarque
❖ Comme les classes abstraites , les interfaces ne peuvent pas être
utilisées pour créer des objets (dans l'exemple ci-dessus, il n'est pas
possible de créer un objet "Animal" dans la classe Main)
❖ Les méthodes d'interface n'ont pas de corps - le corps est fourni par la
sous classe qui l’implémente.
❖ Lors de l'implémentation d'une interface, vous devez redéfinir toutes
ses méthodes
❖ Les méthodes d'interface sont par défaut abstract et public
❖ Les attributs de l'interface sont par défaut public, static et final
❖ Une interface ne peut pas contenir de constructeur (car elle ne peut
pas être utilisée pour créer des objets)
📂 Exemple :
interface FirstInterface {
interface SecondInterface {
System.out.println("Some text..");
class Main {
myObj.myMethod();
myObj.myOtherMethod();
}
88
Pour créer une énumération , utilisez le mot-clé enum (au lieu de class ou
interface) et séparez les constantes par une virgule. Notez qu'ils doivent
être en lettres majuscules. Vous pouvez accéder aux constantes enum avec
la syntaxe point :
📂 Exemple :
// Dans Level.java
enum Level {
LOW,
MEDIUM,
HIGH
// Dans Main.java
System.out.println(myVar);
}
89
📚 Enumération interne
Vous pouvez également avoir un enum interne à une classe :
📂 Exemple :
public class Main {
enum Level {
LOW,
MEDIUM,
HIGH
System.out.println(myVar);
}
90
📂 Exemple :
// Dans Level.java
// Dans Main.java
switch(myVar) {
case LOW:
System.out.println("Low level");
break;
case MEDIUM:
System.out.println("Medium level");
break;
case HIGH:
System.out.println("High level");
break;
}
91
System.out.println(myVar);
System.out.println("Enter username");
input
}
93
📚 Types d'entrée
Dans l’exemple ci-dessus, nous avons utilisé la méthode nextLine() pour
lire les chaînes. Pour lire d’autres types, consultez le tableau ci-dessous :
Méthodes Description
📂 Exemple : Nous utilisons ici différentes méthodes pour lire des données
de différents types :
import java.util.Scanner;
class Main {
// String input
94
// Numerical input
}
95
Classes Description
}
96
System.out.println(myObj);
System.out.println(myObj);
}
97
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
// Avant formatage
// Formatage
DateTimeFormatter myFormatObj =
DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss");
// Après formatage
}
98
Valeur Exemple
yyyy-MM-dd "1988-09-29"
dd/MM/yyyy "29/09/1988"
dd-MMM-yyyy "29-Sep-1988"
cars.add("Volvo");
cars.add("BMW");
cars.add("Ford");
cars.add("Mazda");
}
100
cars.add("Volvo");
cars.add("BMW");
System.out.println(cars.get(0)); // Volvo
cars.add("Volvo");
cars.add("BMW");
cars.set(0, "Opel");
System.out.println(cars.get(0)); // Opel
}
101
cars.add("Volvo"); cars.add("BMW");
cars.set(0, "Opel");
cars.remove(0);
System.out.println(cars.get(0)); // BMW
cars.add("Volvo"); cars.add("BMW");
cars.clear();
System.out.println(cars); // []
}
102
cars.add("Volvo");
cars.add("BMW");
System.out.println(cars.size()); // 2
📚 Parcourir un ArrayList
import java.util.ArrayList;
cars.add("Volvo"); cars.add("BMW");
cars.add("Ford");
cars.add("Mazda");
System.out.println(cars.get(i));
}
103
📚 Trier un ArrayList
import java.util.ArrayList;
cars.add("Volvo");
cars.add("BMW");
cars.add("Ford");
cars.add("Mazda");
System.out.println(i);
}
104
📂 Exemple :
// Import the LinkedList class
import java.util.LinkedList;
cars.add("Volvo");
cars.add("BMW");
cars.add("Ford");
cars.add("Mazda");
}
105
Méthode Description
✅✅ Les HashMap
Dans le chapitre ArrayList, vous avez appris que les tableaux stockent les
éléments sous forme de collection ordonnée et que vous devez y accéder
avec un numéro d'index ( int type). Cependant HashMap, stockez les
éléments dans des paires " clé / valeur ", et vous pouvez y accéder par un
index d'un autre type (par exemple a String).
Un objet est utilisé comme clé (index) pour un autre objet (valeur). Il peut
stocker différents types : String clés et Integer valeurs, ou le même type,
comme : String clés et String valeurs.
Les HashMap sont l'équivalent des tableau associatif en PHP ou les objet en
JavaScript
📂 Exemple :
import java.util.HashMap; // import the HashMap class
String>();
}
108
import java.util.HashMap;
tab.put("prenom", "Modou");
tab.put("nom", "Sarr");
tab.put("pays", "Sénégal");
tab.put("age", "12");
System.out.println(tab);
📚 Vider le tableau
tab.clear();
109
📚 Taille du tableau
tab.size();
// Print keys
System.out.println(i);
// Print values
System.out.println(i);
}
110
📂 Note : Les clés et les valeurs d'un HashMap sont en réalité des objets.
Dans les exemples ci-dessus, nous avons utilisé des objets de type « String
». N'oubliez pas qu'une chaîne en Java est un objet (pas un type primitif).
Pour utiliser d'autres types, tels que int, vous devez spécifier une classe
wrapper équivalente : Integer. Pour les autres types primitifs, utilisez :
Boolean pour boolean, Character pour char, Double pour double, etc :
📂 Exemple :
// Import the HashMap class
import java.util.HashMap;
people.put("John", 32);
people.put("Steve", 30);
people.put("Angie", 33);
}
111
✅✅ Les HashSet
Un HashSet est une collection d’éléments où chaque élément est unique et
se trouve dans le package java.util :
📂 Exemple :
import java.util.HashSet; // Import the HashSet class
import java.util.HashSet;
cars.add("Volvo"); cars.add("BMW");
cars.add("Ford"); cars.add("BMW");
cars.add("Mazda");
System.out.println(cars);
}
112
cars.contains("Mazda");
cars.remove("Volvo");
cars.clear()
✅✅ Les itérateurs
Un Iterator est un objet qui peut être utilisé pour parcourir des collections,
comme ArrayList et HashSet . On l'appelle « itérateur » car « itérer » est le
terme technique pour désigner une boucle.
📚 Obtenir un itérateur
// Import the ArrayList class and the Iterator class
import java.util.ArrayList;
import java.util.Iterator;
// Make a collection
cars.add("Volvo"); cars.add("BMW");
cars.add("Ford"); cars.add("Mazda");
Iterator<String> it = cars.iterator();
System.out.println(it.next());
}
Pour parcourir une collection, utilisez les méthodes hasNext() et next() de
Iterator :
byte Byte
short Short
int Integer
long Long
float Float
double Double
boolean Boolean
char Character
Parfois, vous devez utiliser des classes wrapper, par exemple lorsque vous
travaillez avec des objets Collection, tels que ArrayList, où les types
primitifs ne peuvent pas être utilisés (la liste ne peut stocker que des
objets):
Integer myInt = 5;
System.out.println(myInt);
System.out.println(myDouble);
System.out.println(myChar);
Puisque vous travaillez maintenant avec des objets, vous pouvez utiliser
certaines méthodes pour obtenir des informations sur l'objet spécifique.
Par exemple, les méthodes suivantes sont utilisées pour obtenir la valeur
associée à l'objet wrapper correspondant : intValue(), byteValue(),
shortValue(), longValue(), floatValue(), doubleValue(), charValue(),
booleanValue().
📂 Exemple :
public class Main {
116
Integer myInt = 5;
System.out.println(myInt.intValue());
System.out.println(myDouble.doubleValue());
System.out.println(myChar.charValue());
Une autre méthode utile est la méthode toString() utilisée pour convertir
les objets wrapper en chaînes.
📂 Exemple :
public class Main {
System.out.println(myString.length());
}
117
L'instruction try vous permet de définir un bloc de code à tester pour les
erreurs pendant son exécution.
System.out.println(myNumbers[10]); // error!
}
118
📂 Exemple :
public class Main {
try {
System.out.println(myNumbers[10]);
} catch (Exception e) {
📂 Exemple :
public class Main {
try {
System.out.println(myNumbers[10]);
} catch (Exception e) {
} finally {
📚 Le mot-clé throw
L'instruction throw vous permet de créer une erreur personnalisée.
au moins 18 ans.");
else {
}
120
...)
}
121
Une expression lambda est un court bloc de code qui prend des paramètres
et renvoie une valeur. Les expressions Lambda sont similaires aux méthodes,
mais elles n'ont pas besoin de nom et elles peuvent être implémentées
directement dans le corps d'une méthode.
📂 Exemple :
import java.util.ArrayList;
numbers.add(5);
numbers.add(9);
numbers.add(8);
numbers.add(1);
}
123
Les expressions Lambda peuvent être stockées dans des variables si le type
de la variable est une interface qui n'a qu'une seule méthode. L'expression
lambda doit avoir le même nombre de paramètres et le même type de retour
que cette méthode. Java intègre un grand nombre de ces types d'interfaces,
telles que l'interface Consumer (trouvée dans le package java.util) utilisée
par les listes.
📂 Exemple :
import java.util.ArrayList;
import java.util.function.Consumer;
numbers.add(5);
numbers.add(9);
numbers.add(8);
numbers.add(1);
numbers.forEach( method );
}
124
Pour utiliser une expression lambda dans une méthode, la méthode doit
avoir un paramètre avec une interface à méthode unique comme type.
L'appel de la méthode de l'interface exécutera l'expression lambda :
📂 Exemple :
interface StringFunction {
printFormatted("Hello", exclaim);
printFormatted("Hello", ask);
System.out.println(result);
}
125
📂 Exemple :
import java.io.File; // Import the File class
}
126
📂 Exemple :
Méthode Type Description
📚 Créer un fichier
Pour créer un fichier en Java, vous pouvez utiliser la méthode
createNewFile(). Cette méthode renvoie une valeur booléenne : true si le
fichier a été créé avec succès et false si le fichier existe déjà. Notez que la
méthode est enfermée dans un bloc try...catch. Ceci est nécessaire car il
renvoie un message IOException si une erreur se produit (si le fichier ne
peut pas être créé pour une raison quelconque) :
📂 Exemple :
import java.io.File;
import java.io.IOException;
try {
if (myObj.createNewFile()) {
myObj.getName());
} catch (IOException e) {
System.out.println("Erreur ❌.");
e.printStackTrace();
} }
128
📂 Note :
Pour créer un fichier dans un répertoire spécifique (nécessite une
autorisation), spécifiez le chemin du fichier et utilisez des doubles barres
obliques inverses pour échapper le \caractère " " (pour Windows). Sur Mac
et Linux, vous pouvez simplement écrire le chemin, comme :
/Users/name/filename.txt
📂 Exemple :
import java.io.FileWriter;
import java.io.IOException;
try {
myWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
130
📂 Exemple :
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
try {
while (myReader.hasNextLine()) {
System.out.println(data);
myReader.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
131
📂 Exemple :
import java.io.File; // Import the File class
if (myObj.exists()) {
myObj.getAbsolutePath());
} else {
}
132
📚 Supprimer un fichier
Pour supprimer un fichier en Java, utilisez la méthode delete() :
📂 Exemple :
import java.io.File; // Import the File class
if (myObj.delete()) {
} else {
}
134
📚 Supprimer un dossier
Vous pouvez également supprimer un dossier. Cependant, il doit être vide :
📂 Exemple :
import java.io.File;
if (myObj.delete()) {
} else {
}
135
✅✅ Des Astuces
📚 Compter le nombre de mots dans une chaîne
Vous pouvez facilement compter le nombre de mots dans une chaîne avec
l'exemple suivant :
📂 Exemple :
import java.io.File;
System.out.println(countWords); //4
}
136
class Main {
int x, y, sum;
System.out.println("Type a number:");
📂 Exemple :
import java.util.Scanner; // Import the Scanner class
class Main {
📚 djibysec8@gmail.com
<📚 DSS NAG Fin ! />