Cours de Programmation Orientée Objet Java
Cours de Programmation Orientée Objet Java
: Cours 1
INTRODUCTION
3
Traitement Données
Objet Influencent
INTRODUCTION
4
class Geometrie {
public static void main ( String [ ] args ) {
// Déclarations !!
Geometrie
double largeur = 3.0;
double hauteur = 4.0 ;
// Affichage !! - largeur,
System.out.println (‘‘ Surface du rectangle : ” - hauteur
+ surface (largeur, hauteur) );
// Méthode !!
double surface (largeur, hauteur){ surface (largeur, hauteur)
return (largeur × hauteur)
}
}
}
INTRODUCTION
5
INTRODUCTION
6
L’histoire de JAVA a commencée depuis 1991 et lancé 1995 par SUN Microsystem TM sous un
projet nommé (‘‘Green Project’’).
Son premier nom était OAK.
Java est un langage orienté objet accompagné d’un ensemble énorme de bibliothèques standard
couvrant de très nombreux domaines.
Java est basé sur une architecture logicielle nécessitant une machine virtuelle java (JVM).
Fichier.java Fichier.class
(Code source) (bytecode)
- -
------ ------ 1001000101
------ JAVAC ------ JVM
(Compilateur) (machine virtuelle)
------ ------
INTRODUCTION
8
Java peut être utilisé pour créer des application dans plusieurs domaines :
Sur client lourd (JFC)
Web (survlets, JSP, JSF, Struts)
Embarquées (J2ME)
Sur carte à puce (JAVA CARD)
GÉNÉRALITÉS
9
Java est un langage simple, orienté objet, distribué, robuste, sûr, indépendant des architectures
matérielles, portable, de haute performance, multithread et dynamique.
GÉNÉRALITÉS
10
Portable
Les types de données sont indépendants de la plate forme (par exemple les types
numériques sont définis indépendamment du type de plate forme sur laquelle le
byte code sera interprétée).
Multi thread
Une applications peut être décomposée en unités d’exécution fonctionnant
simultanément
Dynamique
Les classes Java peuvent être modifiées sans avoir à modifier le programme qui les
utilise
Politique
Java est actuellement totalement contrôlé par Oracle.
GÉNÉRALITÉS
11
Package
Classe
Attributs
Méthodes
EDITIONS JAVA
12
VERSIONS DE JAVA
13
Java 1.0
8 packages
212 Classes et Interfaces
1545 Méthodes
Java 1.1
23 packages
504 Classes et Interfaces
3 851 Méthodes
Java 1.2
60 packages
1 781 Classes et Interfaces
15 060 Méthodes
PLATE-FORME JAVA
14
JVM : (“Java Virtual Machine”) le logiciel qui interprète le bytecode généré par le
compilateur Java.
Mon Programme
API
JVM
Système d’exploitation
Hardware
Plate forme
SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019
INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES
PLATE-FORME JAVA
15
Portabilité : le bytecode peut être chargé depuis une machine distante sur Internet.
Sécurité : la JVM effectue des nombreuses vérifications sur le bytecode pour éviter
des actions “dangereuses”.
VARIABLES D’ENVIRONNEMENT
16
Bonjour.java
public class Bonjour {
public static void main ( String [ ] args ) {
System.out.println ( ” Bonjour tout le monde !! ” );
}
}
$ javac Bonjour
Bonjour..java
Le compilateur reçoit un nom d’un fichier ayant pour suffixe .java. Ensuite, il génère
le bytecode dans un fichier ayant pour suffixe .class.
$ java Bonjour
Attention : La JVM reçoit un nom d’une classe (donc, pas de suffixe .class). Le fichier
contenant le bytecode de la classe doit être présent dans le même dossier.
GÉNÉRALITÉS
19
Package
Package
Classe
Attributs
Méthodes
PACKAGES
20
Exemple
java.lang ; java.lang.String ;
java.util.Data ; java.awt.event.MouseEvent;
PACKAGES
21
java
DÉCLARATION DE VARIABLES
24
Déclaration de la variable :
{0,1,…9}
{a,…, z, A,…,Z,_,$}
Nom de la variable :
Type Nom_Variable;
Type de données :
Taille
Type Intervalle Taille
(o) Type Intervalle
(o)
Byte 1 [-27, 27-1]
Types Entiers
Nombres réels
Un suffixe "f" ou "d" après une valeur numérique permet de spécifier le type.
Exemple
double x = 154.56 d;
float y = 23.4 f;
Boolean
Valeurs true ou false
Un entier non nul est également assimilé à true
Un entier nul est assimilé à false
i = i+1
i++
Syntaxe :
if (condition) {
} else {
default : Action;
Exemple :
int note = 10;
switch (note) {
case 0 : System. out.println("0"); break;
case 10 : System. out.println(" Passable"); break;
case 20 : System. out.println("Parfait !"); break;
default : System. out.println("Default");
}
Syntaxe :
Exemple :
CHAÎNES DE CARACTÈRES
32
Chaînes de caractères
Les chaînes de caractères sont manipulées par la classe String (ce n’est donc
pas un type de données).
Exemples :
CHAÎNES DE CARACTÈRES
33
Exemple de déclaration :
La valeur initiale d’une variable du type String est null (ainsi que pour toutes les
variables dont leur type est une classe d’objets).
Mais attention!! Techniquement, String n’est pas un type primitif. Il s’agit d’une
classe du paquetage java.lang.
Strings sont des objets immuables (“immutable objects”) : leur valeurs ne peuvent
pas être modifiés.
COMPARAISON D’OBJETS
34
String s1 = "Bonjour" ;
String s2 = "bonjour" ;
Syntaxe :
String.Fonction(String)
En générale
Objet.Fonction(Objet)
COMPARAISON D’OBJETS
35
Exemple 1 :
r1 = = r2 → false
r1 = = r3 → false
JAVA : TABLEAUX
36
Tableaux
Exemple :
ou
JAVA : TABLEAUX
37
Tableaux Statiques
Le tableau est donc une sorte de « variable indicée ». On peut affecter une valeur à
un élément du tableau ainsi : monTableau[3] = 45;
Si la taille du tableau est n, les indices sont compris entre 0 et n-1 !
Affichage des éléments : Pour afficher les éléments d’un tableau, on doit faire
appel à une boucle. Deux possibilités :
Attention Une fois la taille est fixé au cours d’initialisation on peut plus la modifier
pendant le programme s’exécute
SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019
INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES
JAVA : TABLEAUX
38
La taille n’est pas modifiable et peut être consultée par la propriété length.
Exemples :
JAVA : TABLEAUX
39
DemoTableau.java
}
}
System.out.println("Chaine de caractère") ;
QCM
42
Exercice 1 :
Lesquelles des signatures suivantes de la méthode main sont-elles valides :
Exercice 2 :
Après l'exécution des instructions suivantes quelles sont les valeurs des variables x, a et b?
int x, a=6, b=7; a= 7
x= a++ + b++ b= 8
x= 6+7=13
QCM
43
Exercice 3 :
Le programme suivant compile-t-il ? justifier
a) byte b = 5;
b) Byte c = 3 ;
c) short s = 55;
QCM
44
Exercice 4 :
Quel est le résultat de l’exécution du code suivant ?
MODES DE PROGRAMMATION
47
Traitement Données
Objet Influencent
Classe est un type abstrait caractérisé par des propriétés (Attributs et méthodes).
class nom_de_la_class {
// Corps de la classe
}
Description
Class Objet
Instance
Class GUI
Class Zip
Attributs : vitesse
Velo
-Vitesse
Accélérer()
Freiner()
ImprimeEtat()
class Velo {
Velo..java
Velo
// Attributs
int vitesse = 0;
// Méthodes
void accelerer(int increment) {
vitesse = vitesse + increment; }
void imprimeEtat() {
System.out.println( ’’ Vitesse = ’’ + vitesse); }
}
class DemoVelo {
DemoVelo..java
DemoVelo
public static void main ( String [ ] args ) {
COMPILATION ET EXÉCUTION
53
Compilation :
Exécution :
$ java DemoVelo
Affichage :
vitesse: 10
vitesse: 20
Chaque objet (V1 et V2) instance de la classe Velo possédera sa propre vitesse
V1 V2
Vitesse Vitesse
HÉRITAGE
54
il admet une valeur (qui lui est propre) pour chaque attribut déclaré dans la classe,
il est possible de lui appliquer toute opération (méthode) définit dans la classe.
Tout objet admet une identité qui le distingue pleinement des autres objets:
CRÉATIONS D’OBJETS
56
Velo v1;
v1 = new Velo();
// Ou
// opération
Velo v3 = v2;
CONSTRUCTEUR DE CLASSE
57
Si aucun constructeur n’est défini par le programmeur, java considère que la classe est
munie d’un constructeur par défaut.
Un constructeur est utile pour procéder à toutes les initialisations nécessaires lors de la
création de la classe.
CONSTRUCTEUR DE CLASSE
58
class Compte
{
\\attributs
int numero;
float solde;
\\constructeur
public Compte (int num, float s)
{
numero = num ;
solde = s ;
}
}
REPRÉSENTATION MÉMOIRE
59
La référence d’un objet est utilisée pour accéder aux données et fonctions
membres de l’objet.
Quand un objet n’est plus utilisé (aucune variable du programme ne contient une
référence sur cet objet), il est automatiquement détruit et la mémoire est récupérée
(garbage collector)
DESTRUCTEUR DE CLASSE
60
void finalize ()
SURCHARGE DE MÉTHODES
61
Une méthode (y compris le constructeur) peut être définie plusieurs fois avec le même nom
à condition de se différencier par le nombre et/ou le type des paramètres transmis
(polymorphisme).
Exemple :
class BarreDeProgression {
float pourcent ;
TYPES DE VARIABLE
62
Attributs : (ou variables membres de classe) variables définies dans une classe ( à
l’extérieur de ses méthodes).
Paramètres : variables définies dans la liste des paramètres d’une méthode. (Visibles
seulement à l’intérieur de la méthode correspondante.
Pour accéder aux attributs d’un objet on utilise une notation pointée :
nomDeObjet.nomDAttributDinstance
Remarque : Similaire à celle utilisée en C pour l’accés aux champs d’une structure (Struct).
Velo v1;
v1 = new Velo();
Velo v2 = new Velo();
Velo v3 = v2;
v1.vitesse = 10;
v2.vitesse = 10;
v3.vitesse = v1.vitesse + v2.vitesse;
L’OPÉRATEUR INSTANCEOF
65
DemoInstanceof1.java
class DemoInstanceof1 {
public static void main(String[] args) {
Pere obj = new Pere();
System.out.println("obj instanceof Père :" + (obj instanceof Pere));
System.out.println("obj instanceof Fils :" + (obj instanceof Fils));
}
}
Class Pere {}
EXERCICES
66
Entrez un nombre : 8
Entrez un nombre : 12
Entrez un nombre : 0
Le max = 12 & Le min = 8 & La moyenne = 10
EXERCICE
67
Ecrire une classe Banque qui gère plusieurs objets de type Compte
CORRECTION
68
Ecriture de la classe :
CORRECTION
69