Vous êtes sur la page 1sur 6
Programmation Orienté Objet Les Mots clés Abstract, Final et Static 1, Les méthodes 1.1. Signature d’une méthode La signature d'une méthode contient : — Modificater 's d’accés : public, protected, private, aucun = [modificateurs optionnels] : static, final, abstract — Type de retour : type de la valeur retournée — Nom de la méthode (identificateur) — Listes de paramétres entre parentheses (peut étre vide mais les parenthases sont indispensables) [exception] (throws Exception) 1.2. Méthodes statiques Une méthode statique est une méthode qui peut étre appelée méme sans avoir instanci la classe. Une méthode statique ne peut accéder qu’a des attributs et méthodes statiques, Exemple d'application avec une méthode statique : public class Test { public int test; public static String chaine = "bonjour"; public Test() { MaMethodestatique(); } public static void MaMethodeStatique() { int nombre = 10; ‘System.out.printIn("Appel de la méthode statiqui 3 } + nombre + chaine); wided.degachi@gmail.com 1 Programmation Orienté Objet Vous pouvez sans avoir instancié la classe accéder & la méthode statique en tapant ceci Test MaMethodeStatique(); n'importe oti dans votre code. — Fournissent une fonctionnalité A une classe enti@re — Cas des méthodes non destinées & accomplir une action sur un objet individuel de la classe © Exemples: Math.random(), Integer.parseInt(String s), main(String{] args) —_ Les méthodes statiques ne peuvent pas accéder aux variables d’instances (elles sont “au-dessus” des variables d'instances) class AnintegerNamedX { intx; static public int x0) { return x; } static public void setX(int newX) { this. t ewX;} x est une variable d'instance, donc inaccessible pour la méthode static setX 1.3. Méthode finale Une méthode indiquée comme final ne peut étre redéfinie dans une classe dérivée. On peut s‘en servir pour forcer le comportement d'une méthode dans les sous-classes. En langage Java, le mot-clé final indique qu'un élément ne peut étre changé dans la suite du programme. Il peut s'appliquer aux méthodes et attributs d'une classe ainsi que la classe elle-méme. Aussi, il peut s'appliquer sur les paramétres d'une méthode et sur les variables locales. 1.4. Méthode abstaite Une classe abstraite est une classe dont I'implémentation n'est pas complate et qui n'est pas instanciable. Elle sert de base & d'autres classes dérivées (héritées). Le mécanisme des classes abstraites permet de définir des comportements (méthodes) dont ]'implémentation (Ie code dans la méthode) se fait dans les classes filles. Ainsi, ona assurance que les classes filles respecteront le contrat défini par la classe mére abstraite, Ce contrat est une interface de programmation?, API: interface de programmation applicative: un ensemble normalisé de classes, de méthodes ou de fonctions qui sert de facade par laquelle un logiciel offre des services & d'autres logiciels wided.degachi@gmail.com 2 Programmation Orienté Objet 2. Les attributs statiques Un attribut statique est un attribut qui est commun a tous les objets que vous pourrez créer. On peut par exemple citer un compteur du nombre d'instances de classe que vous aurez lancées. Si vous souhaitez compter le nombre de fois oi vous avez instancié la classe "Test" vous pourrez écrire ceci: public class Test { public static int nombre; public static final int nb = 5; public Test() { nombre++; System.out-printin("Nombre d'instances crées } + L'avantage des attributs statiques est que vous pouvez y accéder méme si vous n'avez +nombre); pas créé d'instance de votre classe. Ainsi, vous pourrez écrire si vous le souhaitez n‘importe oti dans une méthode ceci : System.out-printin("Nombre d'instances crées :" + Test.nb); Ce code affichera 5. 3. Les classes 3.1, Les classes abstraites + Une classe est définie comme abstraite avec le mot clé abstract. + Les classes abstraites sont a utiliser lorsqu'une classe mére ne doit pas étre instanciée. + Une classe abstraite ne peut donc pas étre instanciée. + Une classe abstraite n'est pas obligée de contenir de méthode abstraite. + Siune classe contient une méthode abstraite, cette classe doit alors étre déclarée abstraite. = Une méthode abstraite n'a pas de corps. 3.2. Interface Java n’ofire pas la possibilité d’héritage multiple wided.degachi@gmail.com 3 Programmation Orienté Objet Liinterface d’une classe = la liste des messages disponibles ignature des méthodes de la classe. Certaines classes sont concues pour ne contenir précisément que la signature de leurs méthodes, sans corps. Ces classes ne contiennent donc que leur interface, cest pourquoi on les appelle elles-mémes interface. + Une interface est une classe 100 % abstraite. + Aucune méthode d'une interface n'a de corps : Ne contient que la déclaration de méthodes, sans définition (corps). + Une interface sert & définir un supertype et 8 utiliser le polymorphisme. + Une interface s‘implémente dans une classe en utilisant le mot clé implements. + Vous pouvez implémenter autant d'interfaces que vous voulez dans vos classes. + Vous devez redéfinir toutes les méthodes de l'interface (ou des interfaces) dans votre classe. + Le pattern strategy vous permet de rendre une hiérarchie de classes plus souple (pour les méthodes qui varient). + Préférez encapsuler des comportements plutot que de les mettre d'office dans objet concerné. Remarques + Avec Java 8, une interface n'est plus une classe 100% abstraite. + Elle peut contenir du code sous deux formes © avec des méthodes statiques; © avec une définition par défaut d'une méthode. 3.3. Classe finale Les classes finales ne peuvent étre dérivées. Cela peut étre fait dans un souci d’efficacité ou pour empécher l'utilisateur d’en faire une utilisation non appropriée dans la classe dérivée. De nombreuses classes de la bibliothéque standard Java sont déclarées comme final telles que java.lang.String. wided.degachi@gmail.com 4 Programmation Orienté Objet Best Practise : UML La conception 00 est enti¢rement batie sur une modélisation des objets intervenant dans le probléme, Avant de programmer quoi que ce soit, il faut donc modéliser les classes et leurs relations au minimum. 4. Interaction entre les objets = Tout est un objet — Lexécution d'un programme est réalisée par échanges de messages entre objets — Unmessage est une demande d'action, caractérisée par les paramétres nécessaires & la réalisation de cette action Les relations sont — Héritage — Association simple — Association particuliers: © Llagrégation faible : L'objet « agrégeant » contient une ou plusieurs instances de la classe « agrégée » © L/agrégation forte ou Composition : L'objet « composé » est créé dans la classe « composite » et est détruit si objet composite est détruit Exercice d’application Un parc auto se compose des voitures et des camions qui ont des caractéristiques communes regroupées dans la classe Véhicule. Chaque véhicule est caractérisé par son matricule, l'année de son modéle, son prix. Lors de la création d’un véhicule, son matricule est incrémenté selon le nombre de véhicules créés. Tous les attributs de la classe véhicule sont supposés privés, Ce qui oblige la création des accesseurs (get...) et des mutateurs (set...) ou les propriétés. La classe Véhicule posstde également deux méthodes abstraites démarrer() et accélérer() qui seront définies dans les classes dérivées et qui afficheront des messages personnalisés. wided.degachi@gmail.com 5 Programmation Orienté Objet La méthode ToString() de la classe Véhicule retourne une chaine de caractéres qui contient les valeurs du matricule, de l'année du modéle et du prix. Les classes Voiture et Camion étendent la classe Véhicule en définissant concrétement les méthodes accélérer() et démarrer() en affichant des messages personnalisés. 1. Créer la classe abstraite Véhicule, 2. Créer les classes Camion et Voiture. 3. Créer une classe Test qui permet de tester la classe Voiture et la classe Camion wided.degachi@gmail.com

Vous aimerez peut-être aussi