0% ont trouvé ce document utile (0 vote)
15 vues59 pages

POOChapi 2

Ce document présente un cours de programmation orientée objet en Java pour des étudiants de 2ème année GL, dirigé par l'enseignante Sana Hamdi. Il couvre les notions de base de Java, y compris la structure des programmes, les types de données, les opérateurs, les structures de contrôle, et les conventions de nommage. Les chapitres abordent également des concepts avancés tels que l'héritage, le polymorphisme, et les exceptions.

Transféré par

ferjani.aziz90
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)
15 vues59 pages

POOChapi 2

Ce document présente un cours de programmation orientée objet en Java pour des étudiants de 2ème année GL, dirigé par l'enseignante Sana Hamdi. Il couvre les notions de base de Java, y compris la structure des programmes, les types de données, les opérateurs, les structures de contrôle, et les conventions de nommage. Les chapitres abordent également des concepts avancés tels que l'héritage, le polymorphisme, et les exceptions.

Transféré par

ferjani.aziz90
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

Niveau: 2ème Année GL

Enseignante: Sana HAMDI


Email: [email protected]
[email protected]
Chapitre1: Introduction à la programmation orientée objet
Chapitre2: Notions de base Java
Chapitre3: Classes et Objets Java
Chapitre4: Héritage, Polymorphisme et Classes Abstraites
Chapitre5: Les Interfaces
Chapitre6: Les Exceptions

2
CHAPITRE2

3
PLAN DU CHAPITRE 3
1. La structure d’un programme simple en java
2. Les commentaires
3. Les identificateurs
4. Les Mots réservés
5. Les types de données
6. Les opérateurs
7. Les structures conditionnelles
8. Les structures itératives
9. Les tableaux
10. Les chaînes de caractère
11. La classe Scanner

4
PLAN DU CHAPITRE 3
1. La structure d’un programme simple en java
2. Les commentaires
3. Les identificateurs
4. Les Mots réservés
5. Les types de données
6. Les opérateurs
7. Les structures conditionnelles
8. Les structures itératives
9. Les tableaux
10. Les chaînes de caractère
11. La classe Scanner

5
 Un programme java simple qui ne contient que la fonction principale main() doit être défini sous
forme d’une classe:

 La fonction main( ) est la première méthode exécutée dans un programme java. Elle doit avoir
obligatoirement la signature suivante:
public static void main (String args[]) ou static public void main (String args[])
 Le nom args peut être quelconque. C’est un tableau de chaînes de caractères représentant les
arguments de la ligne de commandes.

6
PLAN DU CHAPITRE 3
1. La structure d’un programme simple en java
2. Les commentaires
3. Les identificateurs
4. Les Mots réservés
5. Les types de données
6. Les opérateurs
7. Les structures conditionnelles
8. Les structures itératives
9. Les tableaux
10. Les chaînes de caractère
11. La classe Scanner

7
 // commentaire sur une seule ligne
 /* commentaire sur une ou plusieurs lignes */
 /** commentaire d ’explication */

8
 Dans Java, les instructions se terminent par un point virgule (;)
 Un bloc d’ instructions est délimité par des accolades { et }
 Les blancs sont autorisés entre les éléments du code source
(espaces, tabulations et sauts de ligne)
{
int x;
x= 5*8;
}

9
PLAN DU CHAPITRE 3
1. La structure d’un programme simple en java
2. Les commentaires
3. Les identificateurs
4. Les Mots réservés
5. Les types de données
6. Les opérateurs
7. Les structures conditionnelles
8. Les structures itératives
9. Les tableaux
10. Les chaînes de caractère
11. La classe Scanner

10
• Les identificateurs permettent de nommer les différents éléments des programmes
Java (variables, constantes, classe, méthodes, packages,…)
• Un identificateur commence par une lettre, un trait de soulignement (_) ou un
signe dollar ($)
• Après le premier caractère, il peut contenir n’importe quelle combinaison de
lettres, dollar "$", caractère de soulignement "_", ou des chiffres.
• les caractères Unicode supérieurs à 0x00c0, permettent d’introduire dans les
identificateurs des caractères internationaux tels que ç, ü,…

