1 Les concepts de la Programmation Orientée Objet en Java Prawee Sriplakich Pra

1 Les concepts de la Programmation Orientée Objet en Java Prawee Sriplakich Prawee.Sriplakich@lip6.fr Ce support de cours est disponible sur http://www-src.lip6.fr/homepages/Prawee.Sriplakich/ mise a jour : 18/09/2006 2 Programmation Orientée Objet, université Paris X, Prawee Sriplakich Organisation 6h 8. Manipulation des documents XML avec Java 6h 7. Threads et synchronisation 6h 6. Manipulation des entrées/sorties 6h 5. Tableaux, collections et Map 8h 4. Concepts POO (avancés) 4h 1. Introduction à la technologie Java 2. Concepts POO (basiques) 3. Environnements de Développement en Java. 3 Programmation Orientée Objet, université Paris X, Prawee Sriplakich Evaluation  50% Contrôle continu  Les TPs suivants seront évalués :  4.3 : Réalisation des interfaces du mécanisme d'événements  6.1 : Flux de données et sérialisation  8.2 : Sérialisation et désétatisation d’objets en XML avec DOM  Travail en binôme  Les critères d’évaluation sont :  L’explication sur le lancement du programme.  La correction du programme.  Le scénario de test couvrant toutes les fonctionnalités du programme  La lisibilité du code et le commentaire sur le code.  Le Java Doc et le document expliquant l’architecture globale du programme.  50% Examen (2h)  Les documents du cours et des notes personnelles sont autorisés. 4 1. Introduction à la technologie « Java » Java et une plateforme d'entreprise 5 Programmation Orientée Objet, université Paris X, Prawee Sriplakich Qu’est ce que « Java » ?  Un langage de programmation interprété et compilé.  Java code  Byte code  Byte code est interprété par JVM (Java Virtual Machine)  Les applications Java s'exécutent sur quel type de machines ?  Tous les types de matériels disposant d'une JVM 6 Programmation Orientée Objet, université Paris X, Prawee Sriplakich Comment cela fonctionne t-il ? La JVM fournit un environnement d'exécution homogène (malgré l'hétérogénéité des OS/ matériels) 7 Programmation Orientée Objet, université Paris X, Prawee Sriplakich Le « Java Development Kit »  Java est un langage de programmation.  Le « Java Development Kit » est une boite à outils :  un compilateur java  une machine virtuelle « JVM »  un ensemble de bibliothèques (API) pour faciliter la programmation.  Ex. Gestion d'E/S (ficher, réseaux), les collections (liste, ensemble) , IHM … 8 Programmation Orientée Objet, université Paris X, Prawee Sriplakich Applets et applications  Deux types de développements sont possibles :  les Applets Un programme s'exécutant au sein d'un navigateur web. Téléchargeable en même temps qu'une page web  Pas besoin d'installation Fonctionnalité limité (par mesure de sécurité)  les applications Un programme standard s'exécutant sur la JVM. Moins de restriction (Les utilisateurs doivent faire confiance avant de l'exécuter) 9 Programmation Orientée Objet, université Paris X, Prawee Sriplakich La plate-forme entreprise « java » • Un grand nombre de bibliothèques ont été développées autour du langage Java • Elles offrent des fonctionnalités communes des applications d'entreprises Ex. Gestion de web, de base de données, de transactions etc. Simplicité du développement des applications complexes • La plateforme concurrence : .NET 10 2. Concepts POO (basiques) Contenu: Class, Objet, Instanciation, Attribut, Méthode, Message (Invocation), Cycle de vie d'objets, Constructeur, Package 11 Programmation Orientée Objet, université Paris X, Prawee Sriplakich Class et objet  Objet  représente une entité dans le monde réel ou un élément du programme.  Possède des états et des comportements  Ex. un objet "Télévision"  ses états = { allumé/éteint, chaîne courante, volume de son },  ses comportements = { allumer, changer de chaîne, changer de volume de son, éteindre }  Class  Un objet est une instance d'une classe  la classe décrit l'objet.  Description des états  des attributs de la classe  Description des comportements  des méthodes de la classe. 12 Programmation Orientée Objet, université Paris X, Prawee Sriplakich Exemple d'une class public class Television { // Etat private int volume; private int chaine; private boolean estAllume; // Comportements public void allumer() { … } public void eteindre() { … } public void augmenterVolume() { … } public void reduireVolume() { … } public void changerChaine(int _chaine) { … } } NB. Par convention, les noms des classes commencent par majuscule ceux des attributs/ méthodes commence par minuscule 13 Programmation Orientée Objet, université Paris X, Prawee Sriplakich Instanciation Class Television boolean estAllume int volume int chaine Objets estAllume: true volume: 5 chaine: 1 estAllume: true volume: 6 chaine: 2 estAllume: false volume: 0 chaine: 0  Une classe peut être réutilisée pour instancier plusieurs objets 14 Programmation Orientée Objet, université Paris X, Prawee Sriplakich Question  Définir une classe représentant des voitures.  Les états des objets voiture doivent décrire  Démarré ou non, position de boite de vitesse, vitesse…  niveau d'essence, …  Les comportements d'une voiture incluent:  Démarrer, arrêter  Changer boite de vitesse  Accélérer, ralentir  Tourner (selon le dégré spécifié) 15 Programmation Orientée Objet, université Paris X, Prawee Sriplakich Solution public class voiture { private boolean estDemarre; private int posBoiteVitesse; private int vitesse; private int niveauEssence; public void demarrer() { … } public void arreter() { … } public void setPosBoiteVitesse(int pos) { … } public void accelerer() { … } public void ralentir() { … } public void tourner(int degre) { … } } 16 Programmation Orientée Objet, université Paris X, Prawee Sriplakich Le typage d'attributs (et variables)  Un attribut peut être typé :  par une classe (Sa valeur est donc une référence vers un objet instance de cette classe)  par un type primitif:  boolean,  short, int, long,  float, double  byte, char.  Par un tableau de type primitif, ou de type classe  Ex. int[] att1; Television[] att2;  Un array est un objet  NB. Une chaine de caractères est un objet instance de la class String 17 Programmation Orientée Objet, université Paris X, Prawee Sriplakich Méthodes  Le corps d'une méthode contient des instructions comme la programmation classique.  Il peut accéder aux attributs de la classe  Ex. public void changerChaine(int _chaine) { if(_chaine<0 || _chaine>108) { System.out.println("chaîne invalide "); } else { chaine = _chaine; // Accès à l'attribut chaine } } 18 Programmation Orientée Objet, université Paris X, Prawee Sriplakich Attribut "this"  Lorsque des variables locales portent les mêmes noms que les attributs de la classe, vous devez utiliser l'attribut "this" pour les distinguer.  Ex. public void changerChaine(int chaine) { if(chaine<0 || chaine>108) { System.out.println("chaîne invalide "); } else { this.chaine = chaine; // this.chaine signifie l'attribut de la classe } } 19 Programmation Orientée Objet, université Paris X, Prawee Sriplakich Interaction entre objets: messages  Lors qu'un programme s'exécute, il comporte d'un ensemble d'objets et ces objets échangent des messages.  Echange de messages = invocation d'une méthode  Les paramètres sont envoyé dans le message. un telecommande une television changerDeChaine(3) 20 Programmation Orientée Objet, université Paris X, Prawee Sriplakich Interaction entre objets : via référence entre objets  Afin qu'un objet A puisse invoquer une méthode de l'objet B, A doit avoir une référence vers B.  Ex. public class Telecommande { Television t; // une référence (un attribut) ……. public void boutonChaineAppuye(int boutonNo) { t.changerChaine(boutonNo); // invocation } } 21 Programmation Orientée Objet, université Paris X, Prawee Sriplakich Question  Définir une classe Messenger  Un objet Messenger représente une messagerie d'un utilisateur.  Il porte un identifiant, celui de l'utilisateur  Il référence des objets Messenger auxquels il peut envoyer un message.  On peut lui ajouter un contact.  Il accepte un texte de l'utilisateur et le diffuse aux autres.  Lors de la réception du texte diffusé, il l'affiche sur l'écran pierre julien julie 22 Programmation Orientée Objet, université Paris X, Prawee Sriplakich Solution import java.util.Vector; public class Messenger { private String idUtilisateur; private Vector<Messenger> contacts = new Vector<Messenger>(); public void ajouterContact(Messenger contact) { contacts.add(contact) } public void diffuser(String texte) { for(int i=0; i< contacts.size(); i++) { Messenger contact = contacts.get(i); contact.recevoir(texte); } } public void recevoir(String texte) { System.out.println(idUtilisateur + " recoit: " + texte); } } 23 Programmation Orientée Objet, université Paris X, Prawee Sriplakich Comment commencer le programme: Méthode main  Un programme Java = un ensemble de classes.  Une méthode main doit être définie dans une des classes.  Elle doit avoir la signature:  public static void main(String[] args)  Le tableau <<args>> contient des paramètres passés par la commande d'exécution d'application  Ex. java MyAppli p1 p2 p3  args est donc {"p1", "p2", "p3"} 24 Programmation Orientée Objet, université Paris X, Prawee Sriplakich Un exemple de la classe main public class ClasseMain { public static void main(String[] args) { // creation d'objets Voiture v = new Voiture(); Personne p = new Personne(); // déclancher interaction entre objets p.conduire(v); } }  En général, la méthode main sert à:  Configurer le programme: (créer des objets initiaux du programme)  Déclencher l'interaction entre ces objets 25 Programmation Orientée Objet, université Paris X, Prawee Sriplakich Cycle de vie d'objets : création  Pendant l'exécution uploads/S4/ java.pdf

  • 21
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Mai 17, 2022
  • Catégorie Law / Droit
  • Langue French
  • Taille du fichier 1.3314MB