0% ont trouvé ce document utile (0 vote)
20 vues42 pages

Concepts de base des classes en Java

Transféré par

Hadrich Med Amin
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
20 vues42 pages

Concepts de base des classes en Java

Transféré par

Hadrich Med Amin
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Chapitre 3 :

Programmation
POO
OBJETS ET CLASSES

MODIFICATEURS D’ACCEES

METHODES ET SURCHARGE DES METHODES

PLAN LES CONSTRUCTEURS EN JAVA

L’HERITAGE

CLASSE ABSTRAITES

LES INTERFACES
Objets et classes

▪ Objet : Les objets ont des états et des comportements.


▪ Exemple: Une Lampe a des comportements
▪ allumer,
▪ éteindre.
▪ Un objet est une instance d'une classe.
▪ Classe : Une classe peut être définie en tant que modèle décrivant le
comportement/l'état pris en charge par l'objet de ce type.
Classes en JAVA

• Une classe est un modèle à partir duquel des objets individuels sont
créés. Exemple
Syntaxe
Classes en JAVA

▪ Ici, nous avons défini une classe nommée Lampe.


La classe a une variable d'instance isOn et deux méthodes allumer()
et eteindre(). Ces variables et méthodes définies dans une classe
sont appelées membres de la classe.
▪ Remarquez deux mots clés, private et public dans le programme ci-
dessus. Ce sont des modificateurs d'accès qui seront détaillés après.
Constructeurs

▪ Chaque classe a un constructeur. Si nous n'écrivons pas explicitement


un constructeur pour une classe, le compilateur Java construit un
constructeur par défaut pour cette classe.
▪ Chaque fois qu'un nouvel objet est créé, au moins un constructeur
sera appelé. La règle principale de constructeurs, c'est qu'ils doivent
avoir le même nom que la classe. Une classe peut avoir plusieurs
constructeur.
Constructeurs: exemple
Constructeurs: exemple

Public class Person {


private String name;
private int annenaissance;
private String placenaissance;

public Person(String nom, int naissanceanne, String naissanceplace)


{
[Link]= nom;
[Link]= naissanceanne;
[Link]= naissanceplace;
}
}

Person p= new ( " flen", 2005, " fffff");


Objets en JAVA

▪ un objet est créé à partir d'une classe. En Java, le mot-clé new est
utilisé pour créer de nouveaux objets.
▪ Il y a trois étapes pour créer un objet à partir d’une classe
▪ Déclaration − Une déclaration de variable avec un nom de variable
et un type d'objet.
▪ Instanciation - Le mot clé 'new' est utilisé pour créer l'objet.
▪ Initialisation - Le mot-clé 'new' est suivi d'un appel à un constructeur. Cet
appel initialise le nouveau objet.
Objets en JAVA : exemple

Résultat:
Accès aux variables et méthodes d'instance

▪ Les variables et méthodes d'instance sont accessibles via des objets


créés.
▪ Vous pouvez accéder aux membres à l'aide de l'opérateur point ".".

Syntaxe :
Accès aux variables et méthodes d'instance

Résultat:
Modificateurs d’accés JAVA : public, private, protected

▪ Le modificateur d'accès par défaut signifie que nous ne déclarons pas


explicitement un modificateur d'accès pour une classe, un champ,
une méthode, etc.
▪ Une variable ou une méthode déclarée sans modificateur de contrôle
d'accès est disponible pour toute autre classe du même package. Les
champs d'une interface sont implicitement public static final et les
méthodes d'une interface sont par défaut public.
Modificateurs d’accés JAVA : public, private, protected

▪ Java fournit un certain nombre de modificateurs d'accès permettant


de définir les niveaux d'accès pour les classes, les variables, les
méthodes et les constructeurs. Les quatre niveaux d’accès sont :
▪ Visible pour le package, la valeur par défaut. Aucun modificateur n'est
nécessaire.
▪ Visible seulement par la classe (private).
▪ Visible à tout le monde (public).
▪ Visible pour le package et toutes les sous-classes (protected)
Modificateurs d’accès JAVA : private

▪ Les méthodes, les variables et les constructeurs déclarés privés ne


sont accessibles que dans la classe déclarée elle-même.
▪ Le modificateur d'accès privé est le niveau d'accès le plus restrictif.
La classe et les interfaces ne peuvent pas être privées.
▪ Les variables déclarées privées sont accessibles en dehors de la
classe si des méthodes de lecture publiques sont présentes dans la
classe. (getters setters )
Modificateurs d’accès JAVA : public

▪ Une classe, une méthode, un constructeur, une interface, etc.


déclarée publique peut être accessible à partir de n'importe quelle
autre classe. Par conséquent, les champs, les méthodes et les blocs
déclarés dans une classe publique sont accessibles à partir de toute
classe appartenant à l'univers Java.
▪ Toutefois, si la classe publique à laquelle vous essayez d'accéder se
trouve dans un package différent, elle doit toujours être importée
Modificateurs d’accès JAVA : protected