11
 Les identificateurs opèrent une distinction majuscules/minuscules et n’ont pas de
longueur maximale
 On ne peut pas utiliser un mot-clé comme un identifiant dans vos programmes.
Exemple:

 $valeur-système // identificateur valide


 ça // identificateur non valide (ç premier caractère)
 note# // identificateur non valide (contient # au dessous de 0x00c0)

12
 Packages: doivent être écrits entièrement en minuscules (pack1)

 Classes ou Interfaces: la première lettre de l’identificateur d’une classe doit


conventionnellement être en majuscule (MaClasse, UneJolieFenetre)

 Méthodes ou Variables: la convention de nommage indique que la première lettre du mot


doit être en minuscule (setLongueur, i, uneFenetre)

 Constantes: la convention de nommage indique que leur nom doit être en majuscule
(LONGUEUR_MAX, MIN)

 Dans un attribut, si plusieurs mots sont accolés, mettre une majuscule à chacun des mots
sauf le premier (uneVariableEntiere)

13
 Autres conventions
o Structure de contrôle: utilisez des ({ et }) autour des instructions, même s’il s ’agit
d’une seule, lorsqu’elles font partie d ’une structure de contrôle, telle que if-else
ou for.
o Placez une seule instruction par ligne, et utilisez une indentation pour que le
code soit plus lisible.

14
PLAN DU CHAPITRE 3
1. La structure d’un programme simple en java
2. Les commentaires
3. Les identificateurs
4. Les Mots réservés
5. Les types de données
6. Les opérateurs
7. Les structures conditionnelles
8. Les structures itératives
9. Les tableaux
10. Les chaînes de caractère
11. La classe Scanner

15
16
PLAN DU CHAPITRE 3
1. La structure d’un programme simple en java
2. Les commentaires
3. Les identificateurs
4. Les Mots réservés
5. Les types de données
6. Les opérateurs
7. Les structures conditionnelles
8. Les structures itératives
9. Les tableaux
10. Les chaînes de caractère
11. La classe Scanner

17
• Java est un langage fortement typé : chaque variable et chaque expression

possède un type bien défini.

• Les types de données de Java sont divisés en deux grands groupes:

o Les types primitifs (ou de base) : boolean, int, short, byte, float, long, double, char

o Le type référence : chaîne de caractères (String), tableau ou classe

18
 Les entiers:

Type Signification Place occupée en Valeur par


primitif mémoire défaut
byte Entier très court allant de 1 octet 0
-128 à +127
short Entier court allant de 2 octets 0
-32768 à +32767
int Entier allant de 4 octets 0
-2 147 483 648 à +2 147 483 647
long Entier long allant de 18 octets 0L
-263 à +263

19
 Les réels:

Type primitif Signification Place occupée Valeur par défaut


en mémoire
Nombre réel allant de 0f
float 4 octets
-3.4 * 10-45 à +3.4 * 1038
Nombre réel double 0d
double précision allant de 8 octets
4.9 * 10-324 à +1.7 * 10308

20
 Caractères et booléens:

Type Signification Place occupée Valeur par


primitif en mémoire défaut
Caractère unicode (65536 '\u0000'
char caractères possibles) 2 octets
Entre '\u0000' et '\uffff'

variable booléenne false


boolean Non spécifiée
(valeurs : true ou false)

21
 Une constante est déclarée final ne peut plus être modifiée une fois qu’elle a
été initialisée.
 Une constante est par convention écrite en majuscules
 Exemple :

final int MAX=15;


MAX = MAX+2 ; // erreur

22
PLAN DU CHAPITRE 3
1. La structure d’un programme simple en java
2. Les commentaires
3. Les identificateurs
4. Les Mots réservés
5. Les types de données
6. Les opérateurs
7. Les structures conditionnelles
8. Les structures itératives
9. Les tableaux
10. Les chaînes de caractère
11. La classe Scanner

