Java Les Classes Flashcards

1
Q

Que veut dire POO ?

A

Programmation Orientée Objet

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Qu’est-ce-qu’une Classe ?

A
  • Un support d’encapsulation
  • Un ensemble de fonctions et de données regroupées dans une même structure
  • La description abstraites d’un objet
  • Une classe comporte sa déclaration, des variables et les définitions de ses méthodes.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Que sont les propriétés ou attributs d’une Classe ?

A
  • La définition des données encapsulées, ils contiennent les données d’une classe.
  • Variables ou objets nécessaires au fonctionnement de l’objet.
  • Ils peuvent être des variables d’instances, de classes ou des constantes.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Qu’est-ce-qu’un modificateur d’accès ?

A
  • Ce sont des attributs de visibilité réglementant l’accès aux classes et aux objets, aux méthodes et aux données.
  • Ils ne peuvent pas être utilisés pour qualifier des variables locales.
  • Ils assurent le contrôle de conditions d’héritage, d’accès aux éléments et de modifications des données par les autres objets.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Quels sont les modificateurs d’accès en JAVA ?

A
  • Private
  • Public
  • Protected
  • Package Friendly (par défaut)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Définir le modificateur d’accès Private

A
  • Niveau de protection le plus fort.
  • Les composants ne sont visibles qu’à l’intérieur de la classe : ils ne peuvent être modifiés que par des méthodes définies dans la classe et prévues à cet effet.
  • Les méthodes déclarées private ne peuvent pas être en même temps déclarées abstract car elles ne peuvent pas être redéfinies dans les classes filles.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Définir le modificateur d’accès Public

A
  • Une variable, méthode ou classe déclarée public est visible par tous les autres objets.
  • Depuis la version 1.0, une seule classe public est permise par fichier et son nom doit correspondre à celui du fichier.
  • Dans la philosophie orientée objet aucune donnée d’une classe ne devrait être déclarée publique : il est
    préférable d’écrire des méthodes pour la consulter et la modifier.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Définir le modificateur d’accès Protected

A
  • Seules les méthodes présentes dans le même package que cette classe ou ses sous-classes pourront y accéder.
  • On ne peut pas qualifier une classe avec protected.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Définir le modificateur d’accès Package Friendly

A
  • Niveau par défaut lorsqu’aucun modificateur n’est précisé.
  • Cette déclaration permet à une entité (classe, méthode ou variable) d’être visible par toutes les classes se trouvant dans le même package (équivaut à Protected).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Définir : Variable d’instance

A

Une variable d’instance nécessite la déclaration d’une variable dans le corps de la classe.
Chaque instance de la classe a accès à sa propre occurence de la variable.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Définir : Variable de classe

A

Les variables de classe sont définies par le mot clef ‘Static’.
Chaque instance de la classe partage la même variable.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Définir le mot clé Static

A
  • Le mot clé static s’applique aux variables et aux méthodes.
  • Les variables d’instance sont des variables propres à un objet.
  • Il est possible de définir une variable de classe qui est partagée entre toutes les instances d’une même classe : elle n’existe donc qu’une seule fois en mémoire. Une telle variable permet de stocker une constante ou une valeur modifiée tour à tour par les instances de la classe. Elle se définit avec
    le mot clé Static.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Comment accéder à une classe ?

A

Il faut en déclarer une instance ou un objet.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Quelle est la syntaxe de déclaration d’une classe ?

A

modificateurs class nom_de_classe [extends classe_mere] [implements interfaces] { … }

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Définir le modificateur de Classe : Abstract

A
  • La classe contient une ou des méthodes abstraites, qui n’ont pas de définition explicite.
  • Une classe déclarée abstract ne peut pas être instanciée : il faut définir une
    classe qui hérite de cette classe et qui implémente les méthodes nécessaires pour ne plus être abstraite.
  • On ne peut qu’appeler ses méthodes et les redéfinir dans les classes filles.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Définir le modificateur de Classe : Final