▪ Les variables, méthodes et constructeurs déclarés protégés dans une


superclasse sont accessibles uniquement aux sous-classes d'un autre
package ou de toute classe du package de la classe des membres
protégés.
▪ Le modificateur d'accès protégé ne peut pas être appliqué à la classe
et aux interfaces. Les méthodes et les champs peuvent être déclarés
protégés. Toutefois, les méthodes et les champs d'une interface ne
peuvent pas être déclarés protégés.
Méthodes en JAVA

▪ Une méthode est un module de programme contenant une série


d'instructions permettant d'exécuter une tâche.
▪ Toute classe peut contenir un nombre illimité de méthodes et chaque
méthode peut être appelée un nombre illimité de fois.
▪ Une classe peut contenir des méthodes qui ne sont jamais appelées à
partir d'une application particulière
▪ Une méthode main() s'exécute automatiquement lorsque vous
exécutez un programme
Méthodes en JAVA: création d’une méthode
Syntaxe:

Chaque méthode doit inclure les deux parties décrites dans la syntaxe:

▪ En-tête - L’en-tête de la méthode fournit des informations sur la manière dont les autres méthodes
peut interagir avec elle. Un en-tête de méthode est également appelé une déclaration.

▪ Un corps de la méthode entre deux accolades: le corps de la méthode contient les instructions
permettant d'effectuer le travail de la méthode.
Méthodes en JAVA: création d’une méthode

▪ En-tête:
▪ Le modificateur : indique l’accessibilité autorisant ou pas l’appel
aux méthodes de la classe
▪ Le type de retour : et le type de la valeur renvoyée par la fonction,
si pas de renvoie le type et « void»
▪ Les paramètres: est une liste de paramètres formels nommés et
typés séparés par des virgules (cette liste peut être vide)

▪Par convention le nom d’une méthode commence par une minuscule


suivie de minuscules avec une majuscule pour chaque nouveau mot
Les constructeurs en JAVA

▪ Les constructeurs d'une classe doivent avoir le même nom que le


nom de la classe dans laquelle elle réside.
▪ Un constructeur en Java ne peut pas être abstrait, final, statique
▪ Les modificateurs d’accès peuvent être utilisés dans la déclaration du
constructeur pour contrôler son accès, c’est-à-dire quelle classe peut
appeler le constructeur.
Les constructeurs en JAVA

▪ Les constructeurs sont utilisés pour initialiser l’état de l’objet. Comme


les méthodes, un constructeur contient également une collection
d'instructions qui sont exécutées au moment de la création de l'objet
▪ Chaque fois qu'un objet est créé à l'aide du mot-clé new, au moins un
constructeur (il peut s'agir d'un constructeur par défaut) est appelé
pour affecter des valeurs initiales aux données membres de la même
classe.
▪ Un constructeur est appelé lors de la création d'un objet ou d'une
instance.
Types de constructeurs

▪ Il existe deux types de constructeur en Java:


▪ Constructeur sans argument : Un constructeur sans paramètre est
appelé constructeur par défaut. Si nous ne définissons pas de
constructeur dans une classe, le compilateur crée un constructeur par
défaut (sans argument) pour la classe. Et si nous écrivons un constructeur
avec des arguments ou sans arguments, le compilateur ne crée pas de
constructeur par défaut.
▪ Constructeur paramétré: Un constructeur qui a des paramètres est
appelé constructeur paramétré. Si nous voulons initialiser les champs de
la classe avec vos propres valeurs, utilisez un constructeur paramétré.
Les constructeurs en JAVA : exemple

Résultat:
Héritage

▪ En Java et dans tous les langages orientés objet, l'héritage est un


mécanisme qui permet à une classe d’acquérir tous les
comportements et attributs d’une autre classe, ce qui signifie que
vous pouvez créer une nouvelle classe simplement en indiquant en
quoi elle diffère d’une classe qui a déjà été développée et testée.
▪ Lorsque vous créez une classe en la faisant hériter d'une autre classe,
la nouvelle classe contient automatiquement les champs de données
et les méthodes de la classe d'origine.
Héritage

▪ Créer une nouvelle classe à partir d'une classe existante en partageant les
attributs et ses méthodes
▪ Les relations d’héritage forment une hiérarchie
▪ Spécialisation (classes descendantes)
▪ Généralisation (classes ascendantes)
▪ Au sommet se situe la classe mère (ou superclasse)
▪ En dessous: la classe fille (ou sous-classe)
Héritage

▪ Avantages
▪ Spécialisation/Enrichissement
La classe s’enrichie en ajoutant ses propres attributs et méthodes
▪ Redéfinition
La classe fille redéfinit les méthodes d’une classe mère de façon à adapter son
comportement
▪ Réutilisation
Evite la réécriture du code existant en factorisant les parties communes du code
Héritage

▪ Exemple des Véhicules