23
 Les opérateurs sont des symboles qui permettent de manipuler des
variables, c'est-à-dire effectuer des opérations, les évaluer, ...
 On distingue plusieurs types d'opérateurs :
o les opérateurs de calcul
o les opérateurs d'assignation
o les opérateurs d'incrémentation
o les opérateurs de comparaison
o les opérateurs logiques
o les opérateurs bit-à-bit
o les opérateurs de rotation de bit

24
Ils permettent de modifier mathématiquement la valeur d'une variable.
Opérateur Dénomination Effet Exemple Résultat (int x=7)

+ opérateur Ajoute deux valeurs x+3 10


d'addition
- opérateur de Soustrait deux valeurs x-3 4
soustraction
* opérateur de Multiplie deux valeurs x*3 21
multiplication
/ opérateur de Calcul le quotient de la x/3 2
division division de deux valeurs
% opérateur de Calcul le reste de la x%3 1
congruence division de deux valeurs
= opérateur Affecte une valeur à une x=3 Met la valeur 3
d'affectation variable dans la variable x
25
 Ces opérateurs permettent de simplifier des opérations telles que ajouter
une valeur dans une variable et stocker le résultat dans la variable.
 Une telle opération s'écrirait habituellement de la façon suivante par
exemple: x=x+2.
 Avec les opérateurs d'assignation, il est possible d'écrire cette opération
sous la forme suivante: x+=2. Ainsi, si la valeur de x était 7, elle sera 9.

Opérateur Effet
+= addition deux valeurs et stocke le résultat dans la variable
-= soustrait deux valeurs et stocke le résultat dans la variable
*= multiplie deux valeurs et stocke le résultat dans la variable
/= divise deux valeurs et stocke le quotient dans la variable
%= divise deux valeurs et stocke le reste dans la variable
26
 Ce type d'opérateur permet de facilement augmenter ou diminuer d'une
unité une variable. Ces opérateurs sont très utiles pour des structures
telles que des boucles, qui ont besoin d'un compteur.
 Un opérateur de type x++ permet de remplacer des notations lourdes
telles que x=x+1 ou bien x+=1
 Exemple pour x=7
o int y=x++; y est initialisé à 7, puis x est incrémenté à 8
o int y=++x; x est incrémenté à 8, puis y est initialisé à 8

Opérateur Dénomination Effet Syntaxe Résultat


(Int x=7)
++ Incrémentation Augmente d'une x++ ou ++x 8
unité la variable
-- Décrémentation Diminue d'une x-- ou --x 6
unité la variable
27
Dénomination Effet Exemple Résultat

== opérateur Compare deux valeurs et vérifie x==3 Retourne true si x est égal
d'égalité leur égalité à 3, sinon false
< opérateur Vérifie qu'une variable est x<3 Retourne true si x est
d'infériorité strictement inférieure à une valeur inférieur à 3, sinon false
stricte
<= opérateur Vérifie qu'une variable est x<=3 Retourne true si x est
d'infériorité inférieure ou égale à une valeur inférieur ou égal à 3,
sinon false
> opérateur de Vérifie qu'une variable est x>3 Retourne true si x est
supériorité stricte strictement supérieure à une supérieur à 3, sinon false
valeur
>= opérateur de Vérifie qu'une variable est x>=3 Retourne true si x est
supériorité supérieure ou égale à une valeur supérieur ou égal à 3,
sinon false
!= opérateur de Vérifie qu'une variable est x!=3 Retourne true si x est
différence différente d'une valeur différent de 3, sinon false
28
 Ce type d'opérateur permet de vérifier si plusieurs conditions sont vraies :

Dénomination Effet Syntaxe


|| OU logique Retourne true si au moins une des deux condition1 ||
conditions vaut true (ou false sinon) condition2
&& ET logique Retourne true si les deux conditions condition1 &&
valent true (ou false sinon) condition2
! NON logique Retourne true si la variable vaut false, !condition
et false si elle vaut true)

29
 Ce type d'opérateur traite ses opérandes comme des données binaires, plutôt que des
