Académique Documents
Professionnel Documents
Culture Documents
Pr Sara SEKKATE
Intelligence Articielle & Génie Informatique
2022-2023
L'initialisation à des valeurs données par l'utilisateur se fait dans les constructeurs ou des
blocs d'initialisation.
Rq : Les variables locales à une méthode ne sont pas initialisées par défaut.
Les méthodes peuvent être de la même façon, des méthodes d'instances ou des méthodes
de classe (déclarées static)
Les caractéristiques de classe peuvent être appelées sans création d'instance particulière
Elles peuvent être qualiées par le nom de la classe si nécessaire:
Ex: Math.PI, Math.sin(x) ...
Un constructeur ne peut être static.
Si le composant ne peut être possédé que par un seul composite, l'agrégation est une
composition.
Dans une composition, la durée de vie du composant est liée à celle du composite.
L'héritage permet de fournir des connaissances pour créer de nouveaux objets à partir
d'objets existants.
C'est un moyen de réutilisation
Terminologie :
A : Classe de base, parent, superclasse
B : Descendant, lle, sous-classe, classe dérivée
B : hérite directement de A
B : héritier direct de A
B : dérive directement de A
B :sous-type de A
Syntaxe
class Derivee extends Parent {...}
Une caractéristique déclarée "protected" dans une classe publique est accessible dans toute
classe du même paquetage, et dans toute sous-classe, même si elle ne se trouve pas dans le
même paquetage.
Règle
Une méthode redénie doit avoir la même signature que la méthode parente, sinon, il
s'agit d'une surcharge.
Le type de retour :
s'il est primitif, il doit être le même
s'il est "référence", il peut être une sous-classe de la classe du type de retour de la méthode
parente.
Dans un attachement, le type de la source doit être compatible avec le type de la cible.
Pour les types "référence", le type de la source doit être:
Le même que celui de la cible;
ou un sous-type de celui de la cible;
ou convertible en celui de la cible.
Le polymorphisme d'objet conduit à distinguer deux notions de type pour chaque objet :
le type dynamique: c'est le type eectif de l'objet en mémoire. Il est déterminé une fois
pour toutes au moment de la création de l'objet avec new.
le type statique de la référence : à un endroit du code, il est utilisé pour manipuler cet
objet.
Le type statique peut varier au cours du programme, en fonction du type des références qui, au
fur et à mesure, sont utilisées pour manipuler l'objet.
Soient
c l a s s A{ c l a s s B e x t e n d s A{
public void f (){}; public void f (){};
} }
et
A a = new B();
Ce qui détermine la version à utiliser lors de l'appel d'une méthode est le type dynamique
de l'instance cible de l'appel.
Toutefois, le contrôle de la validité de l'appel reste statique: l'appel a.f() produirait une
erreur de compilation si f() n'est pas une méthode de A.
Un appel tel que a.f(); peut exécuter diérents codes suivant le type dynamique de a.
Cette possibilité pour une entité de prendre plusieurs formes est le principe de
polymorphisme.
Le mot-clé nal en Java est un modicateur utilisé pour empêcher la modication d'un code ou
d'une valeur. Il est possible d'utiliser ce mot-clé dans 3 contextes :
Mot-clé nal en tant que modicateur de variable :
Mot clé nal en tant que modicateur de méthode :
Mot-clé nal en tant que modicateur de classe :
Le mot-clé nal en Java est un modicateur utilisé pour empêcher la modication d'un code ou
d'une valeur. Il est possible d'utiliser ce mot-clé dans 3 contextes :
Mot-clé nal en tant que modicateur de variable : lorsqu'il est utilisé avec une variable, il
est spéciquement destiné à empêcher l'utilisateur de modier la valeur. Une variable
déclarée nal, une fois initialisée, sa valeur ne peut être changée.
Mot clé nal en tant que modicateur de méthode :
Mot-clé nal en tant que modicateur de classe :
Le mot-clé nal en Java est un modicateur utilisé pour empêcher la modication d'un code ou
d'une valeur. Il est possible d'utiliser ce mot-clé dans 3 contextes :
Mot-clé nal en tant que modicateur de variable :
Mot clé nal en tant que modicateur de méthode : Une méthode déclarée nal ne peut
être redénie. Ce qui signie que même une sous-classe peut appeler la méthode nal de
la classe parente sans aucun problème, mais elle ne peut la redénir.
Mot-clé nal en tant que modicateur de classe :
Le mot-clé nal en Java est un modicateur utilisé pour empêcher la modication d'un code ou
d'une valeur. Il est possible d'utiliser ce mot-clé dans 3 contextes :
Mot-clé nal en tant que modicateur de variable :
Mot clé nal en tant que modicateur de méthode :
Mot-clé nal en tant que modicateur de classe : il empêche la classe d'être héritée par
une autre classe.
En Java, l'opérateur == sert à comparer les références mais pas les objets.
L'implémentation par défaut de equals fournie par Object compare les références entre
elles. L'implémentation par défaut est donc simplement :