Vous êtes sur la page 1sur 8

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