View
64
Download
0
Category
Preview:
Citation preview
La programmation java
1
Meryem OUARRACHI
PlanPartie1: La programmation Java
Chapitre1: Introduction la programmation Oriente
Objet.
Chapitre2: Introduction Java.
Chapitre3: Les bases du langage Java.
Chapitre4: La P.O.O en java
Partie2: La modlisation UML2
Partie1: La programmation Java
3
Chapitre 1
Introduction la programmation
Oriente Objet
4
Les deux grands mondes de la programmation
-Le procdural: o on dfinit des fonctions s'appelant
mutuellement. Chaque fonction ou procdure est associe un
traitement particulier. Le procdural travaille sur l'action ou
le verbe. Exp: calculeVitesse(voiture)
-LOrient Objet: o on manipule uniquement des objets c'est--
dire des ensembles groups de variables et de mthodes
associes des entits intgrant naturellement ces variables et
ces mthodes. Exp: Voiture.calculVitesse()
5
Le procdural / LOO
6
Avantages de l'Orient Objet
facilit d'organisation et de rutilisation.
facilit de correction
projets plus faciles grer
Plus scuris.
L'OO est facilement concevable: tout objet reprsente
une entit du monde rel
Division de la complexit et sparation des tches
7
Concepts gnraux de l'OO
Notion de classe
Classe=Mthode + Proprits
8
Concepts gnraux de l'OO
Notion d'objetObjet = une instance de classe
9
Concepts gnraux de l'OO
Notion d'objet
10
Concepts gnraux de l'OO
Notion d'objet
- Tout objet possde un type: L'instance d'une classe est
du type de sa classe.
- les objets sont initialiss lors de leur instanciation. Le
systme excute alors automatiquement le constructeur
Exemple:L'instanciation d'une voiture rouge se fait
par Voiture(rouge)
- un objet est une zone mmoire qui est pointe par une ou
plusieurs rfrences
11
Proprits de base de l'OO
- L'hritage
L'hritage est un mcanisme permettant de crer une
nouvelle classe partir d'une classe existante en lui
profrant ses proprits et ses mthodes:
De nouvelles mthodes ou proprits
Des mthodes ou proprits qui surchargent, c'est- -
dire redfinissent celles de la classe mre.
Les proprits et mthodes de la classe mre qui n'ont
pas t surcharges
12
Proprits de base de l'OO
L'hritage
13
Exercice
1.Quel est la diffrence entre la programmation objet
(comme le Java) et procdurale?
2.Quels sont les deux types de services quon rencontre
dans une structure dveloppant OO en entreprise ?
3. Comment obtenir un objet en vue de l'utiliser ?
4. Quelle est la diffrence entre une classe et un objet ?
14
15
Chapitre 2
Introduction Java
Historique :Origine du langage Java.
-1991: Projet Oak de SUN Microsystems (Langage pour la
communication des appareils lctroniques)
-1992: dmonstration d'une tlcommande capable de piloter
des appareils lectromnager. Le nom oak est remplac par
java.
-1993: Java change dorientation et sadapte la technologie
internet: (Netscape decide d'integrer cette technologie dans son
navigateur)
- 1995: annonce officielle de la naissance de la technologie Java16
Mode de programmation en java
Mode Application: sous forme de fentre ou de
console.
Mode Applet: qui sont des programmes Java
incorpors des pages web .
17
Principe d'excution d'un code JAVA
18
Compilation (Javac)
Source(Prog.java)
Byte Code(Prog.class)
Code machine(Prog.exe)
Indpendant de toute machine ou plate formePortabilit
Interprtation via JVM (java)
Le JRE(Java Runtime Environnement)
Le JRE est le JAVA Runtime Environment, est traduit par
"Environnement d'excution JAVA". Le JRE contient une
JVM, mais galement une bibliothque standard qui est
utilise pour dvelopper des applications JAVA.
19
Le JDK(Java Developpement Kit)
Ensemble des outils permettant de dvelopper une
application java.Il regroupe
- le JRE(java.exe);
- le compilateur (javac.exe),
- le dbogueur
- le gnrateur de documentation (javadoc)
Remarque: - Depuis 1995 jusqu aujourdhui na cess
dvoluer et dtre tendu de version en version: 1.0, 1.1, 1.2,
1.3, 1.4,1.5.
- Sun a chang la nomination de JDK par SDK et J2SDK.
20
JDK,JRE,JVM
21
Les Bibliothques de base de java
Java dispose dune gigantesque bibliothque de classes
spcialises dans diffrents domaines:
-Gestion des chaines de caractres;
-Bibliothque mathmatique;
-Bibliothque graphique: AWT,SWING;
-Gestion de rseau: Sockets (serveurs, clients);
Gestion dentre et de sortie: fichier;
-Gestion des threads;
-Gestion de la base de donne:JDBC
22
Les packages
Un package est une bibliothque de classes
On regroupe les classes dun mme domaine
dans un package
Les packages sont organiss hirarchiquement
23
Les packages
Les classes du JDK sont classes dans des packages
24
Les packages:Utilisation
Il y a 2 manires dutiliser une classe stocke dans un
package :
Importer toutes les classes du package.
import java.util.*
Importer juste la classe concerne
import java.util.Date
Remarque: Le package java.lang est un package par dfaut
donc il est importer automatiquement sans avoir besoin de
le mentionner par une commande import
25
Les packages: Utilisation
-Afin doptimiser lespace disque occup par les packages,Sun amis en place un mcanisme darchivage de tous les packages
sous forme dun fichier dextension .jar.
-Le mot-cl package permet de dfinir un nouveau package
-La hirarchie des packages correspond la hirarchie des
rpertoires
Exemple: package finance;
public class Compte {
}
// fichier Compte.java dans le rpertoire finance
26
Quelques atouts de java
Java est un langage simple et puissant:
absence de pointeur
gestion automatique de la mmoire centrale (garbage
collector ou "ramasse-miettes")
o le programmeur alloue la mmoire dont il a besoin,
o le programmeur ne dsalloue pas la mmoire :
- plus de risque de fuite mmoire,
- plus de risque dutiliser un pointeur dsallou.
27
Quelques atouts de java
Java est portable : Java est indpendant de plates-formes
matrielles;vous crivez du code pour une machine trs
spcifique, la JVM qui interprte le bytecode de votre application
Java
un langage qui introduit directement la notion de thread.
une API trs riche.
Java est scuris: Accs limit aux ressources du systme
d'exploitation (Sandbox) +Les objets peuvent tre dclars privs
ou accs restreint, ce qui limite l'utilisation de ces objets aux
classes autorises.
28
Lenvironnement de dveloppement
Ils offrent des fonctions avances :
diteur volu (couleur, autocorrection, prsentation)
Assistance syntaxique
Dbogage
Environnement dexcution
Choix:Eclipse
La spcificit d'Eclipse IDE vient du fait que son architecture
est totalement dveloppe autour de la notion de plug-in
29
Les outils ncessaires pour programmer en java
1- Installer un JDK.
2- Travailler avec un IDE: Tlcharger Eclipse
30
Eclipse
31
Eclipse
32
Eclipse
33
Eclipse
34
Eclipse
35
Tlchargement de JDK et Eclipse
JDK:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
Eclipse
http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/juno/R/eclipse-jee-juno-win32.zip
36
Chapitre 3
Les bases du langage JAVA
37
La structure gnrale dun programme java
38
39
Dclaration dune classe
Le nom de la classe est spcifi derrire le mot cl
class
Le corps de la classe est dlimit par des accolades
On dfinit dans le corps les attributs et les mthodes qui
constituent la classe
class Test {
< corps de la classe >
}
Dfinition dune mthode
40
Une mthode est constitue :
Dun nom
Dun type de retour
De paramtres (ventuellement aucun)
Dun bloc dinstructions
Un paramtre est constitu :
Dun type
Dun nom
void est le mot-cl signifiant que la mthode ne renvoie pas de valeur
class Test {
int calculer (int taux, float delta) {
< corps de la mthode >
}
}
41
Nom de classes, de variables et de mthodes
Un nom peut tre constitu de lettres, de chiffres et du caractre
soulign
Il ne peut pas commencer par un chiffre
Les mots rservs (if, class, int) ne peuvent pas tre utiliss
Les dveloppeurs ont dfini un consensus de nommage :
Les mots du langage sont en minuscule
Les noms de packages sont entirement en miniscule java.swing
Les noms de classe commencent par une majuscule Voiture
Les noms de mthodes et de variables comment par une
minuscules : affichage calculVitesse
42
Nom de classes, de variables et de mthodes
Commentaires:
// un commentaire sur une ligne.
/* un commentaire sur plusieurs lignes */
Laffichage en java
La fonction System.out.print( )
Exemple1:
public class Afficher1
{
public static void main (String [] args)
{
System.out.print("bonjour");
}
}
Rsultat: bonjour
43
Laffichage en java
Exemple2:
public class Afficher2
{
public static void main (String [] args)
{
System.out.print(25+25);
}
}
Rsultat: 50
44
Laffichage en java
Il est aussi possible d'intercaler valeurs de variables etchanes de caractres on spare les arguments par des +
Exemple3:
public class Afficher3
{
public static void main (String [] args)
{
System.out.print("La valeur est" + 25);
}
}
Rsultat: La valeur est 25
45
Laffichage en java
Exemple4:
public class Afficher4
{
public static void main (String [] args)
{
System.out.print("Bonjour" );
System.out.print("Monsieur" );
}
}
Rsultat: BonjourMonsieur
46
Laffichage en java
System.out.println ajoute automatiquement un retour la ligne aprs l'affichage.
\n va faire un retour la ligne
\t va faire une tabulation.
Exemple5:
public class Afficher4
{
public static void main (String [] args)
{
System.out.print("il a dit : \"Bonjour\".");
}
}
Rsultat: il a dit : "Bonjour".47
Laffichage en java
Exemple5:
public class Afficher12
{
public static void main (String [] args)
{
System.out.println("1\t\t1\t\t1");
System.out.println("2\t\t2\t\t2");
}
}
Rsultat:
1 1 1
2 2 248
Dclaration dune variable
49
Dclaration: ;
Affectation: Variable= valeur
Le type peut tre:
-un type de base :Entier, Rel,Boolean,caractre
-Un type de classe
Le type entier
-Le type byte dont les valeurs sont comprises entre - 128 et
+ 127 ...
-Le type short dont les valeurs sont comprises entre - 32
768 et + 32 767...
-Le type int dont les valeurs sont comprises entre - 2 147
483 648 et + 2 147 483 647
-Le type long dont les valeurs sont comprises entre - 9 223
372 036 854 775 808 et + 9 223 372 036 854 775 807
50
Le type entier
Exemple1:
public class Variables2
{ public static void main (String [] args)
{ byte n;
n= 55;
System.out.print(nombre=+n);
}
}
Rsultat nombre=5551
52
Le type rel
Exemple2:
public class Variables
{
public static void main (String [] args)
{ float tva = 20.6f;
System.out.println("tva = " + tva);
double tauxLivret = 2.5;
System.out.println("tauxLivret = " + tauxLivret);
}
}
Rsultat: tva = 20.6tauxLivret = 2.5
float 32 bits (1.4E-45 , 3.4028235E38)
double 64 bits (4.9E-324 ,
1.7976931348623157E308)
53
Le type caractre et le type boolen
Type caractre
Type boolen
char 16 bits
boolean 1
bit
deux valeurs possibles : true ou
false
Le type String
Le type String: permet de grer les chanes de
caractres
Ce nest pas un type de base
Il se manipule comme un type de base
Ce nest pas quivalent un tableaux de caractres
54
String s = "Hello World";
Quelques mthodes relatives la classe "String"
String chaine1 = "bonjour";
String chaine2 = "tout le monde";
-char charAt(int i) : retourne le caractre situ dans la position i.
Exemple : chaine1.charAt(2) n
-int indexOf(char a): cherche la position de caractre a dans la
chaine.
Exemple: int j=chaine1.indexOf(n) i=2
55
Quelques mthodes relatives la classe "String"
String chaine1 = "bonjour";
String chaine2 = "tout le monde";
-String concat(String autreChaine): Concatnation de deux
chaines
Exemple: Chaine3=Chaine1.concat(chaine2) bonjourtout
le monde
-int length( ): retourne le nombre de caractres de la chaine.
Exemple: int x=chaine1.length(); x=7
56
Quelques mthodes relatives la classe "String"
-boolean equals(String autreChaine): renvoie true si la
chaine est gale caractre caractre l'autreChaine
Exemple: boolean t=chaine1.equals (chaine2 ) t=false
-String substring(int debut, int fin):extrait une sous-chane
va du caractre en position du premier argument jusqu' au
caractre en position du 2me argument moins 1:
Exemple: String chaine3= chaine1.substring(0,3) ;
chaine3=Bon57
Quelques mthodes relatives la classe "String"
int compareTo(String autreChaine):renvoie une valeur
- positive si la chaine est suprieure l'autreChaine selon
l'ordre alphabtique,
-ngative si la chaine est infrieure l'autreChaine,
- 0 si la chaine est gale l'autreChaine
58
La classe Math
Cette classe contient des fonctions permettant d' effectuer des
oprations mathmatiques lmentaires telles que l'exponentiel, le
logarithme, la racine carre, les fonctions trigonomtriques, les
minimums et les maximums,etc:
- Math.max(x,y):retourne le maximum entre x et y.
- Math.pow(x,y):retourne x la puissance y.
- Math.sqrt(x):retourne la racine carre de x
- Math.random():retourne une valeur double prises au hasard entre
0,0 et 1,0.Si on veut redfinir lintervalle :
randomNum = minimum + Math.random()*maximum;59
60
Les oprateurs arithmtiques
Sappliquent sur les types entiers ou rels
+, - , * , / , % (modulo) , += , -= , *= , /=
int x, y, z;
y = 2;
z = 3;
x = y * z ; //x vaut 6
x += 2 ; //x vaut 8
y = x / 4 ; //y vaut 2
y =x % 2 ; //y vaut 0
y++ //y vaut 1
61
Oprateurs unaires
Sappliquent un seul oprande de type entier ou rel -, --, +, ++
-Post-incrmentation: l'incrmentation se fait aprs
l'affectation
i=3;
j=i++;
Rsultat: j=3; i=4;
-Pr-incrmentation: l'incrmentation se fait avant
l'affectation
i=3;
j=++i;
Rsultat: j=4; i=4;
62
Oprateurs unaires
Exemple1:
int x, y;
x = 3;
y = -x ; //y vaut -3
y = ++x ; //y vaut 4, x vaut 4
y = x-- ; //y vaut 4, x vaut 3
Exemple2:
j=10;
k=11;
i=(j++)+(++k);
Rsultat: i=22 ; j=11 ; k=12
63
Oprateurs de comparaison/logiques
Sappliquent sur des entiers, boolens, rels
==, !=, , >=
Ces oprateurs retournent une valeur du type boolean
64
Oprateurs logiques Sappliquent au type boolean et Retournent un type boolean
! (not) , && (and) , II (or) ,&, I
& renvoie true si les deux expressions renvoient true
&& a le mme comportement mais nvalue pas la seconde
expression si la premire est false
| renvoie true si lune des deux expressions renvoie
true
|| a le mme comportement mais nvalue pas la seconde
expression si la premire est true
Les conversions, ou cast
Certaines conversions provoquent une perte de valeur.
- D'un type int en type float : int i = 123;
float j = (float)i;
-De mme pour convertir int en double ou double en int
65
Les conversions, ou cast
Exercice1: Dterminer le rsultat de ce programme:
int nbre1 = 3, nbre2 = 2;
double resultat = (double)(nbre1 / nbre2);
System.out.println("Le rsultat est = " + resultat);
le rsultat de ce programme est 1.0: pourquoi?
double resultat = (double)(nbre1) / (double)(nbre2);
1.5
66
Les conversions, ou cast
Convertir un nombre en String
int i = 12;
Integer j=new Integer(i);
String s=j.toString();
Convertir un String en nombre:
String j = 12;
int s=Integer.parseInt(j);
Convertir un String en char
String c= a;
char i=c.charAt(0);
67
La lecture en java
-En utilisant la classe Scanner:
Scanner sc = new Scanner(System.in);
-Importer ce package : import java.util.Scanner;
-il suffit d'appeler next
-Lire un String : String str = sc.nextLine();
-Lire un Int : int i = sc.nextInt;
-Lire un char: String str = sc.nextLine();
char cara=str.charAt(0); 68
Les structures conditionnelles
If (//condition)
{
... //Excution des instructions si la condition est remplie
}
else
{
... //Excution des instructions si la condition n'est pas
remplie
}
69
Les structures conditionnelles
Exercice1: Vrifier si un entier est compris entre 10 et 100.
int i = 18;
if(i >10 && i
Les structures conditionnelles
Exercice2: Ecrivez un programme Java qui lit un nombre
et indique s'il est positif, ngatif ou s'il vaut zro et s'il est
pair ou impair. Exemple d'excution:
-Entrez un nombre entier: 5
Le nombre est positif et impair
-Entrez un nombre entier: 0
Le nombre est zro (et il est pair)
71
72
Switch
switch (/*Variable*/)
{
case /*Argument*/:
/*Action*/;
break;
default: /*Action*/; }
-Le switch ne sapplique quau type entier ou caractre
73
Switch
int note = 10;
switch (note)
{ case 0:
System.out.println( "cest nul!");
break;
case 10:
System.out.println("Vous avez juste la moyenne.");
break;
case 20:
System.out.println("Parfait !");
break;
default:
System.out.println("Il faut davantage travailler."); }
Les boucles Boucle while
while (/* Condition */)
{ //Instructions rpter
}
Boucle do While
Do
{ //Instructions rpter
}while(condition);
La boucle for
for (Compteur =Initial ; Final ; ValeurDuPas )
{ //Instructions rpter
} 74
Les boucles
Exercice: Ecrire un programme qui affiche cinq fois le mot
java lcran en utilisant les trois types de boucle
75
Les boucles
for(int i = 0; i < 5; i++)
{ System.out.println("Java"); }
int a = 0;
while(a < 5)
{ System.out.println("java");
a++; }
int a = 0;
do
{ System.out.println("java");
a++;
} while(a < 5); 76
Tableau une dimension
Dclaration et intialisation:
[] = { };
Exemple: int tableauEntier[] = {0,1,2,3,4,5,6,7,8,9};
Dclaration
int tableauEntier[] = new int[6];
Ou
int[] tableauEntier = new int[6];
La proprit length: renvoit la taille du tableau
tableauEntier.length vaut 677
Les tableaux multidimensionnels
Dclaration et intialisation:
int premiersNombres[][] = { {0,2,4,6,8},{1,3,5,7,9} };
Dclaration
int tableauEntier[][] = new int[2][3];
Ou
int [][] tableauEntier = new int[2][3];
78
Les tableaux multidimensionnels
Dimensions de tableau:
int [][] t =new int[3][3];
quivalent :
int [][] t =new int[3][ ];
for(int i=0;i
Parcourir un tableau
String tab[] = {"toto", "titi", "tutu", "tete};
for(int i=0;i
Exercice
Exercice1: Ecrivez une mthode de signature public
static int nbValueIm (int[ ] tab) qui renvoie le
nombre d'lements du tableau tab qui sont impairs.
81
Exercice
Exercice2: crivez une mthode de signature
public static String filter (String str, char[] tab);qui
renvoie une chaine de caractres correspondant la
chaine str dont toutes les occurences des caractres
prsents dans le tableau tab ont t supprimes.
Exemple, filter ("Hello World", new char[] {'a', 'e', 'i', 'o',
'u'});renvoie la chaine de caractres Hll Wrld.
82
Exercice
Exercice3: Il s'agit d'crire un programme qui, tant
donne une chane de caractres (une instance de
la classe String )
- calcule la chane inverse
-indique s'il s'agit ou non d'un palindrome : Un
palindrome est une phrase qui se lit de la mme
manire dans les deux sens
83
Recommended