40
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]

Cours Programmation Orientée Objet et Langage Java

  • Upload
    limei

  • View
    112

  • Download
    3

Embed Size (px)

DESCRIPTION

Institut supérieur de gestion de Tunis 2009-2010. Cours Programmation Orientée Objet et Langage Java. Equipe Pédagogique:. Objectifs. Présenter le langage Java. Introduire les notions de base de la Programmation Orientée Objet. Présenter l’intérêt de la Programmation orientée Objet. - PowerPoint PPT Presentation

Citation preview

Page 1: Cours Programmation Orientée Objet et Langage Java

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]

Page 2: Cours Programmation Orientée Objet et Langage Java

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

Page 3: Cours Programmation Orientée Objet et 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

Page 4: Cours Programmation Orientée Objet et 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

Page 5: Cours Programmation Orientée Objet et Langage Java

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

Page 6: Cours Programmation Orientée Objet et Langage Java

6

Linda OUERFELLI & Meherzia LAGHA

01/04/2010Cours POO & Langage JAVA

Plan

Présentation des Concepts

Encapsulation

Héritage

Redéfinition

Surcharge

Polymorphisme

Page 7: Cours Programmation Orientée Objet et Langage Java

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

…………………..

Page 8: Cours Programmation Orientée Objet et Langage Java

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

Page 9: Cours Programmation Orientée Objet et 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

Page 10: Cours Programmation Orientée Objet et Langage Java

10

Linda OUERFELLI & Meherzia LAGHA

Origines

01/04/2010Cours POO & Langage JAVA

Procédures, fonctions Objets

Programmation Structurée Programmation Objet

Page 11: Cours Programmation Orientée Objet et Langage Java

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

Page 12: Cours Programmation Orientée Objet et Langage Java

Cours POO & Langage JAVA12

Linda OUERFELLI & Meherzia LAGHA

Définitions

Attribut

Propriété

Exemple

Objet: PersonneAttributs: Numéro CINNomAgeAdresseTailleProfession………….

01/04/2010

Page 13: Cours Programmation Orientée Objet et Langage Java

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}

Page 14: Cours Programmation Orientée Objet et Langage Java

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

Page 15: Cours Programmation Orientée Objet et Langage Java

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

Page 16: Cours Programmation Orientée Objet et Langage Java

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

Page 17: Cours Programmation Orientée Objet et Langage Java

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

Page 18: Cours Programmation Orientée Objet et Langage Java

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.

Page 19: Cours Programmation Orientée Objet et Langage Java

Cours POO & Langage JAVA19

Linda OUERFELLI & Meherzia LAGHA

01/04/2010

JAVA: SyntaxeLes commentaires

Sur plusieurs lignes

Sur une seule ligne

Commentaire Javadoc

Page 20: Cours Programmation Orientée Objet et Langage Java

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;

Page 21: Cours Programmation Orientée Objet et Langage Java

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

Page 22: Cours Programmation Orientée Objet et Langage Java

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’;

Page 23: Cours Programmation Orientée Objet et Langage Java

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 ";

Page 24: Cours Programmation Orientée Objet et Langage Java

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

Page 25: Cours Programmation Orientée Objet et Langage Java

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

Page 26: Cours Programmation Orientée Objet et Langage Java

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

Page 27: Cours Programmation Orientée Objet et Langage Java

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)

Page 28: Cours Programmation Orientée Objet et Langage Java

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 ( ; ; ) {…}

Page 29: Cours Programmation Orientée Objet et Langage Java

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: …;}

Page 30: Cours Programmation Orientée Objet et Langage Java

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

Page 31: Cours Programmation Orientée Objet et Langage Java

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;

}

Page 32: Cours Programmation Orientée Objet et Langage Java

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.

Page 33: Cours Programmation Orientée Objet et Langage Java

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

Page 34: Cours Programmation Orientée Objet et Langage Java

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

Page 35: Cours Programmation Orientée Objet et Langage Java

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 ");}

Page 36: Cours Programmation Orientée Objet et Langage Java

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

Page 37: Cours Programmation Orientée Objet et Langage Java

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

Page 38: Cours Programmation Orientée Objet et Langage Java

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

Page 39: Cours Programmation Orientée Objet et Langage Java

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 ");

}}

Page 40: Cours Programmation Orientée Objet et Langage Java

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