Chapitre 5 - Class Design Flashcards

1
Q

Les règles des constructeurs

A
  • le premier statement de tout les constructeurs c’est soit un this soit un super
  • super ne peut pas être appelé en deuxième toujours en premier
  • si aucun super() est dans le constructeur java va inséré un super sans argument au premier statement
  • si un parent n’a pas de constructeur sans argument, le compilateur a absolument besoin d’un call d’un constructeur parent dans chacun des enfants
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Vrai ou faux ? Java permet l’héritage multiple ?

A

Faux, mais il permet aux classes d’implémenter plusieurs interfaces !

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

Que peut-on avoir dans une interface ?

A
  • abstract method
  • default method
  • constant variables
  • static method
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Comment définit-on une interface ?

A

public (or default access modifier) abstract (assumed) interface InterfaceName

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

Comment définit on une interface ?

A
  • une interface ne peut pas être final
  • une interface n’a pas l’obligation d’avoir des méthodes
  • ne peut pas avoir de méthodes private, protected, final
  • les méthodes non default d’une interface sont forcément abstraites et public.
  • une méthode d’une interface peut être static
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Que veut dire covariant et qu’est ce qui doit être covariant ?

A

Covariant veut dire une sous classe ou une implémentation d’une interface.

Integer est covariant à Number
Number n’est pas covariant à Integer

Quand on override une méthode, il faut que le type de retour de la classe fille est covariant du type de retour de classe mère

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

Que doit on vérifier quand on override une méthode dans une classe fille ?

A

On doit vérifier :
- que le type de retour de classe fille soit covariant au type de retour de la classe mère
- que le modificateur d’accès sois égale ou plus accessible dans la classe fille
- que si la classe mère throw une exception, si la classe fille doit throw une exception (pas obligatoire), elle doit etre la même ou une sous classe.

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

C’est quoi le format d’une DateTime formatté avec le FormatStyle.SHORT ?

A

mm/dd/yy hh:mm AM ou PM

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

C’est quoi le format d’une DateTime formatté avec le format FormatStyle.MEDIUM ?

A

MMM dd, yyyy hh:mm:ss AM ou PM

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

Qu’est ce qui est important de savoir sur les catchs ?

A
  • On doit bien mettre les exceptions parents tout en bas dans le try catch sinon ça ne compile pas !!!!
  • Si on throw dans un catch, l’exception ne se fait pas catch dans reste des catch !!!
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Qu’est ce qu’un anonymous initializer ?

A

C’est un initializer d’Array sans le mot clé New. Seulement possible à la déclaration.

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

Quelles sont les règles de l’overriding de méthode non private ?

A
  • la méthode dans la classe enfant doit avoir la même signature que la méthode de la classe parent (signature = nom de la méthode et même paramètres)
  • la méthode de l’enfant doit être au moins aussi accessible)
  • la méthode dans la classe enfant ne peut pas throw une checked exception qui est nouvelle ou une classe parent de l’exception lancé par la méthode de la classe parent
  • la méthode dans la classe enfant doit retourner une valeur qui doit être la même ou une sous classe que le type de retour de la classe parent
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Quelles sont les 5 règles du hiding de method ?

A
  • la méthode dans la classe enfant doit avoir la même signature que la méthode de la classe parent
  • la méthode dans la classe enfant doit être au moins aussi accessible que la méthode dans la classe parent
  • la méthode dans la classe enfant ne peut throw une checked exception qui est nouvelle ou qui est une exception parent à l’exception throw par la classe parent
  • si la méthode retourne une valeur elle doit être covariante à la valeur de retour de la méthode parente
  • la méthode dans la classe enfant doit être forcément statique sinon ça compile pas
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Peut-on override une variable ?

A

Non, java ne permet que de hide une variable

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

Qu’est ce qui est assumé dans une interface ?

A
  • méthode sont public abstract
  • variable sont public static final
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Comment appeler une méthode statique ?

A

Pour une classe qui hérite d’une classe :
- tu peux faire appel en mettant le nom de la méthode sans le this ou avec le this.
- tu peux faire appel en mettant le super
- tu peux faire appel en mettant le nom de la classe parent puis le nom de la méthode

Pour une classe qui hérite d’une interface :
- tu peux faire appel en mettant le nom de l’interface puis le nom de la méthode

17
Q

Peut-on implémenter deux interface qui ont défini exactement la même default ?

A

Non, à moins que la classe enfant override la méthode en question