A
  • La classe ne peut pas être modifiée
  • Sa redéfinition grâce à l’héritage est interdite.
  • Les classes déclarées final ne peuvent donc pas avoir de classes filles.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Définir le mot clef Extends

A
  • Permet de spécifier une superclasse éventuelle

- Il permet de préciser la classe mère dans une relation d’héritage

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Définir le mot clef Implements

A
  • Permet de spécifier une ou des interfaces que la classe implémente
  • Cela permet de récupérer quelques avantages de l’héritage multiple
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Qu’est-ce-qu’un objet ?

A
  • L’instance d’une classe
  • Il contient des attributs et des méthodes
  • Pour chaque instance d’une classe, le code est le même, seules les données sont différentes à chaque objet.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Quel est le rôle de l’opérateur ‘new’ ?

A

C’est un opérateur de haute priorité qui permet de :

  • Créer une instance de la classe
  • Associer l’instance à une variable ayant le type de l’objet désiré.
  • D’appeler une méthode particulière sur cet objet : le constructeur
  • Il fait appel à la machine virtuelle pour obtenir l’espace mémoire nécessaire à la représentation de l’objet
  • Appelle le constructeur pour initialiser l’objet dans l’emplacement obtenu
  • Il renvoie une valeur qui référence l’objet instancié
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Que se passe-t-il si l’opérateur ‘new’ n’obtient pas l’allocation mémoire nécessaire ?

A

Il lève l’exception ‘OutOfMemoryError’

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Quels sont les trois étapes de la durée de vie d’un objet ?

A
  • La déclaration et l’instanciation grâce à l’opérateur ‘new’
  • L’utilisation de l’objet en appelant ses méthodes
  • La suppression de l’objet automatique grâce à la machine virtuelle JAVA.
23
Q

A quoi sert le garbage collector ?

A
  • Il restitue la mémoire inutilisée lors de la destruction d’un objet par la machine virtuelle JAVA
  • Le fait d’affecter ‘null’ à une variable référençant un objet pourra permettre au ramasse-miettes de libérer la mémoire allouée à l’objet si aucune autre référence n’existe encore sur lui.
24
Q

A quoi sert la variable ‘this’ ?

A
  • Sert à référencer, dans une méthode, l’instance de l’objet en cours d’utilisation.
  • On l’utilise pour lever l’ambiguïté entre deux noms identiques (this.nom = nom);
25
Q

A quoi sert l’opérateur ‘instanceof’ ?

