34 0 74KB
Les langages orientés objets utilisent la même syntaxe.
VRAI FAUX L'écart est parfois énorme d'un langage à l'autre Quelle assertion reflète le mieux la philosophie des langages de programmation Orientés-Objet ?
Concevoir en assignant des rôles et des responsabilités propres à chaque objet Chaque objet a ses propres données et est responsable de tâches spécifiques. Syntaxe simplifiée Introduction du concept de 'ramasse miette' (garbage collector) Simplification des concepts théoriques Lequel de ces langages n'est pas Orienté-Objet ?
C Quelques langages Orientés-Objet : C++, Java, C#, Object Pascal, Python, Smalltalk, Ada95, Eiffel, Modula-3, Objective-C. C++ Java Smalltalk Qu'est ce qu'un Singleton ?
Un programme ne contenant qu'une seule classe Une classe ne possédant qu'une seule instance
C'est un des Design Pattern les plus courants Une classe n'héritant que d'une seule classe Une classe agrégée dans aucune autre
Quelle assertion correspond le mieux à la définition d'un objet ?
Un objet a un état, des comportements et une identité Un objet est un ''struct''' Un objet est soit un ensemble de données, soit un ensemble de traitements Un objet est le reflet d'une valeur présente en base Qu'est-ce que la portée d'un objet ?
La portée d'un objet est l'espace d'une application où il peut être utilisé On parle aussi de visibilité d'un objet ou d'une classe. La portée d'un objet est le nombre d'attributs qu'il contient La portée d'un objet est le nombre de méthodes et d'attributs qu'il contient La portée d'un objet est le nombre d'applications où il est utilisé Qu'est-ce que l'encapsulation ?
L'encapsulation permet de regrouper un ensemble objets dans un nouvel objet L'encapsulation permet de gérer la mémoire avec une vision Orientée-Objet L'encapsulation consiste à différencier les parties internes à un objet de ses parties externes, nécessaires à son utilisation par d'autres objets Chaque composant d'un programme devrait cacher les choix d'implémentations. L'interface de
chaque module est définie de manière à révéler le moins possible son fonctionnement interne. L'encapsulation instaure une politique de commutation des objets Objet et classe : quelle assertion est fausse ?
Un objet est une instance d'une classe Un objet s'obtient en appelant le constructeur de la classe La classe est le type d'un objet Un objet hérite de sa propre classe Qu'est que l'héritage ?
L'héritage permet à un objet de récupérer la valeur des attributs d'un autre objet L'héritage est une relation de généralisation / spécialisation entre une classe et une autre classe L'héritage fournit une classification naturelle des objets. L'héritage correspond à l'instanciation d'une classe L'héritage est un moyen de changer le type des objets Qu'est ce qu'une super-classe ?
Une classe dont toutes les autres héritent Une classe qui référence les autres classes d'un programme La classe dont une autre hérite On parle aussi de classe mère. Une classe plus rapide qu'une autre Qu'est-ce qu'une association ?
Il y a association lorsque 2 attributs sont dans la même classe
Il y a association lorsqu'un attribut est utilisé par une méthode Il y a association lorsqu'un objet a un lien durable avec un autre objet Il y a association quand deux applications utilisent des classes communes Quelle affirmation est fausse à propos des relations d'agrégation et de composition ?
L’agrégation et la composition sont des relations de type tout-partie La destruction d’un agrégat entraîne la destruction des objets agrégés Compositions et agrégations sont des relations de type tout-partie, mais la composition est plus contraignante : un composant ne peut appartenir qu’à un seul composite, et la destruction d’un composite entraîne la destruction de ses composants Dans une relation d’agrégation, un objet peut appartenir à plusieurs agrégats différents Dans une relation de composition, un objet ne peut appartenir qu’à un seul composite Quelle affirmation au sujet des interfaces, est fausse?
Plusieurs classes peuvent implémenter la même interface Une même classe peut implémenter plusieurs interfaces Une interface comprend un ensemble de signatures d'opérations Une interface se définit par un attribut et une opération sans paramètre Une interface définit un contrat (un ensemble d'opérations) à respecter par les classes qui implémentent cette interface (ie qui fournissent un corps aux opérations). Qu'est-ce que le polymorphisme ?
Polymorphisme signifie que la même opération peut se comporter différemment suivant sur quelle classe elle s'applique Une même signature d’opération peut exister dans plusieurs classes et cette opération peut engendrer un traitement différent suivant la classe sur laquelle elle est appelée (la classe fournissant l’implémentation de l’opération). Polymorphisme signifie qu'un objet peut avoir plusieurs états
Polymorphisme signifie qu'une opération peut avoir plusieurs formes au sein de la même classe Polymorphisme signifie qu'une opération peut être divisée en sous taches qui s'exécutent en parallèle A quoi sert un constructeur ?
Le constructeur est la méthode responsable d'initialiser l'état d'un objet Le constructeur permet par exemple d'initialiser les attributs de la classe. Le constructeur est le point d'entrée d'une application Orientée-Objet Le constructeur est une méthode qui peut accéder aux attributs privés d'une classe Le constructeur est un objet unique d'une classe servant à construire les autres instances de cette classe Que signifie UML ?
Unified Modeling Language Formalisme courant pour décrire des systèmes orientés objets Unified Markup Language Unified Methodology for object Languages Unlike Many Languages Quelle assertion correspond le mieux à la définition d'une méthode de classe ?
Une méthode pouvant être appelée sans instancier sa classe. C'est une méthode donc le résultat ne dépend pas de l'état d'un objet Une méthode permettant de charger/décharger des classes en mémoire Une méthode sans variable locale Une méthode qui n'est jamais surchargée
Qu'est-ce qu'une méthode virtuelle ?
Une méthode qui ne peut pas être surchargée Une méthode qui ne peut pas être redéfinie Une méthode qui peut être redéfinie par une classe fille Suivant les langages Orientés-Objet, une méthode n'est pas forcément virtuelle par défaut. Le type de retour de cette méthode doit être une constante Quel diagramme n'est pas un diagramme UML ?
Le diagramme de classes Le diagramme de données Le diagramme de cas d'utilisations Le diagramme de séquences Qu'est-ce qu'un attribut de classe ('static') ?
Un attribut 'static' a une valeur constante Un attribut 'static' a une valeur unique pour toutes les instances de la classe Exemple : 'âge de majorité' pour une classe 'Personne' (par opposition à 'age' qui est un attribut) Un attribut 'static' n'est visible que dans la classe où il est défini Un attribut 'static' sera toujours passé par valeur Qu'est-ce qui est faux au sujet des classes abstraites ?
Une classe abstraite ne peut pas être instanciée Une classe abstraite ne peut avoir d'attributs privés Une classe abstraite possède généralement des méthodes virtuelles, redéfinies par les descendants, mais elle peut posséder des méthodes concrètes (par exemple des accesseurs aux
attributs privés). Une classe abstraite est faite pour être dérivée Une classe abstraite ne possède pas nécessairement que des méthodes virtuelles
Qu'est-ce que la surcharge ?
La surcharge est le moyen d'hériter de plusieurs classes à la fois La surcharge est la possibilité d'implémenter un même service plusieurs fois dans la même classe en lui donnant des listes de paramètres différentes Une méthode est définie par son nom et sa liste de paramètres. Des méthodes de même nom mais avec des listes de paramètres différentes sont en pratique des méthodes différentes. La surcharge est la spécialisation d'une méthode par une classe fille La surcharge est la généralisation d'une méthode par une classe mère Qu'est-ce que la redéfinition ?
La redéfinition est le moyen d'hériter de plusieurs classes à la fois La redéfinition est la possibilité d'implémenter un même service plusieurs fois dans la même classe en lui donnant des listes de paramètres différentes La redéfinition est la spécialisation d'une méthode par une classe fille Ce concept est une façon naturelle de spécialiser une méthode en fonction du niveau d'abstraction. La surcharge est la généralisation d'une méthode par une classe mère Qu'est-ce que le 'Downcasting' ?
Downcasting est un terme utilisé pour restreindre la visibilité d'un attribut Downcasting est un terme utilisé pour projeter une référence sur une classe vers une référence sur une de ses classes filles Il faut être prudent lorsque l’on utilise le Downcasting, car si une classe fille (spécifique) peut
toujours être utilisée en tant que sa classe mère (générale), la réciproque est fausse. A part la conviction du programmeur, rien ne garantit qu’une référence sur la classe mère pointe effectivement sur une instance de la sous-classe souhaitée… Le Downcasting permet d'utiliser une classe mère comme un de ses classes filles Le Downcasting permet d'utiliser une classe fille comme une de ses classes mère Le Design Pattern Etat...
Permet à un objet de suivre l’évolution de l’état d’un autre objet Permet à un objet de contrôler l’évolution de l’état d’un autre objet Permet à un objet de répondre différemment aux messages qu’il reçoit en fonction de son état Le design pattern Etat est une façon de concevoir le comportement d’un objet en fonction de l’état dans lequel il se trouve. Cette combinaison des états d’un objet et de son comportement est souvent représentée à l’aide d’un diagramme d’états. Permet à un objet de conserver l’historique de ses états précédents