Cours Java Part 1
Cours Java Part 1
OBJET JAVA
Email: imen.bensaid@fsegs,usf,tn
Introduction to programming
using java
ORACLE JAVA SE Programmer
I
1
Plan du cours
o Chapitre 1 : Introduction générale
o Chapitre 2 : Classes et Objets en JAVA
o Chapitre 3 : Paquetages
o Chapitre 4 : Héritage et Polymorphisme
o Chapitre 5 : Exceptions
2
INTRODUCTION GÉNÉRALE
3
Introduction
• Modèles statiques
• Modèles dynamiques.
Conception • création des structures de
stockage
Etude • Programmation
Développement
Préalable
• Définition des besoins
• Analyse des besoins
• Collecte des données Exploitation • Simulation et test
• etc. • Mise en œuvre
• Formation, visite, etc
4
Introduction
Programmation Procédurale vs Programmation Orientée Object
Données
Données
Données Traitements Traitements
Traitements
d'équipe difficile.
Concepts de base de la POO
6
Concepts de base de la POO
1. Objet:
✓ Le concept d’objet est utilisé pour modéliser
informatiquement des "objets" concrets de la vie courante
(voiture, personne, etc.) ou des objets conceptuels (abstraits)
(date, rdv, etc.).
Puissance=120 hauteur=300
demarrer() Deplacer()
10
Concepts de base de la POO
3. L'encapsulation
• L'encapsulation consiste à rassembler les données et les
traitements afférents au sein d'une structure unique (entité)
11
Concepts de base de la POO
4. L’héritage
Hérite
Classe fille
12
Concepts de base de la POO
5. Le polymorphisme
13
Concepts de base de la POO
5. Abstraction
14
Le langage JAVA
• Java est un langage de programmation orienté objet (Classe,
Objet, Héritage, Encapsulation et Polymorphisme)
✓ Des applets java (applications java destinées à s’exécuter dans une page web)
16
Le langage JAVA
• Pour créer une application java, il faut
installer un JDK kit de développement JDK (outils de
java développement javac, Javah,
appletviewer, etc.,)
• Le JDK contient l’ensemble d’outils et
d’API qui permettent le JRE (Runtime
développement de programmes avec libraries)
Java. Il contient lui-même le JRE.
23
Les modificateurs d’accès (public/private)
Local variable
Attention les variables locales
doivent être initialisées
Exercice 1
• Ecrire une classe nommée Rectangle comportant deux attributs longueur
et largeur de type int ,
• Ajouter à la classe Rectangle les deux méthodes suivantes:
• La méthode initialise qui initialise les deux attributs de la classe avec
des valeurs données en paramètres de la méthode
• La méthode calculSurface qui calcule et renvoie la surface du
rectangle
class Rectangle {
private int longueur ;
private int largeur ;
class Test {
31
La méthode main
32
La notion de Constructeur
• Le constructeur d'une classe est une méthode appelée une
seule fois par objet et ce au moment de sa création. Le
constructeur porte le même nom que la classe
• Le constructeur est toujours publique et ne possède pas de
type de retour (même pas void).
33
La notion de Constructeur
• Le rôle du constructeur est d'initialiser les attributs de
l'objet
34
La notion de Constructeur
• Le programmeur peut définir plusieurs constructeurs pour
initialiser certains attributs
35
La notion de Constructeur
• En l’absence d’un constructeur défini par le
programmeur, JAVA offre un constructeur non
paramétré qui initialise les attributs de l'objet crée par
les nulls correspondant à leurs types (0 pour int, null
pour les références aux objets, …)
36
L’attribut final
• Un attribut peut être déclaré avec le mot clé final, afin
d’imposer qu’il ne soit initialisé qu’une seule fois.
Erreur de compilation 37
La déclaration et la création d'objets
• La déclaration des objets de type classe est :
nomClasse nomObjet;
38
La déclaration et la création d'objets
• La déclaration ne crée pas un objet, mais uniquement
une référence nulle du type mentionné.
39
La déclaration et la création d'objets
• l'opérateur new se charge de :
✓ Allouer l'espace mémoire nécessaire pour stocker les attributs de
l'objet en cours de construction
✓ Appeler le constructeur de l'objet adéquat pour initialiser les
attributs. Le choix du constructeur se fait en fonction des
paramètres passés
✓ Retourner une référence sur l'objet créé
40
La déclaration et la création d'objets
• Il est possible d'avoir à un instant t plusieurs références
pour désigner un même objet.
41
La déclaration et la création d'objets
• Les opérateurs possibles sur les références d'objets sont :
✓ = pour l’affectation
42
La manipulation d’objets
• Accès aux attributs: les attributs d’objet sont désignés
selon la syntaxe suivante: nomObjet.nomAttribut
✓ person.age
• Invocation de méthodes: les méthodes sont invoquées
selon la syntaxe suivante: nomObjet.nomMethode()
✓ person.calculAge(DateNaissance)
• Remarque: Au sein de la classe propriétaire, on peut
désigner un attribut ou une méthode uniquement par son
nom.
• On ne peut accéder à un attribut de l’extérieur de la classe
là où il a été défini que si on est autorisé à le faire
• On ne peut invoquer une méthode de l’extérieur de la classe
là où elle a été définie que si on est autorisé à le faire 43
Exercice 1 (suite)
• Ecrire une classe nommée Test qui comporte la méthode main permettant
de
• Créer un rectangle
• Intialiser sa longueur à 3 et sa largeur à 4
• Claculer et afficher sa surface
• Ajouter à la classe Rectangle un constructeur avec paramètre
class Rectangle {
private int longueur ;
private int largeur ;
class Test {
46
Les Getters et Setters
• Les attributs privés d’une classe ne sont accessibles qu’à
l’intérieur de la classe.
47
Les Getters et Setters
• Les getters sont des méthodes qui commencent toujours par le mot
get et finissent par le nom de l’attribut en écrivant en majuscule la
lettre qui vient juste après le get. Les getters retourne toujours le
même type que l’attribut correspondant.
❑ Par exemple pour un attribut
private String nom;
❑ Le getter de cette variable est :
Public String getNom( )
{ return nom;}
• Les setters sont des méthodes qui commencent toujours par le mot
set et finissent par le nom de l’attribut en écrivant en majuscule la
lettre qui vient juste après le set. Les setters sont toujours de type
void et reçoivent un paramètre qui est de même type que la variable:
• Les setters sont des méthodes qui commencent toujours par le mot
set et finissent par le nom de l’attribut en écrivant en majuscule la
lettre qui vient juste après le set. Les setters sont toujours de type
void et reçoivent un paramètre qui est de même type que la variable:
49
Exemple 2:
• Ecrire une classe nommée Etudiant qui comporte les
attributs suivants : matricule (int), nom (String) ,
prenom (String) et filière (String) et niveau (int)
50
Exercice 3
• Ecrire une classe java nommée Voiture qui comporte les
attribut suivants
– private String immatriculation;
– private String modele;
– private int kilometrage;
1. Ajouter à la classe Voiture deux constructeurs (avec deux et trois
paramètres)
2. Ajouter à la classe Voiture la méthode toString() pour afficher les
caractéristiques d’une voiture
3. Ajouter les getters et setters de tous les attributs
• Ecrire une classe java nommée TestVoiture. Dans la méthode
main de cette classe ajouter les instructions nécessaires pour
1. Créer une nouvelle voiture dont le kilométrage est zéro
2. Modifier le kilométrage
3. Afficher la voiture créée
Les attributs de classe (ou attributs statiques)
52
Les attributs de classe (ou attributs statiques)
• Déclaration
• Utilisation
✓ Les attributs statiques sont désignés selon la syntaxe suivante:
nomClasse.nomAttribut
53
Les attributs statiques
• Exemple
• Résultat? 54
Les attributs statiques
• La déclaration d’une constante en java se fait
par les mots clés static final
✓ static pour dire que tous les objets (instances)
partage la même valeur de la constante
✓ final pour dire que la modification est interdite
• Exemple
55
Les méthodes statiques
• Une méthode statique (ou méthode de classe) est une
méthode déclarée avec le mot réservé static. L’exécution
d’une telle méthode ne dépend pas des objets de la classe.
• Exemples
56
Les méthodes statiques
• Les méthodes statiques sont désignées selon la syntaxe
suivante : nomClasse.nomMéthode().
• Exemple
✓ Calcul.AvrageOfFirst100Integer();
57
Les méthodes statiques
• Remarque1 : Un attribut d’objet (non static) ne peut pas
être manipulé directement par une méthode de classe
(static).
58
Les méthodes statiques
• Remarque2 : Une méthode statique doit accéder
uniquement à des attributs et/ou des méthodes statiques
class TestStatic{
static int a=0;
int m() {
Pas d’erreur de compilation return a;
}
59
La référence sur l'objet courant « this »
Le mot-clé this représente une référence sur l'objet courant,
c.à.d., celui qui possède la méthode qui est en train de
s'exécuter
• La référence this peut être utile :
✓ Lorsqu'une variable locale (ou un paramètre) "cache",
en portant le même nom, un attribut de la classe.
l’objet en cours.
La méthode toString()
62
Qu’est ce qu’on trouve dans le corps d’une méthode?
• Exemple2
64
Opérateurs
• Les opérateurs arithmétiques à deux opérandes:
✓ + : addition
✓ - : soustraction
✓ * : multiplication
✓ / : division
✓ % : modulo (reste de la division euclidienne)
• Exemple1
• Exemple3
67
Opérateurs
• Les opérateurs d’incrémentations et de décrémentation:
✓ ++ : Pour incrémenter (i++ ou ++i)
✓ Pour décrémenter (i–- ou --i)
• Solution:
Opérateurs
• Exercice (opérateur d’incrémentation)
• Solution:
Opérateurs
• Les opérateurs logiques
✓ && Et (deux opérandes)
✓ || Ou (deux opérandes )
✓ ! Non (un seul opérande)
• Exemple
70
Opérateurs
72
Structures de contrôle conditionnelle
• Utilisation des {} dans une instruction if
correct correct
erreur
73
Structures de contrôle conditionnelle
• L'instruction switch (syntaxe) Types de Variable
switch(variable) {
case valeur1: instr1;break;
case valeur2: instr2;break;
case valeurN: instrN; break;
default: instr; break;
}
• Exemple
Structures de contrôle itérative
• La boucle for
✓ La boucle for est une structure employée pour exécuter un bloc
d'instructions un nombre de fois connu à l'avance.
✓ Syntaxe :
for (initialisation;test;incrémentation) {
instructions;
}
✓ Exemple
:for (int i=2; i < 10; i++) {
System.out.println("I="+i);
}
Structures de contrôle itérative
• L ’instruction While
• L ’instruction do .. while
Exemple :
do{ int s=0;int i=0;
BlocInstructions; do{
s+=i; i++;
}
}while (i<10);
while (condition); System.out.println("Somme="+s);
76