données décimales, hexadécimales ou octales. Ils traitent ces données selon leur
représentation binaire mais retournent des valeurs numériques standards dans leur
format d'origine.

Dénomination Effet Syntaxe Résultat


& ET bit-à-bit Retourne 1 si les deux bits 9 & 12 (1001 & 1100) 8 (1000)
de même poids sont à 1
| OU inclusif Retourne 1 si l'un ou l'autre 9 | 12 (1001 | 1100) 13 (1101)
des deux bits de même
poids est à 1 (ou les deux)
^ OU exclusif Retourne 1 si l'un des deux 9 ^ 12 (1001 ^ 1100) 5 (0101)
bits de même poids est à 1
(mais pas les deux)

30
 Ils effectuent des décalages sur les bits, c'est-à-dire qu'ils décalent chacun des bits d'un
nombre de bits vers la gauche ou vers la droite. La première opérande désigne la donnée
sur laquelle on va faire le décalage, la seconde désigne le nombre de bits duquel elle va
être décalée.
Dénomination Effet Syntaxe Résultat

<< Décalage à Décale les bits vers la gauche (multiplie par 6<< 1 12 (1100)
gauche 2 à chaque décalage). Les bits qui sortent à (00000110 << 1)
gauche sont perdus, tandis que des zéros
sont insérés à droite
>> Décalage à Décale les bits vers la droite (divise par 2 à 6 >> 1 3 (0011)
droite avec chaque décalage). Les bits qui sortent à (00000110 >> 1)
conservation du droite sont perdus, tandis que le bit non-nul
signe de poids plus fort est recopié à gauche
>>> Décalage à Décale les bits vers la droite. Les bits qui 3 >>> 1 1 (0001)
droite avec sortent à droite sont perdus, tandis que des (00000011 >>> 1)
remplissage de zéros sont insérés à gauche
zéros
31
 L’opération peut diminuer la généralité (downcasting) du type avec un risque de
perte d’informations. Elle peut également augmenter la généralité (upcasting) du
type (sans aucun risque).

 Du moins général au plus général (pour les types primitifs), on a :

Byteshort intlongfloat  double

32
 Lors d’une affectation, une opération de upcasting implicite peut avoir lieu

(lorsque la partie droite de l’affectation est d’un type moins général).

 Par exemple, lors de l’évaluation de :

double x = 15;

 la valeur entière 15 est transformée automatiquement en la valeur réelle (double)

15.0 avant d’être affectée à la variable x.

33
 Lors de certaines opérations, il est parfois nécessaire d’utiliser explicitement une
opération de transtypage.

 Par exemple, l’exécution de : int x=3, y=2;


double z = x/y;

 affecte la valeur 1.0 à z

 Pour que la valeur 1.5 soit affectée à z, il faut :


double z = (double) x/y;

afin de convertir x en double et que la division soit ainsi une division réelle.

34
 Un bloc d'instructions est une séquence d'instructions délimitée par une paire

d'accolades.

 Il est possible de déclarer des variables dans un bloc.

 La portée (visibilité) d'une variable commence à sa déclaration jusqu'à la fin du

bloc.

35
{ Bloc externe
int i;
… i
{
int j=0; Bloc interne

double x = 3.5; j

} x
}

36
 En Java, il n'est pas possible déclarer des variables homonymes dans deux

blocs imbriqués.

 En C/C++, il est possible de le faire :

 La variable interne cache la variable externe

 Cela constitue une source d'erreur 

37
{ Bloc externe
int i =5;
… conflit i
{
int i=0; Bloc interne
… conflit
double x = 3.5; i

} x
}

38
PLAN DU CHAPITRE 3
1. La structure d’un programme simple en java
2. Les commentaires
3. Les identificateurs
4. Les Mots réservés
5. Les types de données
6. Les opérateurs
7. Les structures conditionnelles
8. Les structures itératives
9. Les tableaux
10. Les chaînes de caractère
11. La classe Scanner

39
if (Expr1) S1;

else if (Expr2) S2;