A
  • Il permet de déterminer la classe de l’objet qui lui est passé en paramètre. (o instanceof MaClasse)
  • Une fois passé en paramètre, il est nécessaire de caster l’objet en cours (MaClasse mc = (MaClasse) o;
26
Q

Quels sont les différents modificateurs de méthode d’une classe ?

A
  • public
  • private
  • protected
  • final
  • static
  • synchronized
  • native
27
Q

Définir le modificateur de méthode public :

A

La méthode est accessible aux méthodes des autres classes

28
Q

Définir le modificateur de méthode private :

A

L’usage de la méthode est réservé à l’usage des autres méthodes de la même classe

29
Q

Définir le modificateur de méthode protected :

A

La méthode ne peut être invoquée que par les méthodes de la même classe ou de ses sous-classes

30
Q

Définir le modificateur de méthode final :

A

La méthode ne peut être redéfinie (redéfinition lors de l’héritage interdite).

31
Q

Définir le modificateur de méthode static :

A
  • La méthode appartient simultanément à tous les objets de la classe
  • Elle ne peut utiliser que des variables de classe
32
Q

Définir le modificateur de méthode synchronized :

A

La méthode fait partie d’un thread, elle barre l’accès à son instance. Cette dernière est libérée à la fin de son exécution.

33
Q

Définir le modificateur de méthode native :

A

Le code source de la méthode est défini dans un autre langage

34
Q

Que se passe-t-il si l’on n’attribut pas de modificateur à une méthode ?

A

L’accessibilité par défaut s’applique, elle s’étend au package auquel la méthode appartient.

35
Q

Définir la signature d’une méthode :

A
  • Son nom
  • Sa portée
  • Le typage de ses paramètres
  • L’ordre des paramètres
  • Le nombre de paramètres
36
Q

La valeur de retour d’une méthode fait partie de sa signature : Vrai ou Faux ?

A

Faux

37
Q

En quoi consiste la redéfinition d’une méthode ?

A
  • La copie d’une méthode de la classe mère vers la classe fille
  • Changer l’algorithme de la méthode pour changer son comportement et l’adapter à la classe fille impactée
38
Q

Quelles sont les quatre conditions pour que le polymorphisme soit possible ?

A
  • Une relation d’héritage entre classe Mère et Fille
  • Une compatibilité ascendante
  • La redéfinition des méthodes de la classe Mère à Fille
  • Une liaison tardive
39
Q

Définir une relation d’héritage entre classes :

A
  • La classe Fille hérite de toutes les propriétés et méthodes de la classe Mère sauf son constructeur = Compatibilité ascendante
40
Q

Comment définit-on une constante de classe ?

A

Avec le mot clef ‘final’

41
Q

Comment définit-on une variable de classe ?

A

Avec le mot clef ‘static’

42
Q

En quoi consiste la surcharge d’une méthode ?

A

Définir plusieurs fois une méthode en changeant sa signature. Le nom restera le même mais les autres arguments de la méthode devront être modifiés.
Une méthode est surchargée lorsqu’elle exécute des actions différentes selon le type et le nombre de paramètres transmis.

43
Q

Qu’est-ce-qu’un constructeur ?

A
  • Il permet la création d’un objet
  • Il porte systématiquement le même nom que la classe où il est appelé
  • il n’a pas de type donc ne peut pas avoir d’instruction ‘return’
  • On peut le surcharger
  • Si aucun constructeur n’est défini dans une classe, un constructeur par défaut sans aucun paramètre (invisible pour le développeur) et systématiquement créé.
44
Q

Qu’est-ce-qu’un destructeur ?

A
  • Permet d’exécuter le code de libération de mémoire occupée par l’objet via le garbage collector
  • Pour le créer, il faut redéfinir la méthode finalize() héritée de la classe Object.
45
Q

Qu’est-ce-qu’un accesseur ?

A
  • Un accesseur est une méthode public qui donne accès à une variable d’instance privée
  • Il existe des accesseurs en lecture : get (getter)
  • Il existe des accesseurs en écriture : set (setter)
46
Q

En relation d’héritage, une variable ou méthode public …

A

…restent public à travers l’héritage et toutes les autres classes.

47
Q

En relation d’héritage, une variable private …

A

…est héritée mais uniquement accessible via les méthodes héritées.

48
Q

En relation d’héritage, une variable protected …

A

…est héritée par toutes les classes filles, ainsi que les classes du même package.

49
Q

La redéfinition d’une méthode héritée…

A

…doit impérativement conserver la déclaration de la méthode parente, sans quoi il s’agit d’une surcharge.

50
Q

Qu’est-ce-qu’une constante de classe ?

A
  • Les constantes diffèrent des attributs “normaux” par le fait qu’elles sont définies une fois pour toutes.
  • On définit la constante qui ne pourra avoir une valeur variable au cours du temps. On ajoute le mot clé final pour dire que l’attribut en question est une constante .
51
Q

Qu’est-ce-qu’un attribut statique ?

A

Un attribut statique est un attribut qui est commun à tous les objets créés.

L’avantage des attributs statiques est que l’on peut y accéder même si aucune instance de classe n’est créée.

52
Q

La classe Object est …

A
  • La classe Mère de toutes les classes
  • Toutes les classes en JAVA hérite implicitement de la classe Object
  • Elle est standardisée par les concepteurs Java
53
Q

Définir la métadonnée @Override :

A
  • Information pour le compilateur qui informe que l’on a redéfinie une méthode
  • Information annexe pour la compilateur qui lui permet de faciliter l’exécution de la méthode.
  • Grace à Override, la JDK peut regrouper les méthodes de même nom et les compiler ensemble.
  • Optimiser la compilation des méthodes dans une configuration d’héritages.