Cours Programmation Orientée Objet et Langage Java Equipe Pédagogique: Institut supérieur de gestion de Tunis 2009-2010 Linda OUERFELLI linda.ouerfelli@ymail. com Meherzia LAGHA [email protected]
Apr 04, 2015
Cours Programmation Orientée Objet et Langage Java
Equipe Pédagogique:
Institut supérieur de gestion de Tunis2009-2010
Linda [email protected]
Meherzia [email protected]
2
Linda OUERFELLI & Meherzia LAGHA
Objectifs
Présenter l’intérêt de la Programmation orientée Objet
Introduire les notions de base de la Programmation Orientée Objet
Présenter le langage Java
01/04/2010Cours POO & Langage JAVA
3
Linda OUERFELLI & Meherzia LAGHA
Bibliographie Eric Sigoillot(25/07/2004),
Http://hdd34.developpez.com/cours/artpoo/ ,(consulté le 22/03/2010)
Site web du Laboratoire d’Informatique de Robotique et de
Microélectronique de Montpelier,
http://www.lirmm.fr/~fmichel/ens/java/cours/programmatio
nOO.pdf
, (consulté le 22/33/2010)
01/04/2010Cours POO & Langage JAVA
4
Linda OUERFELLI & Meherzia LAGHA
Cour de POO de Z.Ellouadi et A.Zribi, année universitaire 2005-2006
Jean Michel Doudoux (01/11/2009), http://jmdoudoux.developpez.com/cours/developpons/java/, (consulté le 22/03/2010)
Site de Sun Microsystems http://java.sun.com
01/04/2010Cours POO & Langage JAVA
Bibliographie
5
Linda OUERFELLI & Meherzia LAGHA
01/04/2010Cours POO & Langage JAVA
Plan
Introduction
Les ABC du langage JAVA
Origines de la POO
Définitions
Généralités
Caractéristiques
Histoire
Syntaxe
6
Linda OUERFELLI & Meherzia LAGHA
01/04/2010Cours POO & Langage JAVA
Plan
Présentation des Concepts
Encapsulation
Héritage
Redéfinition
Surcharge
Polymorphisme
7
Linda OUERFELLI & Meherzia LAGHA
01/04/2010Cours POO & Langage JAVA
Généralités
Structurée
Modulaire
Procédurale
Évènementielle
"Sauvage"
Parallèle
…………………..
8
Linda OUERFELLI & Meherzia LAGHA
Origines
Langages Bas niveauEx: langage binaire, langage assembleur
Début des Années 50
Langage de plus haut niveauEx: Fortran,
Cobol
Fin des années 50 début des
années 60
Langages de programmation
structuréeEx: Pascal, C
Années 70
Langage orientées Objet
Ex: Java, C++
Années 80…
01/04/2010Cours POO & Langage JAVA
9
Linda OUERFELLI & Meherzia LAGHA
Origines
En langage C
Suite d’instructions organisées en une collection de fonctions qui s’appellent
01/04/2010Cours POO & Langage JAVA
Main----------------------------------
F2------------------------------------------------------------------------------------------------
F3--------------------------------------------------------------------------------------------------
F4---------------------------------------------------------------------------
F1---------------------------------------------------
Programmation Orientée Objet
10
Linda OUERFELLI & Meherzia LAGHA
Origines
01/04/2010Cours POO & Langage JAVA
Procédures, fonctions Objets
Programmation Structurée Programmation Objet
Cours POO & Langage JAVA11
Linda OUERFELLI & Meherzia LAGHA
Définitions
Objet
Entité abstraite définie par son état et son comportement
VéhiculeMaisonPersonneTableRectangle……………
Exemples
01/04/2010
Cours POO & Langage JAVA12
Linda OUERFELLI & Meherzia LAGHA
Définitions
Attribut
Propriété
Exemple
Objet: PersonneAttributs: Numéro CINNomAgeAdresseTailleProfession………….
01/04/2010
Cours POO & Langage JAVA13
Linda OUERFELLI & Meherzia LAGHA
Classe
01/04/2010
Personne1{ nom:Mohamed;Prénom: Ali;Age: 23 ans}
Personne2{ nom:Sami;prénom: Laabidi;age: 45ans}
classe Personne{Attributs:NomPrénomAge
Répond aux requêtes:Quel est son prénom?Quel est son nomQuel est son âge?
Opérations:Modifier le nomModifier le prénomModifier l’âge}
Personne3{ nom: Mahdi;prénom: Cherif;age: 60ans}
Cours POO & Langage JAVA14
Linda OUERFELLI & Meherzia LAGHA
01/04/2010
Méthode
Personne1{ nom:Mohamed;Prénom: Ali;Age: 23 ans}
Quel est le nom de Personne1?
Les accesseurs
Mohamed
Les modificateurs
Personne1{ nom:Mohamed;Prénom: Ali;Age: 23 ans 26 ans}
Age=26 ans
Cours POO & Langage JAVA15
Linda OUERFELLI & Meherzia LAGHA
JAVA: Histoire
01/04/2010
1991
•Présentation d’OAK
1992
•Construction PDA (Star 7)
1993
•Lancement de MOSAIC
•Adaptation d’OAK à internet
1994
•Renommé JAVA
1995
•Navigateur Hot JAVA
•Sortie JDK 1.0 B
Cours POO & Langage JAVA16
Linda OUERFELLI & Meherzia LAGHA
JAVA: Histoire
01/04/2010
1996
•Animation JAVA pour les pages web
1998
•Sortie de la plateforme JAVA 2
2002
•Sortie JDK 1.4
2006
•Passage sous libre licence
•Sortie JAVA 6
Cours POO & Langage JAVA17
Linda OUERFELLI & Meherzia LAGHA
01/04/2010
JAVA: Caractéristiques
JAVA
Orienté Objet
Simple
Fortement typé
Gère la mémoire
Sûr
Économe
Multitâches
Interprété
Portable
Cours POO & Langage JAVA18
Linda OUERFELLI & Meherzia LAGHA
01/04/2010
JAVA: SyntaxeConvention de codage
Un nom de classe ou interface doit commencer par une majuscule.
Ex: classe Point
Un nom d’attribut doit commencer par une minuscule.
Ex: loopCounter
Une constante s’écrit en majuscules.
Ex: PI JAVA est sensible à la casse.Ne pas utilisé les noms réservés comme noms de variables ou
noms de classes.
Cours POO & Langage JAVA19
Linda OUERFELLI & Meherzia LAGHA
01/04/2010
JAVA: SyntaxeLes commentaires
Sur plusieurs lignes
Sur une seule ligne
Commentaire Javadoc
Cours POO & Langage JAVA20
Linda OUERFELLI & Meherzia LAGHA
Nom de la variableType
01/04/2010
JAVA: SyntaxeDéclaration des variables
La déclaration et l’initialisation d’une variable peut se faire en une seule ligne.
Ex: int i = 0;
La déclaration et l’initialisation d’une variable peut se faire sur plusieurs lignes.
Ex: String chaine;chaine = "bonjour";
La déclaration de plusieurs variables en même temps.
Ex: int i = 0, j = 3;
int i = 0;
Cours POO & Langage JAVA21
Linda OUERFELLI & Meherzia LAGHA
01/04/2010
JAVA: SyntaxeLes types des variables
byte short int long
Taille (en bits) 8 16 32 64
Intervalle de valeurs
-128 … 127 -32768 … 32767
-231 … 231-1 -263 … 263-1
float double
Taille (en bits) 32 64
Exemple 4.2f 4.2
Les types numériques entiers
Les types numériques flottants
Cours POO & Langage JAVA22
Linda OUERFELLI & Meherzia LAGHA
01/04/2010
JAVA: SyntaxeLes types des variables
Le type booléen
Le type caractère
peut prendre deux valeurs
true
false
Ex: boolean trouve = true;
Permet de gérer les caractères. Un caractère est placé entre simples quottes.
Ex: char unChar = ‘A’;
Cours POO & Langage JAVA23
Linda OUERFELLI & Meherzia LAGHA
01/04/2010
JAVA: SyntaxeLes types des variables
Le type chaîne de caractères
Comme son nom l’indique, ce type permet de gérer les chaîne de caractères. Il s’agit d’une classe donc elle intègre des méthodes permettant d’opérer sur la chaîne. Une chaîne est placée entre doubles quottes.
Ex: String chaine = " Bonjour ";
Cours POO & Langage JAVA24
Linda OUERFELLI & Meherzia LAGHA
01/04/2010
JAVA: SyntaxeLes opérateurs
D’affectation
Opérateur Exemple
= i = 90
+= i += 20
-= i -= 10
*= i *= 2.5
/= i /= 10
%= i %= 10
^= i ^= 2
Résultat
i = 90
i = 100
i = 25
i = 25
i = 110
i = 250
i = 5
Cours POO & Langage JAVA25
Linda OUERFELLI & Meherzia LAGHA
01/04/2010
JAVA: SyntaxeLes opérateurs
De comparaison
Opérateur Signification
x > y Strictement supérieur
x < y Strictement inférieur
x >= y Supérieur ou égal
x <= y Inférieur ou égal
x == y Egalité
x != y Différent
Opérateur Signification
x & y ET binaire
x ^ y OU exclusif binaire
x | y OU binaire
x && y ET logique
x || y OU logique
x ? y : z Opérateur conditionnel
Cours POO & Langage JAVA26
Linda OUERFELLI & Meherzia LAGHA
01/04/2010
JAVA: SyntaxeLes opérateurs
De transtypage ou de cast
implicites pas de perte d’information
explicites passage d’un type donné vers un autre moins précis
Cours POO & Langage JAVA27
Linda OUERFELLI & Meherzia LAGHA
01/04/2010
JAVA: SyntaxeLes structures de contrôle
Les boucles
while (boolean) {
…// bloc d’instructions…
}
do {
…// bloc d’instructions…
} while (boolean)
Cours POO & Langage JAVA28
Linda OUERFELLI & Meherzia LAGHA
01/04/2010
JAVA: SyntaxeLes structures de contrôle
Les boucles
for (initialisation; condition; modification) {
…// bloc d’instructions…
} Exemple: for (i = 0; i < 10; i++) {…} for (int j = 10; j > 0; j - -) {…} for ( ; ; ) {…}
Cours POO & Langage JAVA29
Linda OUERFELLI & Meherzia LAGHA
01/04/2010
JAVA: SyntaxeLes structures de contrôle
Les branchements conditionnels
if (boolean) {…
} else if (boolean) {…
} else {…
}
switch (variable){
case argument:…;
break;
case argument:…;
break;
default: …;}
Cours POO & Langage JAVA30
Linda OUERFELLI & Meherzia LAGHA
Modificateur
Nom de la classe
public class Personne {private String nom;private String prenom;private int age;… // autres attributs
public Personne () {nom = " ";prenom = " ";age = 0;
}public String getNom(){
return this.nom;}… // autres méthodes
}01/04/2010
JAVA: SyntaxeDéclaration de classe
Déclaration des attributs
Définition des méthodes
Cours POO & Langage JAVA32
Linda OUERFELLI & Meherzia LAGHA
public class Personne {private String nom;private String prenom;private int age;
public Personne () {nom = " ";prenom = " ";age = 0;
}public String getNom(){
return this.nom;
}
01/04/2010
JAVA: SyntaxeExemple de classe public void setNom(String n){
nom = n;
}public String getPrenom(){
return this.prenom;}public void setPrenom(String p){
prenom = p;
}public int getAge (){
return this.age;}public void setAge(int a){
age = a;
}
Cours POO & Langage JAVA33
Linda OUERFELLI & Meherzia LAGHA
public Static void main(String[] args){
Personne a = new Personne();a.setNom ("Ben Foulen " );a.setPrenom (" Foulen ");a.setAge(25);System.out.println(" Le nom est " + a.getNom()+ " , le prénom est
" + a.getPrenom() + " et l’âge est " + a.getAge() + " ans. ");
}}
01/04/2010
JAVA: SyntaxeExemple de classe
Le nom est Ben Foulen, le prénom est Foulen et l’âge est 25 ans.
Cours POO & Langage JAVA34
Linda OUERFELLI & Meherzia LAGHA
Concepts de Base: Encapsulation
Public Private
Classe La classe peut être utilisée dans n’importe quelle classe
Attribut L’attribut accessible directement depuis le code de n’importe quelle classe
Attribut accessible uniquement dans le code de la classe qui le définit
Méthode Méthode pouvant être invoqué depuis le code de n’importe quelle classe
Méthode utilisable uniquement dans le code de la classe qui la définit
01/04/2010
Cours POO & Langage JAVA35
Linda OUERFELLI & Meherzia LAGHA
Concepts de Base: Héritageclasse Etudiant{Attributs:NomPrénomAgeFilièreEtablissementRequêtes:Quel est son nom?Quel est son prénom?Quel est son âge?Quelle est son adresse?Quelle est sa filière?Opérations:Modifier le nomModifier le prénomModifier l’âgeAfficherInfosModifier la filière……….}
01/04/2010
classe Personne{Attributs:NomPrénomAge
Requêtes:Quel est son prénom?Quel est son nomQuel est son âge?
Opérations:Modifier le nomModifier le prénomModifier l’âgeAfiicherInfos}
Objet Etudiant Objet PersonneExtends
Cours POO & Langage JAVA36
Linda OUERFELLI & Meherzia LAGHA
Concepts de Base: Redéfinition
01/04/2010
class Personne{ …………….Public void AfficherInfos(){System.out.println(" Mon nom est "+nom); System.out.println(" Mon prénom est "+prenom); System.out.println(" J’ai "+ age+ "ans ");}………………………..}//Fin classe
Public void AfficherInfos(){System.out.println(" Mon nom est "+nom); System.out.println(" Mon prénom est "+prenom); System.out.println(" J’ai "+ age+ "ans ");}
Cours POO & Langage JAVA37
Linda OUERFELLI & Meherzia LAGHA
Concepts de Base: Redéfinition
01/04/2010
On peut aussi redéfinir les attributs publiques hérités
public class Produit{/ /Déclaration des attributs public float tva;…………}
Public class ProduitAlimentaire extends Produit{/ /Déclaration des attributs public int tva;………….}
Il est déconseillé de redéfinir les attributs
Redéfinition de l’attribut tva
Cours POO & Langage JAVA38
Linda OUERFELLI & Meherzia LAGHA
Concepts de Base: Surcharge
01/04/2010
public class Personne{………… public void AfficherInfos()
{System.out.println(" Mon nom est "+nom); System.out.println(" Mon prénom est "+prenom); System.out.println(" J’ai "+ age+ "ans ");}
public void AfficherInfos(int CIN){ return("CIN:" +CIN+ "Mon nom est "+nom+ Prenom+ ", et j’ai "+age);}}//Fin classe
Cours POO & Langage JAVA39
Linda OUERFELLI & Meherzia LAGHA
Question
01/04/2010
public class Produit{ private double prix; public double QuelPrix() {return prix;} ….}
public class ProduitAlimentaire extends Produit{ public double QuelPrix(int qtt) {return (prix*qtt);}}
public class ProduitPharmaceutique extends Produit{ public double QuelPrix() {return (super.prix*0.2);}}
Surcharge
Redéfinition
Cours POO & Langage JAVA40
Linda OUERFELLI & Meherzia LAGHA
01/04/2010
Concepts de Base: Polymorphisme
Est la possibilité pour une méthode ou fonction d’être appelée dans des contextes différents selon la situation.
public class Mere {
public void meth(){System.out.println(" classe mère ");
}}
Cours POO & Langage JAVA41
Linda OUERFELLI & Meherzia LAGHA
01/04/2010
Concepts de Base: Polymorphisme
public class Fille extends Mere {
public void meth(){System.out.println(" classe fille");
}
public Static void main(String[] args){Mere m = new Mere();m.meth();Fille f = new Fille();f.meth();Mere m1 = f;m1.meth();
}}
classe mèreclasse filleclasse fille