else S3;

 L’instruction S1 est exécutée si l’expression logique Expr1 est évaluée à vraie.

 L’instruction S2 est exécutée si l’expression logique Expr2 est évaluée à vraie.

 L’instruction S2 est exécutée si Expr1 et Expr2 sont évaluées à faux.

Exemple: int i=5; int y;


if (i<10) y= i* 100;
else y= i* 10;
//y= i<10 ? i*100:i*10

40
Syntaxe Exemple
int note = 10; //supposant quela note maximale est 20
switch (Expr1)
switch (note){
{
case constante_1: statements_1; case 0: System.out.println("Ouch !");
break; break;
case constante_2: statements_2 case 10: System.out.println(« juste la moyenne.");
break;
case 15: System.out.println(« bonne moyenne.");

break;
case constante_N: statements_N;
case 20: System.out.println("Parfait !");
break;
break;
default: statements_default;
default: System.out.println("Il faut travailler.");
}
} 41
PLAN DU CHAPITRE 3
1. La structure d’un programme simple en java
2. Les commentaires
3. Les identificateurs
4. Les Mots réservés
5. Les types de données
6. Les opérateurs
7. Les structures conditionnelles
8. Les structures itératives
9. Les tableaux
10. Les chaînes de caractère
11. La classe Scanner

42
Syntaxe Exemple While

public class WhileTest


while (condition) {
public static void main(String args[])
{
Bs; double r = 0;
while (r < 0.99)
{
une ou un bloc d’instructions r = Math.random();
System.out.println(r);
}
}
}

43
Exemple While
Syntaxe
public class WhileTest
do S1 while (condition); {
public static void main(String args[])
{
Exécuter S1 tant que l’expression int i = 100, j = 0, somme = 0 ;
do{
somme += j;
condition est vraie
j++;
}
while (j <= i);
}
}

44
Exemple
Syntaxe
/** * montre la boucle for" en listant tous les
caractères ASCII */
for (e1; e2; e3) public class ListCharacters
Bs; {
 e1 : initialise l’itérateur (compteur), cette public static void main(String args[])
expression n’est exécutée qu’une seule {
fois;
 e2 : exprime la condition de test (tant int somme = 0;
qu’elle est vraie on continue la boucle) ;
for (int i=0; i<=100; i++) //la portée de i est limitée au bloc for
elle est vérifiée à chaque itération
 e3 : modifie l’itérateur, elle est exécutée à somme+= i;
chaque itération }
}

45
 Etiquette : boucle1:
for (int i=0; i<10; i++){
Nom_etiquette: bloc d’instruction; for (int j=0; j<15 j++){
System.out.println(i+“/“+j);
 Rupture }}
break ;
break label;
class TestBreak {
 Continuation public static void main (String args[]){
continue; bloc1:
continue label; for (int i=0; i<10; i++){
for (int j=0; j<10; j++){
 Retourner System.out.println(i+“/“+j);
return; if (j==1) break; // quitte la boucle j
return Expression; if (i==2) break bloc1; // quitte bloc1
}}}}

46
// BreakAndContinue.java
/** les clauses break et continue */
Résultat :
public class BreakAndContinue 0
{
public static void main(String args[]) 9
{
for(int i = 0; i < 100; i++) 18
{ 27
if(i == 74) break; // quitter boucle
if(i % 9 != 0) continue; // iter.suiv. 36
System.out.println(i);
} 45
int i = 0; 54
while(true) {
i++; 63
int j = i * 27;
if(j == 1269) break; // quitter boucle 72
if(i % 10 != 0) continue; // iter.suiv
System.out.println(i); 10
}
20
}
} 30
40

47
PLAN DU CHAPITRE 3
1. La structure d’un programme simple en java
2. Les commentaires
3. Les identificateurs
4. Les Mots réservés
5. Les types de données
6. Les opérateurs
7. Les structures conditionnelles
8. Les structures itératives
9. Les tableaux
10. Les chaînes de caractère
11. La classe Scanner

48
Tableau : est un objet référencé
• Une variable de type tableau n’est pas un type élémentaire (c’est une référence sur un
tableau)

• Déclaration
- type NomTableau[ ] \\ ou type [ ] NomTableau
- type NomTableau[ ][ ]

• Allocation et initialisation
- int T1[ ] = new int [12];
- int T2[ ]= {5,7,-12,8};

• L’attribut length : retourne la taille d’un tableau

49
Allocation et initialisation

int T1 [ ] = new int [12]; \\ allocation dynamique de 12 entiers pour T1

T1
0 0 0 0 0 0 0 0 0 0

50
Exemple Résultat d’exécution
Class Tableau1D
1
{
public static void main(String[] args){
2
int[] tabent={1,2,3}; 3
for (int i=0; i<tabent.length;i++){
System.out.println(tabent[i] + “ “ ); 0
}
System.out.println ();
0
int[] tab2ent= new int [5]; 20
boolean [] tbool= new boolean[3]; 0
tab2ent[2]=20; tab2ent[4]=50;
50
for (int i=0; i<tab2ent.length;i++){
System.out.println(tab2ent[i] + “ “ );
} false
for (int i=0; i<tbool.length;i++){ false
System.out.println(tbool[i] + “ “ );} false
}
}

51
 Déclaration identique
 Balle [ ] TabBalle = new Balle[6]; \\ un tableau d’éléments pouvant référencer 6 objets de type Balle
 La déclaration du tableau ne crée pas les objets référencés

TabBalle
null null null null null null

 Les références des objets crées doivent être affectés au tableau par la suite

TabBalle[0] = new Balle(4);


TabBalle[1] = new Balle(6);

…

52
PLAN DU CHAPITRE 3
1. La structure d’un programme simple en java
2. Les commentaires
3. Les identificateurs
4. Les Mots réservés
5. Les types de données
6. Les opérateurs
7. Les structures conditionnelles
8. Les structures itératives
9. Les tableaux
10. Les chaînes de caractère
11. La classe Scanner

53
 Une chaine de caractères est définie par la classe String
 déclaration:
String prenom = new String("Pierre");
String prenom = "Pierre";
 Comparaison:
if (str1.equals(str2))
 Concaténation:
String s3 = s1.concat(s2); ou
String mot = message + " et " + "puis s'en vont";

54
PLAN DU CHAPITRE 3
1. La structure d’un programme simple en java
2. Les commentaires
3. Les identificateurs
4. Les Mots réservés
5. Les types de données
6. Les opérateurs
7. Les structures conditionnelles
8. Les structures itératives
9. Les tableaux
10. Les chaînes de caractère
11. La classe Scanner

55
 Elle simplifie la lecture de données sur l’entrée standard (clavier) ou dans un
fichier.
 Pour utiliser la classe Scanner, il faut d’abord l’importer :
import java.util.Scanner;
 Ensuite il faut créer un objet de la classe Scanner :
Scanner sc = new Scanner(System.in);

56
 Pour récupérer les données, il faut faire appel sur l’objet sc aux méthodes
next<Type de variable commençant par une majuscule>
 Ces méthodes parcourent la donnée suivante lue sur l’entrée et la retourne.

Exemple:
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
double d = sc.nextDouble();
long l = sc.nextLong();
byte b = sc.nextByte(); // etc.

 La méthode nextLine ( ) récupère le contenu de toute la ligne saisie


 La méthode next ( ) récupère le premier mot de la ligne saisie

57
 Le type primitif char, n’est pas pris en compte par la classe Scanner
 Voici comment on pourrait récupérer un caractère :

System.out.println("Saisissez une lettre :");


Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
char carac = str.charAt(0);
System.out.println("Vous avez saisi le caractère : " + carac);

58
Merci pour votre attention !

Dr. Sana Hamdi

Maitre Assistante en Informatique à l’INSAT

Membre du Laboratoire LIPAH (FST-Tunisie)


et du Laboratoire SAMOVAR (Telecom SudParis-France)

Vous aimerez peut-être aussi