460 likes | 899 Views
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.
E N D
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 Cours POO & Langage JAVA
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/programmationOO.pdf, (consulté le 22/33/2010) Cours POO & Langage JAVA
Bibliographie • 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 Cours POO & Langage JAVA
Plan Introduction Généralités Origines de la POO Définitions Les ABC du langage JAVA Histoire Caractéristiques Syntaxe Cours POO & Langage JAVA
Plan Présentation des Concepts Encapsulation Héritage Redéfinition Surcharge Polymorphisme Cours POO & Langage JAVA
Généralités • Structurée • Modulaire • Procédurale • Évènementielle • "Sauvage" • Parallèle • ………………….. Cours POO & Langage JAVA
Origines Fin des années 50 début des années 60 Début des Années 50 Années 70 Années 80 … Langages Bas niveau Ex: langage binaire, langage assembleur Langage de plus haut niveau Ex: Fortran, Cobol Langages de programmation structurée Ex: Pascal, C Langage orientées Objet Ex: Java, C++ Cours POO & Langage JAVA
Origines En langage C Suite d’instructions organisées en une collection de fonctions qui s’appellent Programmation Orientée Objet Main -------------- ------------- ------- F2 ----------------------- ------------------------ ----------------------- ----------------- --------- F3 ---------------------- ------------------------- ------------------------ --------------------------- F4 -------------------- -------------------------- ----------------- ------------ F1 --------------------- ------------------------------ Cours POO & Langage JAVA
Origines Procédures, fonctions Objets Programmation Structurée Programmation Objet Cours POO & Langage JAVA
Définitions Objet Entité abstraite définie par son état et son comportement Exemples Véhicule Maison Personne Table Rectangle …………… Cours POO & Langage JAVA
Définitions Attribut Propriété Exemple Objet: Personne Attributs: Numéro CIN Nom Age Adresse Taille Profession …………. Cours POO & Langage JAVA
Classe classe Personne{ Attributs: Nom Prénom Age Répond aux requêtes: Quel est son prénom? Quel est son nom Quel est son âge? Opérations: Modifier le nom Modifier le prénom Modifier l’âge } Personne1{ nom:Mohamed; Prénom: Ali; Age: 23 ans} Personne2{ nom:Sami; prénom: Laabidi; age: 45ans} Personne3{ nom: Mahdi; prénom: Cherif; age: 60ans} Cours POO & Langage JAVA
Méthode Les accesseurs Personne1{ nom:Mohamed; Prénom: Ali; Age: 23 ans} Quel est le nom de Personne1? Mohamed Les modificateurs Personne1{ nom:Mohamed; Prénom: Ali; Age: 23 ans 26 ans} Age=26 ans Cours POO & Langage JAVA
JAVA: Histoire Cours POO & Langage JAVA
JAVA: Histoire Cours POO & Langage JAVA
JAVA: Caractéristiques Orienté Objet Portable Simple Interprété JAVA Multitâches Fortement typé Économe Gère la mémoire Sûr Cours POO & Langage JAVA
JAVA: Syntaxe Convention 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 JAVA
JAVA: Syntaxe Les commentaires • Sur plusieurs lignes • Sur une seule ligne • Commentaire Javadoc Cours POO & Langage JAVA
JAVA: Syntaxe Déclaration des variables int i = 0; Type Nom dela variable 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; Cours POO & Langage JAVA
JAVA: Syntaxe Les types des variables Les types numériques entiers Les types numériques flottants Cours POO & Langage JAVA
JAVA: Syntaxe Les types des variables Le type booléen true • peut prendre deux valeurs Ex: boolean trouve = true; false Le type caractère Ex: char unChar = ‘A’; • Permet de gérer les caractères. • Un caractère est placé entre simples quottes. Cours POO & Langage JAVA
JAVA: Syntaxe Les 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 JAVA
JAVA: Syntaxe Les opérateurs D’affectation Cours POO & Langage JAVA
JAVA: Syntaxe Les opérateurs De comparaison Cours POO & Langage JAVA
JAVA: Syntaxe Les 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 JAVA
JAVA: Syntaxe Les structures de contrôle Les boucles while (boolean) { … // bloc d’instructions … } do { … // bloc d’instructions … } while (boolean) Cours POO & Langage JAVA
JAVA: Syntaxe Les 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 JAVA
JAVA: Syntaxe Les structures de contrôle Les branchements conditionnels switch (variable) { case argument: …; break; case argument: …; break; default: …; } if (boolean) { … } else if (boolean) { … } else { … } Cours POO & Langage JAVA
JAVA: Syntaxe Nom de la classe Déclaration de 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 } Modificateur Déclaration des attributs Définition des méthodes Cours POO & Langage JAVA
JAVA: Syntaxe Exemple de classe • public voidsetNom(String n){ • nom = n; • } • public String getPrenom(){ • return this.prenom; • } • public voidsetPrenom(String p){ • prenom = p; • } • public intgetAge (){ • return this.age; • } • public voidsetAge(int a){ • age = a; • } public class Personne { private String nom; private String prenom; privateintage; public Personne () { nom = " "; prenom = " "; age = 0; } public String getNom(){ return this.nom; } Cours POO & Langage JAVA
JAVA: Syntaxe Exemple de classe public Staticvoid 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. "); } } Le nom est Ben Foulen, le prénom est Foulen et l’âge est 25 ans. Cours POO & Langage JAVA
Concepts de Base: Encapsulation Cours POO & Langage JAVA
Concepts de Base: Héritage classe Etudiant { Attributs: Nom Prénom Age Filière Etablissement Requê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 nom Modifier le prénom Modifier l’âge AfficherInfos Modifier la filière ……….} classe Personne{ Attributs: Nom Prénom Age Requêtes: Quel est son prénom? Quel est son nom Quel est son âge? Opérations: Modifier le nom Modifier le prénom Modifier l’âge AfiicherInfos } Objet Etudiant Objet Personne Extends Cours POO & Langage JAVA
Concepts de Base: Redéfinition class Personne { ……………. Public voidAfficherInfos() {System.out.println(" Mon nom est "+nom); System.out.println(" Mon prénom est "+prenom); System.out.println(" J’ai "+ age+ "ans "); } ……………………….. }//Fin classe class Etudiant extends Personne {…………………….. Public voidAfficherInfos() {System.out.println(" Mon nom est "+nom); System.out.println(" Mon prénom est "+prenom); System.out.println(" J’ai "+ age+ "ans "); System.out.println("Ma filière est "+filiere); } ………………………..}//Fin classe Public voidAfficherInfos() {System.out.println(" Mon nom est "+nom); System.out.println(" Mon prénom est "+prenom); System.out.println(" J’ai "+ age+ "ans ");} super.AfficherInfos(); Cours POO & Langage JAVA
Concepts de Base: Redéfinition On peut aussi redéfinir les attributs publiques hérités Il est déconseillé de redéfinir les attributs public class Produit {/ /Déclaration des attributs public float tva; ………… } Public class ProduitAlimentaireextends Produit {/ /Déclaration des attributs public int tva; …………. } Redéfinition de l’attribut tva Cours POO & Langage JAVA
Concepts de Base: Surcharge public class Personne {………… public voidAfficherInfos() {System.out.println(" Mon nom est "+nom); System.out.println(" Mon prénom est "+prenom); System.out.println(" J’ai "+ age+ "ans "); } public voidAfficherInfos(int CIN) { return("CIN:" +CIN+ "Mon nom est "+nom+ Prenom+ ", et j’ai "+age);} }//Fin classe Cours POO & Langage JAVA
Question public class Produit { private double prix; public double QuelPrix() {return prix;} …. } public class ProduitAlimentaireextends Produit { public double QuelPrix(intqtt) {return (prix*qtt);} } Surcharge public class ProduitPharmaceutiqueextends Produit { public double QuelPrix() {return (super.prix*0.2);} } Redéfinition Cours POO & Langage JAVA
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 voidmeth(){ System.out.println(" classe mère "); } } Cours POO & Langage JAVA
Concepts de Base: Polymorphisme • public class Fille extendsMere { • public voidmeth(){ • System.out.println(" classe fille"); • } • public Staticvoid main(String[] args){ • Mere m = new Mere(); • m.meth(); • Fille f = new Fille(); • f.meth(); • Mere m1 = f; • m1.meth(); • } • } classe mère classe fille classe fille Cours POO & Langage JAVA