Académique Documents
Professionnel Documents
Culture Documents
Cours JAVA 2 1
Cours JAVA 2 1
Mourad Kmimech
mkmimech@gmail.com
2020/2021
Introduction générale
&
historique
1
01/10/2020
• Objectif:
– Exécution standardisé des programmes.
– Maintenance simplifié.
– Indépendance vis-à-vis des plateformes.
Cours POO 3
Propriétés de Java
• Simplicité et productivité
- Syntaxe proche du C/C++
- Élimination de la notion de pointeur, structure…
• Distribué
- La manipulation d’objet locaux ou distribué se fait de la même façon.
• Interprété
- Un programme java n’est pas compilé en code machine mais transformé en
code intermédiaire interprété.
Cours POO 4
2
01/10/2020
Propriétés de Java
• Robustesse, fiabilité et sécurité
- Langage fortement typé.
- Interdiction de conversion de type impliquant une perte de précision.
• Ouverture
- Support intégré d’Internet
- Connexion intégrée aux bases de données (JDBC)
- Support des caractères internationaux
- Distribution et aspects dynamiques
- Performance
• Dynamique et mutithread
- Les classes sont charger au fur et a mesure des besoins.
- Mise à jour de l’application peut se faire classe par classe.
- Gestion multithreading simple : écouter de la musique en voyant une
animation flash.
Cours POO 5
Propriétés de Java
Portabilité : MonProg.java
3
01/10/2020
MonProg.c
MonProg.o
010110…
Cours POO 7
MonProg.java
Traduit le programme en un code
intermédiaire
Exécuté une seule fois
Compilateur Appelé bytecode – indépendant de la
machine
MonProg.class
010110…
Cours POO 8
4
01/10/2020
La plateforme Java
• Plateforme = environnement hardware ou software sur lequel le
programme est exécuté.
Cours POO 9
Versions de Java
Version Nbr Nbr nouveauté
classes packages
1.0 212 8
Cours POO 10
10
5
01/10/2020
Chapitre 1
11
Commentaires
• Trois notations sont admises pour l’insertion de
commentaire :
// commentaire sur une ligne.
/* commentaire sur
plusieurs
lignes */
Cours POO 12
12
6
01/10/2020
• Exemple:
{
x=2; {x=2;y=10;}
y=10;
}
Cours POO 13
13
identificateurs
• Un identificateur désigne tout objet que le programmeur
souhaite manipuler.
• Exemple:
– MaClasse, _maVariable, $maFonction, C1, … (Valide)
– 1var, -maclasse, fonction-recherche, … (non valide)
Cours POO 14
14
7
01/10/2020
15
Types de données
• Java prend en comptes les types de données suivant :
Cours POO 16
16
8
01/10/2020
Types primitifs
• Catégorie logique : Type boolean
en java, un boolean n’est pas considéré comme une valeur
numérique. Seules valeurs possibles sont true ou false.
exemples:
boolean trouve=true;
Cours POO 17
17
Types primitifs
• Catégorie entier : types byte, short, int et long
il existe 4 types d’entiers en java.
chaque type est déclaré avec l’un des mots clés byte, short, int et long.
Exemple:
Int x=2;
Long y=3L;
Cours POO 18
18
9
01/10/2020
Types primitifs
• Catégorie flottant : type float et double
une constante numérique est flottante si elle contient un
point décimal, une partie exponentielle lettre E ou si elle sont
suivit par la lettre F ou D.
Exemple :
2.3F
2.3
2.3E4
4F
Cours POO 19
19
Déclaration et affectation
• La déclaration et l’affectation s’effectue de manière similaire au C.
Exemple :
int x=0, y=0;
float z=2.3F;
double t=2.3;
char c=‘r’;
Exemple :
final double PI=3.14;
Cours POO 20
20
10
01/10/2020
Cours POO 21
21
Cours POO 22
22
11
01/10/2020
Cours POO 23
23
Conversion de type
• Si dans une expression les opérandes sont de différents type le résultat est alors
convertis vers le type le plus grand.
Exemple :
int x=2; long y=4, z;
z=x*y; //le résultat est alors convertis en long
• Pour l’affectation, la donnée a droite est convertie dans le type de celle de gauche.
Si le type de la destination est plus faible l’instruction est considéré erronée.
Exemple :
int i=2; long x=5;
x=i; //instruction légale
i=x; // instruction erronée
• On peut convertir explicitement une valeur en forçant la transformation. Le type
ciblé est placé entre () et est utilisé comme préfixe de l’expression dont on veut
modifier le type.
<nom_variable> = (<type>) <expression>
Exemple :
float z; z=(float) 14.33;
int x; x=(int) z; //x contient la valeur 14
Cours POO 24
24
12
01/10/2020
La partie else est optionnelle et peut être omise s’il n’y a pas d’actions a
effectuer lorsque la condition est fausse.
• Exemple :
int i=2; boolean fin;
if(i<0)
{fin=true; i=0;}
else i++;
Cours POO 25
25
Cours POO 26
26
13
01/10/2020
k=2 K=?
Cours POO 27
27
C’est équivalent à :
If(codition)
si_test_vrai
Else
si_test_faux
Exemple:
int a=1,b=3;
int min=(a<b)?a:b; //parenthèse facultatives
Cours POO 28
28
14
01/10/2020
Exemple:
int i=0;
System.out.println(‘‘je sais compter jusqu’a 10’’);
while (i<10)
{
System.out.println(i);
i++;
}
Cours POO 29
29
Exemple:
int i=10;
System.out.println(‘‘je sais compter jusqu’a 10 a l’envers’’);
do
{
System.out.println(i);
i--;
}
while(i>=0);
Cours POO 30
30
15
01/10/2020
Exemple:
for (int i=0;i<=10;i++)
System.out.println(i);
Cours POO 31
31
Convention d’écriture
• Classes
class BankAccount, class RacingBike
• Interfaces
interface Account
• Méthodes
deposer() getName()
• Packages
package coursJava
• Variables
int accountNumber, int x
• Constantes
MAXIMUM_SIZE
Cours POO 32
32
16
01/10/2020
33
Cours POO 34
34
17
01/10/2020
Cours POO 35
35
Chapitre 2
Les principes de la
programmation Objet
« Objet, classe »
36
18
01/10/2020
Notion d’objet
Cours POO 37
37
Notion d’objet
Cours POO 38
38
19
01/10/2020
• Ex: un poste de télé est une boite noir ayant pour interface : une
télécommande , écran, haut parleurs. Pour changer de chaîne il
suffit de demander a la boite noire de le faire pour nous en
appuyant sur un bouton.
Cours POO 39
39
• L’encapsulation d’un objet par son interface permet de masquer son contenu
possibilité de modifier son contenue sans impacte pour le reste du monde.
Cours POO 40
40
20
01/10/2020
Cours POO 41
41
Tables Chaises
Cours POO 42
42
21
01/10/2020
Polymorphisme
Cours POO 43
43
Objets, Classes
• Exemple:
– On peut modéliser une personne par l’objet Personne. Les attribut sont alors les
information concernant la personne (nom, prénom, DN,…). Et comme méthode on
aurais par exemple calcul_Age, calcul_salaire…
Cours POO 44
44
22
01/10/2020
Objets, Classes
• Qu’est ce qu’une classe?
– C’est une description d’un ensemble d’objets ayant des propriétés et des
comportements commun.
– Les objets sont a lors des représentations dynamique (ou « instanciation » )
vivante du modèle définit pour eux au travers de la classe.
• Une classe en java est définie en précisant son nom, en déclarant ces attributs
et en définissant ses méthodes.
• Syntaxe:
Class nom_classe
{
// déclaration des attributs
// déclaration des méthodes
}
Cours POO 45
45
Objets, Classes
• Exemple:
Class Rectangle
{
//declaration attributs
int long;
int larg;
// autres attributs eventuels
//declartion des fonctions
void allongerRectangle(int lg)
{ long+=lg;}
//… autres méthodes
}
Cours POO 46
46
23
01/10/2020
Objets, Classes
Cours POO 47
47
Objets, Classes
Cours POO 48
48
24
01/10/2020
Objets, Classes
Constructeur de classe
Un constructeur est une méthode particulière appelée au
moment de la création d’un objet. Son role est d’initialiser
l’objet en fonction des paramètres fournis par l’utilisateur.
Cours POO 49
49
Objets, Classes
Constructeur de classe
Une classe peut avoir plus qu’un constructeur
Ex:
Rectangle (int lg,int larg) {
longueur=lg; largeur=larg;
}
Rectangle () {
longueur=0; largeur=0;
}
Cours POO 50
50
25
01/10/2020
Objets, Classes
Utiliser un objet
– Accès a un attribut :
• L’accès a un attribut dans une classe se fait toujours a l’intérieur d’une
méthode. Cette méthode peut intervenir a la classe elle-même ou a
autre classe.
• Si l’accès se fait de l’extérieur de la classe, alors on crée un objet de la
classe puis on applique cette syntaxe:
<nom_Objet>.<Nom_Attribut>
Cours POO 51
51
Objets, Classes
Cours POO 52
52
26
01/10/2020
Objets, Classes
Les références :
– Ce sont les variables qui permettent de désigner et manipuler les objets.
– Les seuls opérateurs sur les références sont des opérateurs logiques:
• ==: teste si 2 références désignent le même objet.
• != : teste si 2 référence ne désignent pas le même objet
• instanceof : retourne true si l’objet à gauche est une instance de la classe placé à sa droite
ou si la comparaison est faite entre un objet d’une classe implémentant une interface .
Sinon il retourne false.
– Ex :
Class Rectangle
{ private int longueur; private int largeur;
// déclaration des méthodes…
}
Class Test
{public static void main (String[] args){
Rectangle r=new Rectangle();
boolean val1=r instanceof Rectangle;//val=true
boolean val2=r instanceof Test;//val=false
}}
Cours POO 53
53
Objets, Classes
La référence this :
– Le mot clé this représente une référence sur l’objet courant (celui qui est entrain
d’exécuter la méthode contenant le this).
– La référence this peut être utile :
• Lorsqu’une variable locale ou paramètre cache, en portant le même nom, un attribut de la
classe.
• Pour déclencher un constructeur depuis un autre constructeur.
– Ex :
Class Date
{
int jour=1, mois=1, an=1990;
Date()
{an=2000; /* peut s’écrire : this.an=2000*/}
Date(int an)
{this.an=an; /* le paramètre en cache l’attribut an*/}
Date(int an, int mois, int jour)
{this.jour=jour;
this.mois=mois;
this(an); /* Appel du deuxième constructeur*/}
}
Cours POO 54
54
27
01/10/2020
Objets, Classes
La référence null :
– Le mot clé null permet de représenter la référence qui ne représente rien.
– On peut assigner cette valeur a n’importe quelle variable ou attribut
contenant une référence.
– C’est aussi la valeur par défaut d’initialisation des attributs représentant des
références.
– Ex :
Class Test
{
Voiture v1; //initialisation a null par défault.
void methode()
{
…
if (v1==null) v1=new Voiture();
…
}
}
Cours POO 55
55
Objets, Classes
Cours POO 56
56
28
01/10/2020
Objets, Classes
Cours POO 57
57
Objets, Classes
Attributs de classe:
– C’est un attribut marqué par le mot clé static.
– Le mot clé static , utilisé pour un attribut, permet d’indiquer
que cet attribut est commun a tous les objets de la classe
concernée si on modifie cet attribut pour un objet donné, il
sera modifié pour tous les objets de la classe.
– Ex :
public static void main (String[] args){
class Voiture Voiture V1=new Voiture();
{ static int count =0; Voiture V2=new Voiture();
int id; System.out.println(V1.count);
voiture(){ V1.count=55;
System.out.println(V2.count);
count++;
Voiture.count=22;
id=count; System.out.println(V1.count);
} }
}
Cours POO 58
58
29
01/10/2020
Objets, Classes
Attributs de classe:
– On accède a un attribut statique :
• Via une instance quelconque de la classe : V1.id
• Via le nom de la classe : Voiture.id
Cours POO 59
59
Objets, Classes
Méthodes de classe:
– Une méthode de classe est une méthode de type static.
Cours POO 60
60
30
01/10/2020
Objets, Classes
Méthodes de classe: class Test
• Ex : {
class MathTool void methode1()
{ final static double PI=3.14; {
static double getPI() double i =
MathTool.power(6);
{return(PI);}
}
static double diametre(double rayon) void méthode2()
{return(2*PI*rayon);} {
MathTool t=new
static double power(double x) MathTool();
{return (x*x);} double i = t.power(6);
}
}
}
Cours POO 61
61
Objets, Classes
Méthodes de classe:
– Une méthode statique ne peut pas avoir de référence this
car elle peut être appelé sans l’intermédiaire d’un objet.
Cours POO 62
62
31