Académique Documents
Professionnel Documents
Culture Documents
Programmation
Année 2023/2024
1
Pr. Mohamed Saad AZIZI
Chapitre 1
Introduction à Java
1. Historique
2. Langage Java
Java est un langage typé et orienté objet. Il est compilé et basé sur
une architecture logicielle très particulière nécessitant une machine
virtuelle Java. Il est accompagné d'un ensemble énorme de bibliothèques
standard couvrant de très nombreux domaines, notamment des
bibliothèques graphiques. C'est un langage qui présente d'excellentes
propriétés de portabilité du code.
2
Pr. Mohamed Saad AZIZI
3
Pr. Mohamed Saad AZIZI
➢ Aucun pointeur.
➢ Aucun héritage multiple.
➢ Aucun passage par référence (passage par valeur uniquement).
➢ Aucune méthode de type destructeur.
Programmation sécuritaire :
Extensibilité.
4
Pr. Mohamed Saad AZIZI
Chapitre 2 :
➢ Déclaration de packages.
➢ Importation de packages ou de classes
➢ Une ou des définitions de classes ou d’interfaces
} //fin du main()
}//fin de la classe
2. Commentaires
✓ /* ... */
✓ /**……*/
5
Pr. Mohamed Saad AZIZI
4. Terminologie
6
Pr. Mohamed Saad AZIZI
Abstract, Boolean, break, byte, case, catch, char, class, const, continue,
default, do, double, else, extends, false, final, finally, float, for, goto, if,
implements, import, instanceof, int, interface, long, native, new, null,
package, private, protected, public, return, short, static, strictfp, super,
switch, synchronized, this, throw, throws, transient, true, try, void,
volatile, while
6. Variables
7
Pr. Mohamed Saad AZIZI
8
Pr. Mohamed Saad AZIZI
9. Les opérateurs
9
Pr. Mohamed Saad AZIZI
Périphérique de sortie
import java.io
System.out.print("Hello ");
System.out.println("World !");}}
Résultat :
➢ c:\>javac Hello.java
➢ c:\>java Hello
➢ Hello World !
➢ c:\>
10
Pr. Mohamed Saad AZIZI
Concaténation de sortie
int a = 4;
}}
Résultat :
➢ c:\>javac Exemple.java
➢ c:\>java Exemple
➢ La valeur est : 4
➢ c:\>
Escape Séquences
11
Pr. Mohamed Saad AZIZI
import java.io.*;
import Lecture;
class SaisieClavier
12
Pr. Mohamed Saad AZIZI
Exemple :
import java.util.Scanner;
System.out.println(prenom + " " + nom + ", " + age + " ans, dit : " +
phrase);
} }
13
Pr. Mohamed Saad AZIZI
if (''condition'') { instructions }
if (condition) { instructions }
else
{ autres instructions }
Exemple :
if ( (a>b) {
else {
}}}
14
Pr. Mohamed Saad AZIZI
L’opérateur conditionnel ?:
Voici la syntaxe :
System.out.println( (a>b ) ? a + " plus grande que " + b : b + " plus grand
que "+ a );}}
switch ( [variable] ) {
default: instructions ;
15
Pr. Mohamed Saad AZIZI
Exemple : JourSem.java
imoport Lecture ;
switch (jour) {
case 1: System.out.println("lundi");
break;
case 2: System.out.println("mardi");
break;
case 3: System.out.println("mercredi");
break;
case 4: System.out.println("jeudi");
break;
case 5: System.out.println("vendredi");
break;
}}}
16
Pr. Mohamed Saad AZIZI
Boucle while
Boucle do—while
Ici, instruction sera exécutée tant que expression vaut true. Cela signifie
donc que instruction est toujours exécutée au moins une fois.
Boucle for
Par exemple,
System.out.println("Bonjour");
17
Pr. Mohamed Saad AZIZI
int i = 0;
System.out.println("Bonjour");
i = i+1;
Exemple : SomChiffre.java
nombre = Lecture.lireInt();
} while(nombre<0) ;
somChiffre += nombre % 10 ;
nombre /= 10;}
}}
18
Pr. Mohamed Saad AZIZI
Chapitre 3
1. Méthode
[modificateur_accès][modificateur][type_retour][nom_méthode]
([paramètres])
{ corps_de_méthode
[return ValeurDeRetour;] }
19
Pr. Mohamed Saad AZIZI
b. Modificateur membres
➢ Final
➢ Static
Méthode finale
Méthode static
Une méthode static est elle aussi indépendante des objets. L’appel à cette
méthode se fait alors par le nom de sa classe.
NomDeLaCLASSE.nomDeLaFonction(Arguments)
c. Type de retour
Les paramètres d’une fonction doivent être écrits sous forme suivante :
20
Pr. Mohamed Saad AZIZI
3. La méthode main ()
4. Constructeur de classes
5. Surcharge de fonctions
int valeur1=6;
float valeur2=0.2;
System.out.println(fctCarree(valeur1));
System.out.println(fctCarree(valeur2)); }}
➢ Résultat : Le carree de 6 = 36
➢ Le carree de 0.2 = 0.04
21
Pr. Mohamed Saad AZIZI
Exemple de Fonctions :
if(a>b) return a ;
else return b ;
if(a<b)
return (pgcd(b,a));
else if(b==0)
return (a);
else
if (n<0) return 0 ;
int fact = 1 ;
while(n>1)
fact *= n-- ;
return fact ;
22
Pr. Mohamed Saad AZIZI
Chapitre 4
1. Tableau en Java
2. Vecteur
➢ Déclaration du vecteur
➢ Construction du vecteur
➢ Initialisation du vecteur
23
Pr. Mohamed Saad AZIZI
b. Construction du vecteur
Exemple :
int[] tab1;
//résultat Il y a 75 éléments
24
Pr. Mohamed Saad AZIZI
plusPetiteTaille = taille[i];
Par défaut, les valeurs de chaque élément d'un tableau sont égales à :
Syntaxe :
[type][nom du vecteur][]={[val1],[val2],…,[valN]};
Exemple : Tableau.java
int taille;
double [] tab;
double temp=0.0;
temp = tab[i];
tab[i] = tab[taille - i - 1] ;
tab[taille - i -1 ] = temp ; }}
26
Pr. Mohamed Saad AZIZI
3. Matrice
➢ Déclaration de la matrice;
➢ Construction de la matrice;
➢ Initialisation de la matrice.
b. Construction de la matrice
int[][] Mat1;
//Affichage de la matrice
System.out.print(Mat1[i][j] + ",");
System.out.print(")"); }
27
Pr. Mohamed Saad AZIZI
Une matrice peut être initialisé de deux façons : par une affectation
directe à l’aide de l’index ou dès la déclaration, par une liste
d’initialisation.
{ System.out.print("(");
System.out.print(Mat[i][j] + ",");
System.out.print(")"); }
System.out.print("}");
28
Pr. Mohamed Saad AZIZI
Chapitre 5
classe «StringBuffer ».
1. Classe String
de classe « String » est créé, son contenu ne peut être modifié. Toute
➢ déclaration
➢ construction de l’objet.
// Déclaration de l’objet :
String phrase ;
// Construction de l’objet
//Affichage de la phrase
System.out.println(phrase);
Constructeurs de la classe
29
Pr. Mohamed Saad AZIZI
new String( );
Exemple : Longueur.java
String phrase;
System.out.println(phrase.length());}}
30
Pr. Mohamed Saad AZIZI
Exemple :PositionAt.java
System.out.println(phrase.charAt(i) + ")");}}}
Résultat : ….
Exemple : Copiecar.java
31
Pr. Mohamed Saad AZIZI
Exemple : Egalitechaine.java
class Egalitechaine
if (phrase1.equals(phrase2))
System.out.println("identiques");
else
System.out.println("differentes");}}
Résultat : ….
Exemple :
if (phrase1.equalsIgnoreCase(phrase2))
System.out.println("identiques");
else
System.out.println("differentes");
de caractères]);
Exemple : Comparer.java
33
Pr. Mohamed Saad AZIZI
if ( phrase1.compareTo(phrase2) < 0 )
else
Résultat :……
Exemple : Regionm.java
if( phrase1.regionMatches(0,phrase2,0,10))
System.out.println("identiques");
else
System.out.println("differents");}}
Résultat : ….
34
Pr. Mohamed Saad AZIZI
Exemple : Debutfin.java
if (phrase1.startsWith("Voici"))
System.out.print("commence ");
else
if (phrase1.endsWith("phrase"))
System.out.print("finit ");
else
35
Pr. Mohamed Saad AZIZI
if (phrase1.startsWith("une", 6))
System.out.print("possède ");
else
➢ [objet].indexOf([chaînes de caractères]);
36
Pr. Mohamed Saad AZIZI
Exemple : Enlever.java
System.out.println(phrase.substring(17));}}
Résultat : …..
Exemple : Ajouter.java
System.out.println(phrase1.concat(phrase2));}}
Résultat : …
37
Pr. Mohamed Saad AZIZI
Exemple : Remplacer.java
System.out.println(phrase1.replace('o','Z'));}}
Résultat :….
38
Pr. Mohamed Saad AZIZI
3. Classe « StringBuffer »
Lorsqu’un objet de classe « String » est créé, son contenu ne peut être
Constructeurs de la classe
➢ new StringBuffer( );
39
Pr. Mohamed Saad AZIZI
➢ Syntaxe : [objet].setCharAt([index],[caractères]) ;
Exemple : Modifier.java
StringBuffer phrase ;
phrase.setCharAt(i,temp[i-10]);
Résultat :…
40
Pr. Mohamed Saad AZIZI
Exemple : Inverser.java
StringBuffer phrase ;
phrase = phrase.reverse();
Résultat : …
« append »
Exemple :
StringBuffer phrase;
phrase = phrase.append("courte");
System.out.println(phrase);
}}
Résultat : ….
41
Pr. Mohamed Saad AZIZI
Exemple : Inserer.java
{ StringBuffer phrase;
phrase.insert(4,"petite ");
System.out.println(phrase);}}
Exemple :
StringBuffer phrase;
phrase.deleteCharAt(17);
phrase.delete(4,11);
System.out.println(phrase);}}
42
Pr. Mohamed Saad AZIZI
Chapitre 6
Introduction
➢ classes et objets
➢ méthodes et attributs
➢ encapsulation
➢ héritage
➢ polymorphisme
2. Définitions
Classe : Une classe est un type utilisateur qui comporte des données et
des fonctions qui permettent de manipuler directement ces données.
43
Pr. Mohamed Saad AZIZI
Objet : Un objet (ou une instance) est une variable créée à partir d'une
classe.
3. Spécificateur d’accès
44
Pr. Mohamed Saad AZIZI
Syntaxe générale
[implements interface] {
45
Pr. Mohamed Saad AZIZI
Accesseurs et modificateurs
Modificateurs
Surcharge
46
Pr. Mohamed Saad AZIZI
Exemples :
longueur = lo;
largeur = la; }
} etc . . .}
47
Pr. Mohamed Saad AZIZI
La classe Cercle
// Attributs
private double x, y ;
private double r;
// méthodes
48
Pr. Mohamed Saad AZIZI
La classe Personne
// accesseur
//modificateur
…………………….
49
Pr. Mohamed Saad AZIZI
Syntaxe
➢ construit l'objet
nomObjet = new constructeurClasse( [liste de paramètres] ) ;
Exemple :
Cercle c;
Cercle c = new Cercle();
c = new Cercle();
50
Pr. Mohamed Saad AZIZI
9. L’autoréférence : this
Exemple :
51
Pr. Mohamed Saad AZIZI
private double x, y, r ;
// Les constructeurs
x = xo ; y = yo ; r = rayon ;}
………………….
…………………..
52
Pr. Mohamed Saad AZIZI
La référence à une donnée définie dans une classe d'objet a pour syntaxe
:
nomObjet . nomAttribut
Exemple 1
c.x=2 ;
c.y =3 ;
c.r =4;
53
Pr. Mohamed Saad AZIZI
Quand on applique les méthodes aux objets, on dit qu'on envoie des
messages aux objets Cela s'écrit de la même façon que vis à vis des
attributs :
nomObjet . nomMéthode()
Exemple :
double a = C1.surface() ;
……………… }
En JAVA, le mot-clé static indique qu'un élément d'une classe est lié à
la classe et non à un objet particulier.
Attribut static
String nom;
……….. }}
Accès : NomClasse.nomDuCham
54
Pr. Mohamed Saad AZIZI
Constantes de classe
Exemple :
Exemple :
55
Pr. Mohamed Saad AZIZI
private float x, y;
public Point() {
x = 0;
y = 0;
this.x = x;
this.y = y;
//accesseurs
return x;
return y;
56
Pr. Mohamed Saad AZIZI
//modificateur
x= abs;
This.y= ord;
return "("+x+","+y+")";
57
Pr. Mohamed Saad AZIZI
1. Le concept de l’héritage :
Exemples :
Forme géométrique
Polygone Ellipse
equilateral Rectangle
Carré
58
Pr. Mohamed Saad AZIZI
2. Définition
Avantage
Terminologie :
On dit que la classe Enfant hérite de la classe Parent, qu'elle étend cette
ancienne classe.
Enfant est alors une sous-classe (subclassed) de Parent. Parent est une
super-classe (surclasse) de Enfant.
Notation :
class Personne
{
private String nom;
private Date
date_naissance;
// ...
}
class Employe extends
Personne
{
private float salaire;
// ...
}
class Etudiant extends
Personne
{
private int
numero_carte_etudiant;
// ...
}
4. Constructeurs et héritage
60
Pr. Mohamed Saad AZIZI
5. Redéfinition de méthodes
Une sous-classe peut redéfinir des méthodes existant dans une de ses
superclasses (directe ou indirectes), à des fins de spécialisation.
61
Pr. Mohamed Saad AZIZI
Remarque
6. Le polymorphisme
Similaire au « cast » en C.
62
Pr. Mohamed Saad AZIZI
9. Référence à la superclasse
63
Pr. Mohamed Saad AZIZI
Chapitre 8
Pourquoi ?
encore abstraite
En résumé : une classe abstraite est celle qui n'est que partiellement implantée
et dont l'intérêt est la conception d'une hiérarchie de l'héritage simple.
64
Pr. Mohamed Saad AZIZI
Définition :
Une classe abstraite est une classe n'ayant pas d'instances. Elle n'est
utilisable qu'à travers sa descendance. Autrement dit, une telle classe
ne peut pas être instanciée directement, et doit toujours être dérivée
pour pouvoir générer des objets.
Déclaration :
abstract class MaClasseAbstraite extends MaClasse { ...}
Elle sert uniquement à regrouper des attributs et méthodes communes
à un groupe de classes pour constituer une véritable "factorisation" de
ces classes et ne sera utilisable que par l'intermédiaire de ses sous-classes
(voir plus bas)
65
Pr. Mohamed Saad AZIZI
/**
* Les 2 méthodes :
* perimetre() : hériter de Parallelogramme
* surface() : implémentée ici (réaliser de A à Z)
* La classe Rectangle2 n'est plus abstraite. Elle est
* concrète.
*/
public class Rectangle2 extends Parallelogramme
{
// appel le constructeur d'une super-classe (qui est abstraite!)
66
Pr. Mohamed Saad AZIZI
67
Pr. Mohamed Saad AZIZI
68
Pr. Mohamed Saad AZIZI
Déclaration :
visibilité abstract class nomDeClasse {
….
visibilité abstract type nomDeMethode(liste d'arguments) ;
…. }
69
Pr. Mohamed Saad AZIZI
Chapitre 9
Les Interfaces
Interface Pourquoi ?
En Java, l'héritage multiple n'existe pas comme en C++, on ne peut pas
faire hériter une classe de plusieurs classes. Pour contourner la
difficulté, on a créé des interfaces.
9.1. Définition
Une interface est une collection de déclarations de méthodes dépourvues
d'implémentation. Le code doit obligatoirement être précisé dans la
redéfinition des méthodes de l'interface. Voir ce mécanisme dans la
gestion des événements auxquels peut réagir une interface graphique
(voir plus bas)
En Java une classe n'a pas le droit d'hériter directement deux super-
classes. Par contre, Java permet à une classe d'être dérivée d'une seule
super-classe mais implémente une ou plusieurs interfaces.
sous-classe B
dérivée de A
implémente I1, I2, etc
70
Pr. Mohamed Saad AZIZI
super classe en
Java interface interface interface
List Cloneable Serializable
AbstractList
...
// cette méthode retourne une énumération des éléments de ce
// vecteur
public final Enumeration elements();
...
71
Pr. Mohamed Saad AZIZI
Pour trier un tableau des personnes selon leurs tailles, la méthode de tri
suivant fonctionne :
La seule différente entre ces deux méthodes est la Comparaison selon les
tailles ou selon les surfaces.
72
Pr. Mohamed Saad AZIZI
9.3. Interface
interface Comparable
{
public abstract boolean plusPetit(Object obj);
}
{
public static void trier(Comparable[] tableau, int nbElem) {
Comparable tempo;
for(int i = 0 ; i < nbElem-1; i++) {
int indMin = i;
for(int j = i+1 ; j < nbElem; j++)
if (tableau[j].plusPetit(tableau[indMin]))
indMin = j;
if (indMin != i) {
tempo = tableau[i];
tableau[i]=tableau[indMin];
tableau[indMin]=tempo;
}
}
}
}
73
Pr. Mohamed Saad AZIZI
74
Pr. Mohamed Saad AZIZI
75
Pr. Mohamed Saad AZIZI
public Rectangle3() { }
public Rectangle3(int lo, int largeur) {
longueur = lo;
this.largeur = largeur;
}
public Rectangle3(int c) {
this(c, c);
}
76
Pr. Mohamed Saad AZIZI
interface Comparable
{
public abstract boolean plusPetit(Object obj);
}
Classes concrètes vs abstraites vs interfaces :
77
Pr. Mohamed Saad AZIZI
Chapitre 10 :
Une Applet est un programme Java (sans méthode main) exécuté dans
la balise </HTML>.
<HTML>
<HEAD>
78
Pr. Mohamed Saad AZIZI
</HEAD>
<BODY>
</BODY>
</HTML>
Une applet Java est invoquée grâce à deux balises spéciales insérées au
sein du
java.lang.Object
|
+--java.awt.Component
|
+--java.awt.Container
|
+--java.awt.Panel
|
+--java.applet.Applet
exécuter
Java.
79
Pr. Mohamed Saad AZIZI
visionner
fera appel à
{ .....……………..
…………………
80
Pr. Mohamed Saad AZIZI
import java.applet.*;
public class AppletExemple1 extends Applet
{
………………………………….
}
81
Pr. Mohamed Saad AZIZI
Le code d'appel d'une applet est intégré au texte source de la page dans
déplacer le code compris entre les deux balises <APPLET CODE =.......>
et </APPLET>.
Voici une page HTML dont le titre est "Exemple Applet " et ne
contenant qu'une applet
<HTML>
<HEAD>
<TITLE> Exemple Applet </TITLE>
</HEAD>
<BODY>
<APPLET CODE="NomApplet.class" WIDTH=200 HEIGHT=100>
</APPLET>
</BODY>
</HTML>
82
Pr. Mohamed Saad AZIZI
pixels)
classe de AWT
classe "Graphics" :
83
Pr. Mohamed Saad AZIZI
AB,hauteur BC);
A B
D C
import java.awt.*;
import java.applet.*;
84
Pr. Mohamed Saad AZIZI
Exécution
import java.awt.*;
import java.applet.*;
85
Pr. Mohamed Saad AZIZI
<HTML>
<HEAD>
<TITLE> Exemple Applet </TITLE>
</HEAD>
<BODY>
<applet code= “Applet2.class” width=320 height=200 >
<param name=background value="008080">
<param name=foreground value="FFFFFF">
</applet>
</BODY>
</HTML>
86
Pr. Mohamed Saad AZIZI
Execution
87
Pr. Mohamed Saad AZIZI
import java.awt.*;
import java.applet.*;
// dessiner la figure
g.drawOval(50, 40, 100, 120);
// coin en haut, à gauche (pour l'œil gauche) de la classe Point :
construire un point
Point p = new Point(70, 80);
p.translate(50,0);
88
Pr. Mohamed Saad AZIZI
dessinerSourire(g);
g.setColor(Color.darkGray);
g.drawLine(180,0, 180, 400);
afficher(g, "Vitamine S : un sourire!", 200, 50);
// un affichage spécial
afficher("Droit d'auteur à débarrasser!", g, 200, 250);
}
89
Pr. Mohamed Saad AZIZI
HTML>
<HEAD>
<TITLE> Exemple Applet </TITLE>
</HEAD>
<BODY>
<applet code= “Applet3.class” width=320 height=200 >
<param name=background value="008080">
<param name=foreground value="FFFFFF">
</applet>
</BODY>
</HTML>
Execution
90