Académique Documents
Professionnel Documents
Culture Documents
Plan du chapitre3
2
et les variables
exemples : setLongueur, i, uneFenetre
Les constantes sont entièrement en majuscules
exemple : LONGUEUR_MAX
Les Mots réservés
7
Les entiers:
Type primitif Signification Place occupée en
mémoire
byte Entier très court allant de 1 octet
-128 (–27) à 127 (27–1)
short Entier court allant de 2 octets
-32768 à +32767
int Entier allant de -2 147 483 4 octets
648 à +2 147 483 647
long Entier long allant de -263 à 8 octets
+263
Types primitifs(2)
10
Les réels
Caractères et Booléens
variable booléenne
boolean (valeurs : vrai ou 1 octet
faux)
Types primitifs(4)
12
Byteshort intlongfloat double
charint longfloat double
Constantes
13
Exemple :
final int MAX=15;
MAX=MAX+2 ; // erreur
Opérateurs
14
5 + 2 == 4 * 5 + 1 / 2
5 <= 8 % 2
5 <= 9 == 3 >= 6 – 3
Opérateurs arithmétiques
15
Opérateur Effet
+= addition deux valeurs et stocke le
résultat dans la variable (à gauche)
-= soustrait deux valeurs et stocke le
résultat dans la variable (à gauche)
>> Rotation à droite avec Décale les bits vers la droite 6 >> 1 3 (0011)
conservation du signe (divise par 2 à chaque décalage). (0110 >> 1)
Les bits qui sortent à droite sont
perdus, tandis que le bit non-nul
de poids plus fort est recopié à
gauche
cast implicite
22
{
int i;
… Bloc externe
{
int j=0;
… i
double x = 3.5; Bloc interne
…
} j
} x
Affichage sur la sortie standard (1)
26
Méthodes de java.io.PrintStream
print() et println() permettent d'afficher
une valeur primitive ou un objet :
Tout primitif ou objet en Java peut être
transformé automatiquement en une chaîne
de caractères
Exemple :
System.out.print("x = "+x+" et y =
"+y);
Affichage sur la sortie standard (2)
27
Méthodes de java.io.PrintStream
format() et printf() permettent d'afficher
une donnée formatée :
Premier paramètre : une chaîne de caractère
avec le formatage des valeurs (Exemples :
%d pour les entier, %f pour les réel, \n pour
le retour à la ligne
Suite des paramètres : les valeurs à afficher
Exemple :
System.out.printf("%09.3f\n",
Math.PI);
Lecture de l'entrée standard (1)
28
Exemple:
import java.util.Scanner;
public class Addition
{
public static void main( String args[] )
{
Scanner input = new Scanner( System.in );
int n1,n2,somme;
System.out.print(" Donner le premier entier: " );
n1 = input.nextInt();
System.out.print(" Donner un deuxième entier: " );
n2 = input.nextInt();
somme = n1 + n2;
System.out.printf( "Somme est %d\n", somme ); } }
Structures Conditionnelles (1)
30
if
Syntaxe:
if (condition)
instruction1 ;(ou bloc d’instructions)
else instruction 2; (ou bloc d’instructions)
Exemple:
switch:
switch (variable) {
case valeur_1 : Liste d'instructions;
break;
case valeur_2: Liste d'instructions;
break;
……..
case valeur_n: Liste d'instructions ;
default: Liste d'instructions;
}
Remarque:
On ne peut utiliser switch qu'avec les types primitifs : byte, short, int, char.
Si une instruction case ne contient pas de break alors les traitements associés au
case suivant sont exécutés.
Les structures itératives (1)
32
boucle while:
while (condition)
boucle do while
// Exécuter tant que la condition est vérifiée.
do {
instructions;
}
while (condition);
Exemple
int i = 100, j = 0, somme = 0 ;
do {
somme += j;
j++; }
while (j <= i);
Les structures itératives (3)
34
Boucle for
for (e1; e2; e3)
instructions;
e1 : initialise l’itérateur (compteur), cette expression n’est exécutée qu’une seule fois;
e2 : exprime la condition de test (tant qu’elle est vraie on continue la boucle) ; elle est
Boucle for
Exemple
int somme = 0;
for (int i=0; i<=100; i++) //la portée de i est limitée au bloc for
somme+= i;
La structure suivante est également correcte :
int somme = 0;
for (int i=0; i<=100; ) {
somme += i;
i++ ; }
Etiquette, break, continue et return
36
}
…..
Etiquette, break, continue et return
38
continue
sans branchement: permet de passer
39
// BreakAndContinue.java
/** les clauses break et continue */
Résultat:
public class BreakAndContinue { 0
public static void main(String args[]) { 9
System.out.println(("Résultat :" ); 18
for(int i = 0; i < 100; i++) 27
{ if(i == 74) break; // quitter boucle 36
if(i % 9 != 0) continue; // iter.suiv. 45
System.out.println(i); 54
63
}
72
int i = 0; // 10
while(true) 20
{ i++; 30
int j = i * 27; 40
if(j == 1269) break; // quitter
boucle
if(i % 10 != 0) continue; // Top
System.out.println(i);
} }}
Etiquette, break, continue et return
40
return Expression;
Les tableaux
41
Déclaration
Allocation
T1=new int[8]; //allocation de 8 entiers pour T1
ou
Déclaration et allocation
int T1[]=new int[8];
int T2[]={5,7,-12,8}; //avec initialisation
Exemple :
T1 0 0 0 0 0 0 0 0 …
Les tableaux
44
Les références des objets crées doivent être affectés au tableau par
la suite:
tab[0]= new Point(1,2);
…
Les types de données : Chaîne de caractères
46
La classe String
déclaration:
String prenom = new String("Pierre");
String prenom = "Pierre"; // identique à la ligne précédente
Comparaison:
if (str1.equals(str2))
La concaténation:
String str1 = "Bonjour ! ";
String str2 = null;
str2 = "Comment vas-tu ?";
String str3 = str1.concat(str2);
ou
String str3 = str1 + str2; //str3 contient " Bonjour ! Comment vas-tu ?"
CHAPITRE 4: CONCEPTS ORIENTÉS
OBJETS DE JAVA
Plan du chapitre4: Concepts orientés objets de java
48
1. Classe
2. Modificateurs de classes
3. Objets
4. Constructeurs
5. Membres d’instance
6. Membres de classe
7. Surcharge de méthodes
Classe(1)
49
Définition:
Une classe permet de modéliser des objets du
monde Réel.
50
51
52
• Exemple de définition de
Déclaration d’une classe
classe accessible à tous nommée
public class Point{ Point
private int x ; // abscisse
private int y ; // Déclaration de variables
ordonnee d’instances non accessibles
public void initialise (int abs, int ord) de l’extérieur de la classe
{
x = abs ;
y = ord ;
}
public void deplace (int dx, int dy)
{ Déclarations de
x += dx ; méthodes
y += dy ; accessibles à tous
}
public void affiche (){
System.out.println ("Je suis un point de coordonnees " + x + " " +
y) ;
}
}
Classe(6)
54
public
La classe est accessible
package
partout
Public
public class Point { pa
class
point
} package2
package3 package4
pa
pa pa
Modificateurs de classe(3)
58
à l'extérieur de ce dernier.
class Point {
pa pa pa
Objets=instances des classes (1)
59
Déclaration:
Nom_classe nom_objet;
Instanciation:
L’opérateur new instancie une classe par:
Allocation de mémoire pour le nouvel objet et
Retour d’ une référence à cette mémoire.
L’opérateur new invoque le constructeur de l'objet
Définition
un constructeur est une méthode qui porte le même
nom que la classe sans valeur de retour et qui peut
disposer d’arguments.
Le constructeur permet de:
allouer de la mémoire pour l’objet
initialiser les attributs de l’objet
Exemple :
L’usage d’un objet Point nécessite l’appel
de la méthode void initialise(int, int) qui
permet d’initialiser l’abscisse et l’ordonnée
du Point.
Problème :
• Et si celui qui utilise l’objet oublie d’appeler en
premier lieu cette méthode ?
Solution :
• Utiliser un constructeur
Constructeur (3)
63
Exemple :
public class Point {
private int x, y ;
Exemple (suite) :
public class TestPoint {
Objets à null
Boolean à false
Exemple :
public class Point {
private int x, y ;
Exemple (suite) :
public class TestPoint {
Suite Exemple:
public class TestPoint {
public static void main(String args[])
{
Point p1=new Point();
Point p2=new Point(2,5);
p1.affiche();
p2.affiche();
}
}
Accesseurs / Modificateurs
70
Exemples :
public void setCoordonnees(int a, int b){x=a; y=b;};
public int getAbscisse() {return x;}
public int getOrdonnee() {return y;}
La référence this
71
méthode clone() :
cette méthode permet de créer un
deuxième objet indépendant mais
identique à l'original.
Cette méthode est héritée de la classe
Object qui est la classe mère de toute les MaClasse m1 = new MaClasse();
classes en Java. MaClasse m2 = m1.clone();
m1 et m2 ne contiennent plus la même
référence et pointent donc sur des objets
différents.
Création d’objets identiques
73
Définition:
On désigne par membres d’instance les attributs et
chaque instance.
Membres d’instance(2)
75
Exemple:
public class Point {
int x; // abscisse
int y; // ordonnée
Membres
public Point(int a, int b){ D’instances
x=a; y=b;}
}
Membres d’instance(3)
76
}
Membres d’instance(4)
77
Les attributs statiques sont initialisés par défaut à 0 pour les nombres
entier et réels, à false pour les booléens et à null pour les références.
Variable de classe:
C’est une variable qui, au lieu d’exister dans chaque
instance de classe, n’existe qu’en un seul exemplaire
pour toutes les instances de classe.
public class C {
static int n; n
float x;
}
class E{ x x
C a1=new C();
C a2=new C();}
Objet a1 Objet a2
Membres de classe(3)
80
81
Méthode de classe:
Méthode indépendante des instances de classe
crées.
Exemple: main(), Math.sqrt()..
classe
Exemples :
Exemple
public class Cercle {
private double rayon;
private Point centre;
public Cercle(int abs, int ord, double rayon){
centre = new Point(abs, ord);
this.rayon= rayon;
}
public void afficheCercle() {
System.out.println ("Centre :"+ centre.x+ " , "+ centre.y);
Pour
faire référence à une classe qui
appartient à un autre package :
1ère méthode :
nom_package.nom_classe
• Exemple :
edu.monpackage.Point p = new
edu.monpackage.Point();
2ième méthode :
import nom_paquetage.Nom_ classe OU *;
• Exemple :
import edu.monpackage.Point;
import edu.monpackage.*;
Paquetage (3)
88
Exercice :
Créez deux classes publiques A et B appartenant chacune
à un package différent. Puis dans la classe A fait appel
dans une méthode nommée a() à une méthode publique b()
de la classe B. la méthode b() doit afficher le message
‘’Hello package !’’.
Modificateurs d’accès (1)
89
Objectif :
Fixer la visibilité d’une classe ou d’un membre
d’une classe par rapport aux autres classes.
Autoriser ou non l’accès à une classe
Instancier la classe
Hériter de la classe
Accéder aux membre de la classe
Modificateurs d’accès pour les classes :
public : visible à toutes les classes
default : visible uniquement aux classes du même
package
Modificateurs d’accès (2)
90
private X
default X X X
(package)
protected X X X X
(seulement par héritage)
public X X X X X
• Nomenclature
– Surcharge ou Surdéfinition (overloading)
• Principe
– Plusieurs méthodes peuvent porter le même
nom mais avec impérativement une différence
au niveau des paramètres formels (nombre,
type ou ordre)
– Le type de retour n’intervient pas dans le
surcharge des méthodes
Surcharge de méthodes (2)
93
Exemple :
class Point {
private int x, y ; public class TestSurcharge {
// constructeur public static void main
(String args[]) {
public Point (int abs, int ord) { Point a = new Point (1, 2)
x = abs ; y = ord ; ;
} // appelle deplace (int,
int)
// deplace (int, int) a.deplace (1, 3) ;
public void deplace (int dx, int dy) { // appelle deplace (int)
a.deplace (2) ;
x += dx ; y += dy ;
short p = 3 ;
} // appelle deplace
// deplace (int) (short)
a.deplace (p);
public void deplace (int dx) {
byte b = 2 ;
x += dx ; /* Quelle méthode ? */
} a.deplace (b) ;
// deplace (short) }
public void deplace (short dx){
}
x += dx ;
}
}
Surcharge de méthodes (3)
94