▪ Toutes les classes filles héritent
▪ Des attributs
▪ Des méthodes
▪ Chaque type à ses spécificités
▪ Des attributs supplémentaires
▪ Des méthodes supplémentaires
▪ Une réécriture du comportement de ses parents
Héritage

▪ Héritage en JAVA
▪ Utilisation du mot clé extends
Surcharge de méthode

▪ La surcharge permet à différentes méthodes d’avoir le même nom,


mais des signatures différentes où la signature peut différer en
fonction du nombre de paramètres d’entrée, du type de paramètres
d’entrée ou des deux.
▪ Deux possibilités
▪ Surcharger une méthode Proposer une nouvelle implémentation
▪ Redéfinir une méthode (overriding) Ecraser une méthode héritée en fournissant une implémentation
spécifique

▪ Quel est l’avantage :


▪ Nous n’avons pas besoin de créer et de mémoriser des noms différents
pour des méthodes faisant la même chose. Par exemple, dans notre
code, si la surcharge n'était pas prise en charge par Java, il faudrait créer
des noms de méthodes tels que somme1, somme2,… ou somme2Int, ...
Surcharge de méthode

▪ Surcharge
▪ Apres surcharge d’une méthode
▪ La méthode héritée n’est plus directement accessible
▪ Possibilité de faire appel explicitement aux méthodes de la classe
mère à l’aide de super
▪ super permet de désigner explicitement la partie d’une classe
qui correspond à sa classe mère
▪ Exemple: [Link]()
Surcharge de méthode : exemple

• Exemple d’appel explicite à fonction de la classe mere


Surcharge de méthode: exemple

Résultat:
polymorphisme

▪ Concept à travers lequel des objets peuvent être manipulés sans en


connaitre véritablement le type
▪ Repose sur la notion d’héritage
▪ Par exemple:
Voiture, Avion et Bateau sont des Véhicules.
▪ L’interface est commune Quel que soit le véhicule, il peut:
▪ démarrer
▪ avancer
polymorphisme
Classe abstraite

• De la même façon qu'il est possible d'empêcher quelqu'un


d'étendre une classe, ou de surcharger une méthode, il est
possible de forcer l'extension ou la surcharge, en utilisant le mot-
clé abstract. Formellement une classe abstraite n'est pas
différente d'une classe normale. Simplement, elle est déclarée
en ajoutant le mot-clé abstract, comme dans l'exemple suivant.
Classe abstraite

▪ On peut déclarer autant de méthodes abstraites que l'on veut dans


une classe abstraite, y compris ne pas en déclarer du tout. Une
méthode abstraite, comme dans notre exemple, ne comporte qu'une
déclaration de signature , elle n'a pas de corps.
▪ D'une façon générale :
▪ une classe abstraite peut étendre une autre classe abstraite ;
▪ une classe abstraite peut étendre une classe concrète ;
▪ une classe concrète qui étend une ou plusieurs classes abstraites
(indirectement), doit obligatoirement fournir une implémentation pour
toutes les méthodes abstraites existantes.
Classe abstraite : exemple
▪ Dans notre exemple :
▪ on ne peut pas instancier A, qui est abstraite ;
▪ on ne peut pas non plus instancier B, car même si
elle n'a pas de méthode abstraite, elle est tout de
même déclarée abstraite ;
▪ on ne peut pas instancier C ;
▪ on peut instancier D, qui possède bien une
implémentation pour ouSuisJe() (par
extension de B), et pour ouVasTu().
Les interfaces

• Les interfaces contiennent uniquement des définitions de constante


et des déclarations de méthodes, sans leur définition (autrement dit,
les méthodes indiquées dans les interfaces ne comportent que le
prototype sans le corps). La déclaration d'une interface se présente
comme celle d'une classe. On utilise simplement le mot
clé interface à la place de class
Les interfaces

▪ Une interface se crée comme une classe, sauf qu’on utilise le mot clé
Interface
Public Interface nomInterface { … }
▪ Lors de la création d’une classe, on précise qu’une classe
implémente une interface avec le mot-clé implements
public class maClass implements Interface
▪ Implémenter plusieurs interfaces et hériter également d’une
classe public
class maClasse2 extends MaClasse implements Interface1, Interface2 { … }
Les interfaces: exemple
Les interfaces
Classe abstraite Interface
▪ Partiellement implémentée ▪ Aucune implémentation
▪ Peut posséder des attributs ▪ Pas d’attributs
▪ Peut posséder des méthodes déjà ▪ Toutes les méthodes sont
implémentées abstraites
▪ Une classe hérite d’une classe ▪ Une classe implémente une
abstrait interface
▪ Pas instanciable, mais peut avoir ▪ Pas instanciable et pas de
un constructeur constructeur
▪ Une classe JAVA n’hérite que ▪ Une classe JAVA peut
d’une seule classe (abstraite ou implémenter plusieurs Interfaces
pas)

Vous aimerez peut-être aussi