POO avec JAVA
2/17/22 07:58 PM Bouira University,S.B E N S L I M A N I 1
Structure du code source
d’un programme JAVA
2/17/22 07:58 PM Bouira University,S.B E N S L I M A N I 2
code source ?
C’est ce qu’écrit le
programmeur en langage JAVA
Le code source doit être compilé
pour devenir un code machine
qu’une machine peut exécuter?
2/17/22 07:58 PM Bouira University,S.B E N S L I M A N I 3
Le code source JAVA se trouve
dans un ou plusieurs fichiers
texte ayant un nom qui se
termine par l’extension .java
Exemple: [Link] [Link]
[Link]
2/17/22 07:58 PM Bouira University,S.B E N S L I M A N I 4
Un ifichier code source comporte des
structures de données appelées classe
Comme un type structuré en langage
C, une classe comporte des champs
En plus des champs, une classe peut
contenir des fonctions (ou fonctions
membre)
En orienté objet :
- L e s c h a m p s s o n t a p p e l é s attributs
o u propriété
- L e s fonctions sont appelées
Bouira University, C S Dpt, OOP
2/17/22 07:43 PM 5
m é t h o d e s With Java, Introduction to Java
Une classe peut donc contenir
- des attributs ou propriétés
- des méthodes
2/17/22 07:43 PM Bouira University,S.B E N S L I M A N I 6
Comment écrire une classe dans un
programme JAVA
2/17/22 07:43 PM Bouira University,S.B E N S L I M A N I 7
Une classe java est définie
à l’aide du mot clé c l a s s
2/17/22 07:43 PM Bouira University,S.B E N S L I M A N I 8
Exemple 0 1
Nom de la classe
R E M A R Q U E IMPORTANTE
Le N o m d’une classe doit
commencer obligatoirement par
une lettre Majuscule
2/17/22 07:43 PM Bouira University,S.B E N S L I M A N I 9
Exemple 0 1
Le corps de la classe est délimité
par
2 accolades
2/17/22 07:43 PM Bouira University,S.B E N S L I M A N I 10
Exemple 0 1
Ceci est une classe vide. Son
corps ne contient aucune écriture
2/17/22 07:43 PM Bouira University,S.B E N S L I M A N I 11
Rappels sur le Contenu d’une classe
Une classe contient la
- L a déclaration d e variable
- L a d é finition d e fonction
En java on parle plutôt
- D’attributs a u lieu d e
variable
- D e M é t h o d e s a u lieu d e
fonction
2/17/22 07:58 PM Bouira University,S.B E N S L I M A N I 12
Exemple 1
13
2/17/22 07:43 PM Bouira University,S.B E N S L I M A N I
Exemple 1 (suite): Détail
2/17/22 07:43 PM Bouira University,S.B E N S L I M A N I 14
Exemple 1 (suite): Détail
2/17/22 07:43 PM Bouira University,S.B E N S L I M A N I 15
Exemple 1 (suite): Détail
2/17/22 07:43 PM Bouira University,S.B E N S L I M A N I 16
Exemple 1 (suite): Détail
2/17/22 07:43 PM Bouira University,S.B E N S L I M A N I 17
Les variables en Java (ou attributs)
Toute variable ( o u attributs)
est associé à un type de
donnée
L’association d u t y p e d e
d o n n é e et la variable e s t
d é fini lors d e la déclaration
d e la variable
2/17/22 07:43 PM Bouira University,S.B E N S L I M A N I 18
Les variables en Java (ou attributs)
La déclaration de variable en Java
possède la même forme qu’en C
ou C + +
Déclaration sans initialisation
typeDeDonnée variable ;
Déclaration avec initialisation
t y p e D e D o n n é e variable =
valeur_initiale;
2/17/22 07:57 PM Bouira University,S.B E N S L I M A N I 19
Exemple
int int
nombreDePersonn nombreDePiece =
e; 12;
Déclarat ion s a n s Déclarat ion a v e c
initialisation initialisation
2/17/22 07:58 PM Bouira University,S.B E N S L I M A N I 20
Les types de données
2 catégories
L e s type primitifs (scalaire):
permettent d e créer d e s v a r i a b l e s
primitive
L e s t y p e s structurés
p e rm e t t e n t d e créer d e s v a r i a bl e s
structurées
2/17/22 07:58 PM Bouira University,S.B E N S L I M A N I 21
Les types primitifs en Java
N o m du Espace c o m m ent ai re
type mémoi
r e
occup
é
Byte 8 bit Entier signé
Short 16 bit Entier signé
Int 32 bits Entier signé
long 64 bits Entier signé
float 32 bits Nombre réel simple précision format: IEEE 754
double 64 bits Nombre réel double précision format: IEEE 754
boolea n ??? 2 valeurs:true et false
char 16 bits Caractère U N I C O D E , d e \u0000 à \uFFFF
2/17/22 07:58 PM Bouira University,S.B E N S L I M A N I 22
Les référence: Un type primitif particulier
U n e référence e s t u n e variable
utilisé p o u r localiser l e s objets
(variable structurées)
U n e référence contient les
i n f o r m a t i o n s d e localisation d’un
objet.
Joue u n rôle similaire a u
pointeur d a n s le l a n g a g e C
2/17/22 07:48 PM Bouira University,S.B E N S L I M A N I 23
Différence entre pointeur et référence
U n pointeur e st
u n entier n o n
signéreprésentan U n e référence n’est
t u n e a d r e s s e en p a s u n n o m b r e entier.
mémoire
Toutes les
S e u l s les o p é r a t e u r s =
op é r a t i o n s
et = = s o n t p o s s i b l e
arithmétique et
a v e c les références
logique sont
p o s s i b l e s u r les
pointeur
( = , = = , + , -, *, % ,
etc..
2/17/22 07:48 PM Bouira University,S.B E N S L I M A N I 24
Variable structuré et objet
En java on parle plutôt
- D’objets a u lieu d e variable
structuré
- C l a s s e o u c l a s s e d’objet a u lieu
d e t y p e structuré
Le t e r m e c l a s s e s t utilisé pour
d é f i n i r d e s p r o g r a m m e s et
d e s t y p e s structurés
2/17/22 07:48 PM Bouira University,S.B E N S L I M A N I 25
Exemple de type structuré (classe)
class Date {
int jour, m o i s , a n n e e
}
2/17/22 07:48 PM Bouira University,S.B E N S L I M A N I 26
Comment créer une variable structurée (objet)
Utilisation d e l’opérateur n e w
suivi d u n o m d e la c l a s s e suivi d e
parenthèse
D a t e d;
d = new Date()
d e s t u n e référence a s s o c i é e a u
t y p e structuré ( o u c l a s s e ) D a t e
2/17/22 07:50 PM Bouira University,S.B E N S L I M A N I 27
Ou se trouve les objet en mémoire et
quand est ce qu’ils sont créés (instanciés)
Tous les objets ( t o u t e s les v a r i a b l e s n o n
primitives) résident e n m é m o i r e d y n a m i q u e (le
tas)
L e s objets s o n t i n s t a n c i é s (créés) lors de
l’exécution d u p r o g r a m m e p a r l’opérateur n e w
L’opérateur n e w instancie l’objet à l ’ i m a g e d e la
c l a s s e d o n n é e et retourne la référence d e l’objet crée
L’opérateur n e w c o r r e s p o n d à l’instruction malloc d e
C. n e w e s t c e p e n d a n t u n opérateur p l u s complet
Contrairement à malloc, n e w initialise à 0 t o u s les
bit s d e la zone m é m o i r e allouée à l’objet
2/17/22 07:50 PM Bouira University,S.B E N S L I M A N I 28
Accès au champ d’un objet:
Utilisation de l’opérateur .
D a t e d;
d = new Date()
[Link] = 12;
d . m o i s = 4;
d. a n n ee = 2021;
2/17/22 07:50 PM Bouira University,S.B E N S L I M A N I 29
Les fonctions d’objets
E n p l u s d e s attributs, il e s t
p o s s i b l e d e doter l e s objets d e
fonctionnalité: O n parle a l o r s d e
m é t h o d e d’objet
2/17/22 07:50 PM Bouira University,S.B E N S L I M A N I 30
Exemple de type structuré (classe)
class Date {
int jour, m o i s , annee;
v o i d setJour(int j ) {
jour = j;
}
v o i d m o d i f i e r (int j, int m, int a ) {
jour = j; m o i s = m ; a n n e e = a;
}
}
2/17/22 07:50 PM Bouira University,S.B E N S L I M A N I 31
Accès au méthode d’objet:
Utilisation de l’opérateur .
D a t e d;
[Link](10,2, 2015)
2/17/22 07:50 PM Bouira University,S.B E N S L I M A N I 32
RECAP
C JAVA
Variable Attribut
Variable primitive Attribut primitif
Variable structurée Objet
Type structuré Classe
pointeur Référence
malloc new
2/17/22 07:52 PM Bouira University,S.B E N S L I M A N I 33
Les 2 catégories d’attributs et
méthodes
- Attribut et méthode de classe
- Attribut et méthode d’objet
Le mot clé static est utilisé pour
désigner les attributs et
méthode de classes
2/17/22 07:52 PM Bouira University,S.B E N S L I M A N I 34
Les Attributs et méthodes de classe sont
accessible par l’operateur . Appliqué à la
classe
Exemple:
class A { class B {
static int x = static int y;
100; static coderY(){
} B.y = A.x *
[Link];
class C {
//ou y =A.x*[Link];
static cle =
}
2000;
}
}
2/17/22 07:52 PM Bouira University,S.B E N S L I M A N I 35
Les Attributs et méthodes d’objet sont
accessibles par l’operateur . appliqué à
la référence de l’objet
Il faut q u e l’objet existe (a été
instancié par new) avant d’appliquer
l’operateur . à la référence de l’objet
2/17/22 07:52 PM Bouira University,S.B E N S L I M A N I 36
Exemple
2/17/22 07:54 PM Bouira University,S.B E N S L I M A N I 37
Structure sur fichier
d’un programme JAVA
2/17/22 07:54 PM Bouira University,S.B E N S L I M A N I 38
Structure d’un programme JAVA
Un programme Java se présente
sous la forme d’un ou plusieurs
fichiers
Chaque fichier contient une
ou plusieurs classes
2/17/22 07:58 PM Bouira University,S.B E N S L I M A N I 39
Exemples 1
Un programme JAVA composé d’une classe
p a c k a g e lesson 01;
public c l a s s A s s a l a m o u A l a y k o u m {
public static void main(String[] args) {
[Link](" )"السالم عليكم
}
}
Fichier A s s a l a m o u A l a y k o u m . j a v a
2/17/22 07:58 PM Bouira University,S.B E N S L I M A N I 40
Exemple 2
Un programme JAVA composé de plusieurs
classes
Salam Languages
SalamInAnyLan
guage
2/17/22 07:58 PM Bouira University,S.B E N S L I M A N I 41
Exemple 2 (suite)
Fichier L a n g u a g e s . j a v a
p a c k a g e lesson 01;
public c l a s s L a n g u a g e s {
Static final int A R = 0;
static final int E N = 1;
static final int F R = 2;
}
2/17/22 07:58 PM Bouira University,S.B E N S L I M A N I 42
Exemple 2 (suite)
Un programme JAVA composé de plusieurs
classes
p a c k a g e lesson 01 ;
public c l a s s S a l a m I n A n y L a n g u a g e {
static St r i n g[ ] s a l a m = {
" " ا ل س ال م ع ل ي ك م,
"Hello",
"Salut"
};
}
Fichier [Link]
2/17/22 07:58 PM Bouira University,S.B E N S L I M A N I 43
Exemple 2 (suite)
p a c k a g e lesson01;
public c l a s s S a l a m {
public static v o i d m a i n ( S t r i n g [ ] a r g v ) {
String s =
[Link][[Link]]);
[Link](s)
}
}
Fichier S a l a m . j a v a
2/17/22 07:58 PM Bouira University,S.B E N S L I M A N I 44
Notion de package
Une classe se trouve dans un package
Au niveau du système d’exploitation le
package est représenté par un dossier
- Une classe est sauvegardé dans un fichier
- Le fichier se trouve dans un dossier (package)
2/17/22 07:58 PM Bouira University,S.B E N S L I M A N I 45
Exemple 1
Soit la classe Scolarite qui est
sauvegardé dans le fichier
[Link]
La classe Scolarite se trouve dans
le package tp01.
Le f i c h i e r [Link] trouve
dans un dossier appelé tp01.
2/17/22 07:56 PM Bouira University,S.B E N S L I M A N I 46
Exemple 2
Soit la classe Ihm qui est sauvegardé
dans le fichier [Link]
La classe Ihm se trouve dans le package
[Link]
Le fichier [Link] se trouve dans
un dossier appelé tp02\interaction\
utilisateur
2/17/22 07:56 PM Bouira University,S.B E N S L I M A N I 47
Règle de n o m m a g e des
fichiers contenant le code
source Java
2/17/22 07:57 PM Bouira University,S.B E N S L I M A N I 48
Un f i ch ier .java peut contenir une ou plusieurs
classe
Au plus, une et une seule classe peut être
qualifiée de public
Si une classe est qualifiée de public, le fichier
doit obligatoirement porter le nom de la classe
Si aucune classe ne possède le qualificateur
public, le fichier doit porterun nom
quelconque. D a n s ce c a s le n o m d u f i c h i e r
doit c o m m e n c e r p a r u n e minuscule.
2/17/22 07:58 PM Bouira University,S.B E N S L I M A N I 49