Introduction à la programmation II Veronica Diego Mercredi 13 avril 2005.

Slides:



Advertisements
Présentations similaires
La programmation orientée objet avec Java L3-MIAGE Plan
Advertisements

La classe String Attention ce n’est pas un type de base. Il s'agit d'une classe défini dans l’API Java (Dans le package java.lang) String s="aaa"; // s.
(Classes prédéfinies – API Java)
MIKHAYLOVA Vera Exposé Java principe de fonctionnement Lundi 17 mai 2004 DEUG 1ère année Science du langage Paris III.
TD 1 IJA Introduction Objet, méthode, attribut Classe, instance
Programmation Orientée Objet (POO)
INTRODUCTION.
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
Jérôme CUTRONA PHP objet Jérôme CUTRONA 01:08:01 Programmation Web
Introduction à la programmation (420-PK2-SL) cours 15 Gestion des applications Technologie de linformation (LEA.BW)
Leçon 3 : Héritage IUP 2 Génie Informatique
Introduction à la POO: Les classes vs les objets
Formation Microsoft® Office Access 2007
Chapitre III Héritage (début)
Principes de programmation (suite)
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Programmation orientée objet
Principes de la technologie orientée objets
JavaBeans Réalise par: EL KHADRAOUY TARIK AOUTIL SAFOWAN.
Concepts de base : la Classe Pour faire une comparaison simple, une classe serait a priori, une structure C avec des variables et des fonctions.
Initiation à la conception de systèmes d'information
Langage Oriente Objet Cours 4.
Principes de programmation (suite)
IFT1025, Programmation 2 Jian-Yun Nie
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
Les Classes les structures en C (struct) regroupent des variables : structuration de l'analyse mais problèmes de cohérence problèmes de sécurité d'accès.
Classes abstraites et Interfaces
1 Objectifs de ce cours (I21) Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde Résumé du cours précédent.
Langage Oriente Objet Cours 2.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 5 – Héritage, Interfaces et Listes génériques.
Structures de données IFT-2000
Manipulation de formulaires en Javascript
Les Fonctions. Définir une fonction Sections de code indépendantes que lon peut appeler à nimporte quel moment et dans nimporte quel ordre. Bout de code.
Introduction à la programmation I Fonctions Structures de contrôle Structures de données (arrays simples et indexés) Variables locales et globales.
Introduction au paradigme orienté-objet (suite)
1 IFT 6800 Atelier en Technologies dinformation Le langage de programmation Java chapitre 3 : Classes et Objects.
COURS DE PROGRAMMATION ORIENTEE OBJET :
Leçon 1 : notion dobjet IUP Génie Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
99 Réutilisation du code grâce à l'héritage. 9-2 Objectifs À la fin de ce cours, vous serez capables de : Définir l'héritage Utiliser l'héritage pour.
INF1101 Algorithmes et structures de données
PHP 2° PARTIE : FONCTIONS ET FORMULAIRE
(Vient du grec et signifie « Peut prendre plusieurs formes »)
Travaux Pratiques Représentation des connaissances
JavaScript Nécessaire Web.
LIFI-Java 2004 Séance du Mercredi 22 sept. Cours 3.
La notion de type revisitée en POO
Cours 61 6 La sécurité, Portée, Visibilité Programmer avec sécurité.
11/04/ L'héritage Cours 7 Cours 7.
Programmation objet La base.
Tutorat en bio-informatique
5ième Classe (Mercredi, 19 octobre) Prog CSI2572.
PHP 7° PARTIE : PROGRAMMATION OBJET
Tutorat en bio-informatique Le 14 novembre Au programme… Les objets –Propriétés (attributs) –Constructeurs –Méthodes.
C++ L’HERITAGE Fayçal BRAÏKI DUT INFORMATIQUE.
Réaliser par: Sadok Amel Cheboui hassiba
PHP objet Jérôme CUTRONA 10:13:27 Programmation Web
Les classes présenté par: RAHMOUNE RIME / ZEKRI SELMA.
Héritage H. Batatia. plan Notion (que signifie l’héritage) Ecriture en java Héritage multiple (interdit) Instanciation (partie propre et partie héritée)
Les classes Introduction aux Langages Orientés Objets
Cours 4 (14 octobre) Héritage. Chapitre III Héritage.
Héritage Conception par Objet et programmation Java
Campus-Booster ID : Copyright © SUPINFO. All rights reserved La programmation objet, un fondement de la programmation évènementielle.
Conception de Programmes - IUT de Paris - 1ère année Les classes Introduction Déclaration d’une classe Utilisation d’une classe Définition des.
Master 1 SIGLIS Jave Lecteur Stéphane Tallard Chapitre 5 – Correction TD.
Scénario Les scénarios permettent de modifier la position, taille … des calques au cours du temps. Son fonctionnement est très proche de celui de Macromedia.
LES CLASSES ET LES OBJETS
Transcription de la présentation:

Introduction à la programmation II Veronica Diego Mercredi 13 avril 2005

Sujets qui seront abordés : Introduction à la programmation orientée objet Les classes en Php 4 et 5 Les objets dans Php 4 et 5 Utilisation de librairies de classe

Introduction à la programmation orientée objet Avant la version 4 de php, la programmation orientée objet nétait pas proposée dans ce langage. Les programmeurs devaient donc se débrouiller pour organiser des fonctions de la manière la plus propre possible en essayant de les faire communiquer entre elles et de leurs faire partager des données sans pour autant rendre le code incompréhensible. Par rapport à C++ ou Java, Php faisait figure de langage « brouillon » avec lequel il était très difficile de développer du code réutilisable et maintenable facilement. La programmation orientée objet est né de ce genre de constat, dabord en 1972 avec SmallTalk, mais surtout en 1983, lorsque Bjarn Stroustrup mit au point une extension orientée objet du langage C : le C++. Depuis, les mettre mots en matière de programmation sont réutilisabilité et facilité de maintenance. Le code doit être organisé de façon clair et logique de manière à atteindre ces objectifs. La programmation objet fournit un cadre idéal à ce genre de réalisation, car elle permet une meilleure conceptualisation, elle rend le principe de fonctionnement dun programme plus « humain » en permettant de sabstraire totalement du code pour satteler à la tâche principale : trouver la solution à un problème.

Les classes Php 4 et 5 Définition : Une classe est un ensemble de variables et de fonctions. Utilisation : Une classe démarre toujours par le mot class suivit du nom de la classe. Ensuite, nous écrivons entre accolade ({ }) les listes des variables membres et celles des méthodes (l'ordre n'a aucune importance), de la même façon que nous définirions des variables et des fonctions.

Les classes Exemple : <?php //php 5 class Animal { // les trois caractéristiques dun animal public $type; public $nom; public $nourriture; // laction que lanimal peut effectuer function emettreSon(){ print("Le $this->type pousse son cri ! "); } ?> Note : en Php 4, il faudrait mettre "var" à la place de "public"

Les objets dans php 4 et 5 Un objet regroupe toutes les informations et actions disponibles pour une entité donnée. Les informations, que nous appelons indifféremment « attributs », « champs », « propriétés » ou encore « membres », sont matérialisées par des variables, tandis que les actions, que nous appelons « méthodes », sont matérialisées par des fonctions.

Les objets dans php 4 et 5 Pour comprendre la notion dobjet, prenons un exemple. Imaginons que nous souhaitons simuler un zoo et, plus précisément, le moment où le gardien vient nourrir chaque animal. Nous voulons, en outre, que chaque animal lance son cri lorsque le gardien le nourrit (le lion va rugir, le mouton bêler, etc.), nous voulons également que le gardien donne le bon type de nourriture à chaque animal.

Les objets dans php 4 et 5 Dans notre exemple, nous sommes en présence de deux objets : un gardien et un animal. Chacun des deux sera défini par ses caractéristiques propres et par les actions quil peut effectuer. Les caractéristiques du gardien seront par exemple son nom et son prénom, et celles de lanimal duquel il sapproche seront son genre (koala, lion…), son nom et la nourriture quil consomme.

Les objets dans php 4 et 5 Voici en Php 5 à quoi ressemblerait la classe correspondant à notre objet animal : class Animal { // les trois caractéristiques dun animal public $type; public $nom; public $nourriture; // laction que lanimal peut effectuer function emettreSon(){ print("Le $this->type pousse son cri ! "); } Note : en Php 4, il faut remplacer "public" par "var" Voir fichier zoo_1.php

Les objets dans php 4 et 5 Visibilité des variables (Php 5): En effet, dans un objet, il est possible de spécifier qui pourra accéder à quelles variables. Il existe trois niveaux de visibilité, symbolisés par trois mots clés : public : indique que la variable est publique. Dans ce cas, la variable est directement accessible de l'extérieur de la classe (zoo_2a.php) private : indique que la variable est privée. Dans ce cas, la variable n'est accessible qu'à l'intérieur de la classe. Si vous souhaitez y accéder de l'extérieur, il faudra écrire une méthode qui la retourne. (zoo_2b.php) protected : cette visibilité se situe entre privée et publique. Dans ce cas, la variable ne sera pas accessible de l'extérieur de la classe, sauf pour les classes filles qui hériteront de ce champ comme champ privé (nous reviendrons plus tard sur la notion de classe fille, avec l'héritage). (zoo_2c.php)

Les objets dans php 4 et 5 Naissance des objets: Pour utiliser une classe, il faut en créer une instance grâce à l'opérateur new (il s'agit de "l'instanciation" d'une classe) : <?php $animal = new Animal(); ?> Un problème se pose : nous souhaitons indiquer quels sont le nom et la race de l'animal et quelle nourriture il mange. Il est intéressant de pouvoir passer ces valeurs en paramètre lors de la création de l'objet, autrement dit de pouvoir écrire : <?php $animal = new Animal("lion", "Tony", "viande"); ?>

Les objets dans php 4 et 5 Constructeurs : C'est justement ce que permettent les constructeurs. Un constructeur est une méthode spéciale qui est appelée lors de l'instanciation de la classe avec new. Ici nous touchons à une différence entre Php 4 et Php 5. En effet, la fonction constructeur en Php 4 est définie par une fonction ayant le même nom que la classe, tandis que en Php 5 le constructeur est affublé d'un nom spécial : __construct. Nous allons donc pouvoir écrire cette méthode de façon à ce qu'elle assigne les valeurs passées en paramètres aux variables membres :

Les objets dans php 4 et 5 //php 4 class Animal { // les trois caractéristiques dun animal var $type; var $nom; var $nourriture; //le constructeur de notre classe function Animal($type, $nom, $nourriture) { $this->type = $type; $this->nom = $nom; $this->nourriture = $nourriture; }

Les objets dans php 4 et 5 // laction que lanimal peut effectuer function emettreSon(){ print("Le $this->type pousse son cri ! "); } function getType() { return $this->type; } function getNom() { return $this->nom; } function getNourriture() { return $this->nourriture; }

Les objets dans php 4 et 5 //php5 class Gardien { // les deux caractéristiques dun gardien public $nom; public $prenom; //le constructeur prends deux variables en paramètres function __construct($nom,$prenom){ $this->nom = $nom; $this->prenom = $prenom; } // laction que le gardien peut effectuer function nourrir($animal){ print("$this->nom $this->prenom donne de la $animal->nourriture". " au $animal- >type. "); $animal->emettreSon(); } Voir fichier zoo_3.php

Les objets dans php 4 et 5 Destructeur: Lorsque les objets ne sont plus utilisés, ils sont détruits. Php 5 s'occupe automatiquement de compter le nombre de références sur les objets afin de savoir quand ils ne sont plus utilisés et peuvent donc être effacés sans danger. Lors de cette destruction, il peut être nécessaire de réaliser des opérations pour que la destruction de l'objet soit correctement effectuée. Pour cela, une classe peut posséder un destructeur, qui comme le constructeur est une méthode portant un nom spécial : __destruct. A la différence du constructeur, le destructeur ne peut accepter de paramètres puisqu'il est appelé automatiquement par Php. Ajoutons un destructeur à notre classe Animal afin d'afficher un message lors de sa destruction : //le destructeur de notre classe function __destruct() { print("Un objet de type Animal ($this->type) a été détruit. "); } Voir fichier zoo_4.php

Les objets dans php 4 et 5 Lhéritage : L'héritage permet de faire dériver une classe d'une autre afin qu'elle hérite de tous ses champs de type public et protected ainsi que de toutes ses méthodes. Nous pouvons ensuite en ajouter et aussi redéfinir ces méthodes afin de les spécialiser. Ici, nous allons garder notre classe Animal et en faire hériter une classe Lion et une classe Koala. class Lion extends Animal { function __construct($nom) { $this->type = "lion"; $this->nourriture = "viande"; parent::__construct($nom); } function emettreSon() { print("Grooooooooar! "); }

Les objets dans php 4 et 5 Note : lopérateur « :: » permet daccéder aux fonctions et variables de la classe parente, « parent » aurait pu être remplacé par le nom de la classe parente (Animal). Pour accéder à une variable de classe qui nest pas encore instanciée, il faut utiliser lopérateur « :: » avec une variable « static » (ex: public static $type) Voir fichier zoo_5.php

Utilisation de librairies de classes Définition : L'appellation de librairie vient d'un import abusif du mot "library" en anglais. C'est un synonyme de bibliothèque. Une librairie est un ensemble de méthodes, d'attributs et de classes réunis dans un fichier directement utilisable à l'intérieur d'une application. Une librairie à un Application Programmers Interface (API), cest-à- dire une liste de fonctions (ou procédures ou méthodes) et de variables (ou classes) documentées et que vous pouvez utilisez.

Utilisation de librairies de classes Utilisation : Pour utiliser une librairie, il suffit dinstaller sur son serveur la librairie en question quelque part (sur le serveur), puis dans votre page Php, il faut faire un « include » avec le chemin jusquà la librairie. Exemple : include('/path/to/set/here/adobd.inc.php'); Ensuite, il faut se référer à l'API pour connaître les fonctions utilisable.

Tableau récapitulatif Php 4Php 5 ConstructeurFonction ayant le même nom que la classeEx : Class Etudiant {function Etudiant() Fonction __construct() Ex : Class Etudiant { function __construc() Notion « destructeur » dobjetsN/AFonction __destruct() Ex :function __destruct() Notion de « clonage »N/AFonction __clone() Ex :function __clone() Traitement des erreursVia des fonctions spécifiques Ex :function division_par_zero () Possibilité dutiliser les notions « try {} » et « catch {}» Niveaux de visibilités des variables$GLOBALPublic : variable accessible de l'extérieur de la classe Private : variable accessible uniquement à l'intérieur de la classe Protected : variable non accessible depuis l'extérieur de la classe sauf pour les classes filles. Etc.

Références Classes et librairies PHP : Borde, N., Marhin, A. & Thevenet, M. (2004). Php 5. Micro Applications : Paris. Choi, W., Kent, A., Lea, C., Prasad, G. et Ullman, C. (2000). Maîtrisez Php 4. Wrox : Paris

TP Prenez le fichier "tp.php" et ajoutez du code permettant l'utilisation des fonctions définies dans les classes. Exemple :