Programmation Orientée Objet Présent en C++, Java, Objective-C, PHP, C#.net, ruby, python etc... Exemple d'un programme orienté objet : Programme « pong » Objet Barre Représente la barre du J1. Objet Jeu Gère le score etc... Objet Barre Représente la barre du J2. Objet Balle Représente la balle.
Classes & Instances Plan Produits
Classes & Instances Propriétés Méthodes Classe Texte Algorithme Classe Couleur Variables : Jean : EtreHumain Sophie : EtreHumain Marcel : EtreHumain Maison : Chose PieceDe5Centimes : Chose Classe Chose Classe Direction Classe EtreHumain Propriétés - estHomme : booléen - age : entier - nom : Texte - couleurCheveux : Couleur DEBUT PROGRAMME Jean.age = 24 Sophie.estHomme = false Marcel.marcher() Marcel.prendre(PieceDe5Centimes) Marcel.age = 25 Sophie.regarderVers(Direction(5, -1)) FIN PROGRAMME Méthodes - marcher() - dormir() - prendre(Chose chose) - regarder(Chose chose) - regarderVers(Direction dir)
Constructeurs & Destructeurs Dans l'algorithme : Classe Temps Instanciation (création d'une variable) Constructeur de la classe Utilisation Méthode 1 Méthode 2 Méthode 3 Destruction Destructeur de la classe
L'encapsulation Utilisateur Instanciation Utilisation Destruction temps Instanciation Utilisation Destruction Instance Partie visible (publique), connue de l'utilisateur. Propriétés Méthodes Partie invisible (privée), inconnue de l'utilisateur. Propriétés Méthodes
Exemple : Une interface graphique Fenêtre Groupe Texte Graphique Menu déroulant Bouton Poussoir Case à cocher Élement Complexe
L'héritage Elément Graphique est classe mère de Bouton Poussoir Conteneur (abstrait) Texte Graphique Case à cocher Fenêtre Menu déroulant Groupe
L'héritage Propriétés Méthodes Propriétés Méthodes Classe mère (ElementGraphique) Propriétés X, Y : entier W, H : entier Cache : booléen Méthodes bouger(x, y) changerTaille(w, h) recupererLongeur() : entier Est classe mère de Classe fille (TexteGraphique) Propriétés X, Y : entier W, H : entier Parent : ElementGraphique texteAffiche : Texte couleurTexte : Couleur tailleTexte : flottant Méthodes bouger(x, y) changerTaille(w, h) recupererLongeur() : entier changerTexte(texte, couleur, taille) recupererTexte() : Texte ajouterTexte(texte)
Programmation Orientée Prototype Présent en JavaScript, ActionScript, Perl 6 etc... Pas de classes. Un objet possède des propriétés et méthodes propres à lui-même. Un objet qui est prototype d'un autre est comparable à la fois à l'instanciation et à l'héritage. Tout objet est dynamique et peut changer ses propriétés et méthodes (contre uniquement les valeures des propriétés en P. Orientée Classes).
Conclusion Sources : - Wikipedia. - Connaissances personnelles. Différents codes sources & autres seront disponibles dans la Dropbox ou sur mon site dans les prochains jours/semaines. (Java/Processing & C++)