133 JAVA - © Christine Bonnet
LA PROGRAMMATION OBJET EN JAVA
INTRODUCTION
LA PROGRAMMATION OBJET EN JAVA
INTRODUCTION
1010
http://docs.oracle.com/javase/8/docs/api/
134 JAVA - © Christine Bonnet
INTRODUCTIONINTRODUCTION
Java est un langage purement orienté objets
tout le code Java est contenu dans des classes
pas de fonctions globales définies en dehors
d'une classe
Toutes les classes dérivent de la méta-classe
Object
Les packages regroupent des classes de
l'application liées logiquement
ils permettent de contrôler l'accès aux classes
(visibilité, accessibilité) et d'importer les classes
Java est un langage purement orienté objets
tout le code Java est contenu dans des classes
pas de fonctions globales définies en dehors
d'une classe
Toutes les classes dérivent de la méta-classe
Object
Les packages regroupent des classes de
l'application liées logiquement
ils permettent de contrôler l'accès aux classes
(visibilité, accessibilité) et d'importer les classes
135 JAVA - © Christine Bonnet
DÉFINITION D'UNE CLASSEDÉFINITION D'UNE CLASSE
[indic] class NomClasse [extends NomSuperClasse][implements
NomInterface, NomInterface,…] {
[indic_acces] [static] type attribut1;
[indic_acces] [static] type attribut2;
[indic_acces] [static] typeRetourne methode1(liste_param) {
}
[indic_acces] [static] typeRetourne methode2(liste_param) {
}
} // fin définition classe
[indic] class NomClasse [extends NomSuperClasse][implements
NomInterface, NomInterface,…] {
[indic_acces] [static] type attribut1;
[indic_acces] [static] type attribut2;
[indic_acces] [static] typeRetourne methode1(liste_param) {
}
[indic_acces] [static] typeRetourne methode2(liste_param) {
}
} // fin définition classe
136 JAVA - © Christine Bonnet
public class Client {
// variables d'instance
private String nomClient;
private int codePostalClient;
private float soldeClient;
// méthodes d'instance
public float getSolde (String cli) {
}
}
Déclaration
Variable
d'instance
Méthode
d'instance
EXEMPLEEXEMPLE Client
String nomClient
int codePostalClient
float soldeClient
float getSolde (String)
137 JAVA - © Christine Bonnet
Définition d'une classe : INDICATEURS D'ACCÈS
et autres déclarations
Définition d'une classe : INDICATEURS D'ACCÈS
et autres déclarations
public : la classe est visible à l'extérieur du package
(par toutes les classes)
Par défaut une classe n'est visible que pour les
classes du même package (package-private)
abstract : la classe est abstraite (principe de
délégation-polymorphisme)
final : la classe ne peut pas être dérivée
Combinaisons : public abstract, public final
public : la classe est visible à l'extérieur du package
(par toutes les classes)
Par défaut une classe n'est visible que pour les
classes du même package (package-private)
abstract : la classe est abstraite (principe de
délégation-polymorphisme)
final : la classe ne peut pas être dérivée
Combinaisons : public abstract, public final
[indic] class NomClasse …[indic] class NomClasse …
138 JAVA - © Christine Bonnet
Définition des membres de la classe :
INDICATEURS D'ACCÈS
Définition des membres de la classe :
INDICATEURS D'ACCÈS
Membres d'une classes = attributs et méthodes
public : accès possible partout où sa classe est
accessible
Par défaut : accès possible depuis toutes les classes
du même package (package-private)
protected : accès possible depuis toutes les classes
du même paquetage et depuis les classes dérivées
(qu'elles appartiennent ou non au même package)
private : accès restreint à la classe où est faite la
déclaration
Membres d'une classes = attributs et méthodes
public : accès possible partout où sa classe est
accessible
Par défaut : accès possible depuis toutes les classes
du même package (package-private)
protected : accès possible depuis toutes les classes
du même paquetage et depuis les classes dérivées
(qu'elles appartiennent ou non au même package)
private : accès restreint à la classe où est faite la
déclaration
139 JAVA - © Christine Bonnet
LES OBJETSLES OBJETS
Un objet est une instance d'une classe créée par
un constructeur
Tous les objets d'une classe ont les mêmes
attributs et le même comportement (méthodes)
Un objet est identifié par une référence permet
de distinguer des objets ayant les mêmes valeurs
d'attributs
Un objet est une instance d'une classe créée par
un constructeur
Tous les objets d'une classe ont les mêmes
attributs et le même comportement (méthodes)
Un objet est identifié par une référence permet
de distinguer des objets ayant les mêmes valeurs
d'attributs
140 JAVA - © Christine Bonnet
CRÉATION D'UN OBJETCRÉATION D'UN OBJET
Déclaration d'une variable référence d'objet
NomClasse nomObjet;
Création d'une instance : opérateur new
nomObjet = new NomClasse();
new
alloue de la mémoire pour le nouvel objet
appelle un constructeur pour initialiser les
valeurs des attributs de l'objet
renvoie (dans nomObjet) une référence sur le
nouvel objet créé qui pointe sur l'emplacement
de l'objet en mémoire
Déclaration d'une variable référence d'objet
NomClasse nomObjet;
Création d'une instance : opérateur new
nomObjet = new NomClasse();
new
alloue de la mémoire pour le nouvel objet
appelle un constructeur pour initialiser les
valeurs des attributs de l'objet
renvoie (dans nomObjet) une référence sur le
nouvel objet créé qui pointe sur l'emplacement
de l'objet en mémoire
141 JAVA - © Christine Bonnet
CRÉATION D'UN OBJET (suite)CRÉATION D'UN OBJET (suite)
Film film1 = new Film();
OU
Combinaison de la déclaration de la référence d'objet et de la
création de l'objet
NomClasse nomObjet = new NomClasse();
OU
Combinaison de la déclaration de la référence d'objet et de la
création de l'objet
NomClasse nomObjet = new NomClasse();
Film film1;
film1 = new Film();
OUOU
La variable d'objet est initialisée à nullLa variable d'objet est initialisée à null
new la variable d'objet pointe sur un objetnew la variable d'objet pointe sur un objet
142 JAVA - © Christine Bonnet
AFFECTATION DE RÉFÉRENCESAFFECTATION DE RÉFÉRENCES
Affectation d'une référence à une autre
deux références pour un même objet
Affectation d'une référence à une autre
deux références pour un même objet
Film film1 = new Film();
film1
Film film2 = film1;
film2
titre : null
categorie : null
143 JAVA - © Christine Bonnet
LES ATTRIBUTSLES ATTRIBUTS
Deux types :
Variables d'instance
Variables de classe
Deux types :
Variables d'instance
Variables de classe
DÉCLARATION D'UNE VARIABLE :DÉCLARATION D'UNE VARIABLE :
[indic_acces] [static] [final] type nomVariable [= valeur];[indic_acces] [static] [final] type nomVariable [= valeur];
144 JAVA - © Christine Bonnet
VARIABLES D'INSTANCEVARIABLES D'INSTANCE
Variables utilisées par les objets d'une classe
Propres à chaque instance de la classe
Décrivent l'état de l'objet (attributs)
Variables utilisées par les objets d'une classe
Propres à chaque instance de la classe
Décrivent l'état de l'objet (attributs)
[indic_acces] [final] type nomVariable [= valeur];[indic_acces] [final] type nomVariable [= valeur];
145 JAVA - © Christine Bonnet
VARIABLES D'INSTANCE - suiteVARIABLES D'INSTANCE - suite
Accès :
variables définies private : par les méthodes de sa
classe uniquement (accès par nomAttribut)
variables définies protected : par les méthodes de
sa classe, de ses sous-classes (nomAttribut) et des
classes du même paquetage (opérateur "." :
nomObjet.nomAttribut)
variables définies public : par toutes les méthodes
(nomObjet.nomAttribut)partout où sa classe est
accessible
Accès :
variables définies private : par les méthodes de sa
classe uniquement (accès par nomAttribut)
variables définies protected : par les méthodes de
sa classe, de ses sous-classes (nomAttribut) et des
classes du même paquetage (opérateur "." :
nomObjet.nomAttribut)
variables définies public : par toutes les méthodes
(nomObjet.nomAttribut)partout où sa classe est
accessible
[indic_acces] [final] type nomVariable [= valeur];[indic_acces] [final] type nomVariable [= valeur];
146 JAVA - © Christine Bonnet
VARIABLES D'INSTANCE ET ENCAPSULATIONVARIABLES D'INSTANCE ET ENCAPSULATION
L'encapsulation est un concept clé en programmation
orienté objets
Implémentation ignorée
Utilisation des objets par l'intermédiaire de la partie
"interface" d'une classe
Permet d'utiliser des objets sans savoir comment ceux-
ci fonctionnent (par exemple un lecteur DVD, un guichet
automatique de banque, etc.)
Respect de l'encapsulation :
Les variables d'instance doivent être déclarées privées
(Seules les méthodes d'une classe peuvent avoir accès aux
variables d'instance privées de cette classe)
L'encapsulation est un concept clé en programmation
orienté objets
Implémentation ignorée
Utilisation des objets par l'intermédiaire de la partie
"interface" d'une classe
Permet d'utiliser des objets sans savoir comment ceux-
ci fonctionnent (par exemple un lecteur DVD, un guichet
automatique de banque, etc.)
Respect de l'encapsulation :
Les variables d'instance doivent être déclarées privées
(Seules les méthodes d'une classe peuvent avoir accès aux
variables d'instance privées de cette classe)
147 JAVA - © Christine Bonnet
INITIALISATION DES VARIABLES D'INSTANCEINITIALISATION DES VARIABLES D'INSTANCE
A la création d'un objet initialisation par défaut de
toutes les variables d'instance
('\u0000' pour les variables de type char, 0 pour byte, short,int et long, false pour
boolean, 0.0 pour float et double, null pour les références d'objet)
Initialisations explicites : les variables d'instance peuvent
être initialisées dans les déclarations
Les constructeurs permettent des initialisations plus
complexes
A la création d'un objet initialisation par défaut de
toutes les variables d'instance
('\u0000' pour les variables de type char, 0 pour byte, short,int et long, false pour
boolean, 0.0 pour float et double, null pour les références d'objet)
Initialisations explicites : les variables d'instance peuvent
être initialisées dans les déclarations
Les constructeurs permettent des initialisations plus
complexes
public class Film {
private String titre;
private String categorie = "C";
private int nbDeCesars;
148 JAVA - © Christine Bonnet
VARIABLES DE CLASSE (static)VARIABLES DE CLASSE (static)
Variables partagées par tous les objets d'une classe
(identiques pour tous les objets de la classe)
Information à propos des instances
Non créées dans les instances
Variables partagées par tous les objets d'une classe
(identiques pour tous les objets de la classe)
Information à propos des instances
Non créées dans les instances
[indic_acces] static [final] type nomVariable [= valeur];[indic_acces] static [final] type nomVariable [= valeur];
public class Film {
private static double prixMinmin; // var. de classe
private String titre, categorie; // var. d'instance
prixMin
classe Film objets Film
titre
categorie
titre
categorie
public class Film {
private static double prixMin ; // var. de classe
private String titre, categorie; // var. d'instance
prixMin
classe Film objets Film
titre
categorie
titre
categorie
titre
categorie
titre
categorie
149 JAVA - © Christine Bonnet
Initialisées à la déclaration ou par une méthode de classe
Exemples :
private static int capacite = 10;
private static varType maVar = initialiseVarClasse();
public static varType initialiseVarClasse() {
// code d'initialisation …
}
Accès depuis l'extérieur de la classe (si la variable est
déclarée public) par NomClasse.nomVariableStatic
Si la variable de classe est une constante :
private static final type NOM = valeur;
Exemple : public static final double PI (constante pi
de la classe Math)
Initialisées à la déclaration ou par une méthode de classe
Exemples :
private static int capacite = 10;
private static varType maVar = initialiseVarClasse();
public static varType initialiseVarClasse() {
// code d'initialisation …
}
Accès depuis l'extérieur de la classe (si la variable est
déclarée public) par NomClasse.nomVariableStatic
Si la variable de classe est une constante :
private static final type NOM = valeur;
Exemple : public static final double PI (constante pi
de la classe Math)
150 JAVA - © Christine Bonnet
DÉFINITION D'UNE MÉTHODEDÉFINITION D'UNE MÉTHODE
Toujours dans la définition d'une classe
Les méthodes privées ne sont pas héritées
Les méthodes final ne peuvent pas être substituées
typeRetourné: nécessaire dans toutes les définitions
de méthodes (excepté les constructeurs)
type primitif type classe void
Le nombre d'arguments est fixe pour une méthode
Toujours dans la définition d'une classe
Les méthodes privées ne sont pas héritées
Les méthodes final ne peuvent pas être substituées
typeRetourné: nécessaire dans toutes les définitions
de méthodes (excepté les constructeurs)
type primitif type classe void
Le nombre d'arguments est fixe pour une méthode
[indic_acces] [static] typeRetourné nomMethode
([arguments]) <bloc_de_code java>
151 JAVA - © Christine Bonnet
Deux types de méthodes :
Méthodes de classe (static)
Méthodes d'instance
Deux types de méthodes :
Méthodes de classe (static)
Méthodes d'instance
152 JAVA - © Christine Bonnet
MÉTHODES DE CLASSE (static)MÉTHODES DE CLASSE (static)
Méthode partagée par toutes les instances de la classe à
laquelle elle appartient
N'a accès directement qu'aux variables de classe et aux
méthodes de classe de sa classe. N'opère pas sur un
seul objet
Appel d'une méthode de classe :
NomClasse.nomMethodeClasse(liste_arguments);
OU
nomObjet.nomMethodeClasse(liste_arguments);
Méthode partagée par toutes les instances de la classe à
laquelle elle appartient
N'a accès directement qu'aux variables de classe et aux
méthodes de classe de sa classe. N'opère pas sur un
seul objet
Appel d'une méthode de classe :
NomClasse.nomMethodeClasse(liste_arguments);
OU
nomObjet.nomMethodeClasse(liste_arguments);
[indic_acces] static typeRetourné nomMethode
([arguments]) { … }
1 / 15 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !