Anda di halaman 1dari 83

La programmation java

Meryem OUARRACHI

Plan
Partie1: 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 UML


2

Partie1: La programmation Java

Chapitre 1 Introduction la programmation Oriente Objet

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

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

Concepts gnraux de l'OO

Notion de classe

Classe=Mthode + Proprits

Concepts gnraux de l'OO Notion d'objet


Objet = une instance de classe

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


par Voiture(rouge)

d'une

voiture

rouge

se

fait

- 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

Chapitre 2 Introduction Java

15

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 Java
16

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


Source(Prog.java)

Compilation (Javac)
Byte Code(Prog.class)

Indpendant de toute machine ou plate forme Portabilit

Interprtation via JVM (java)


Code machine(Prog.exe)
18

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 a
mis 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 : crivez Java est indpendant de plates-formes du code pour une machine trs matrielles;vous

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/downl oads/index.html Eclipse http://www.eclipse.org/downloads/download.php?file= /technology/epp/downloads/release/juno/R/eclipse-jeejuno-win32.zip

36

Chapitre 3 Les bases du langage JAVA

37

La structure gnrale dun programme java

38

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 > }

39

Dfinition dune mthode


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 > } }
40

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 :
41

affichage calculVitesse

Nom de classes, de variables et de mthodes

Commentaires:

// un commentaire sur une ligne.


/* un commentaire sur plusieurs lignes */

42

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 et chanes 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 2
48

Dclaration dune variable


Dclaration:<Type de la variable> <Nom de la variable> ;

Affectation: Variable= valeur


Le type peut tre: -un type de base :Entier, Rel,Boolean,caractre

-Un type de classe

49

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=55

51

Le type rel
float 32 bits (1.4E-45 , 3.4028235E38)

double

64 bits

(4.9E-324 , 1.7976931348623157E308)

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.6 tauxLivret = 2.5 52

Le type caractre et le type boolen


Type caractre
char 16 bits

Type boolen
boolean 1 bit deux valeurs possibles : true ou false

53

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

String s = "Hello World";

54

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=Bon
57

Quelques mthodes relatives la classe "String"


i nt 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

Les oprateurs arithmtiques


Sappliquent sur les types entiers ou rels

+, - , * , / , % (modulo) , += , -= , *= , /=
int x, y, z; y = 2; z = 3; x = y * z ; x += 2 ; y = x / 4 ; y =x % 2 ; y++ //x vaut 6 //x vaut 8 //y vaut 2 //y vaut 0 //y vaut 1

60

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;
61

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

62

Oprateurs de comparaison/logiques
Sappliquent

sur

des

entiers,

boolens,

rels

==, !=, <=, >, >= Ces oprateurs retournent une valeur du type boolean

63

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
64

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<Type de variable commenant par une majuscule> -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 <100)


System.out.println("Le nombre est bien dans l'intervalle."); else

System.out.println("Le nombre n'est pas dans l'intervalle.");

70

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

Switch
switch (/*Variable*/)
{

case /*Argument*/:
/*Action*/; break; default: /*Action*/; }

-Le switch ne sapplique quau type entier ou caractre


72

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."); }
73

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:

<type du tableau> <nom du tableau> [] = { <contenu>};


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 6
77

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<3;i++)
{t[i]=new int[3]; }

79

Parcourir un tableau
String tab[] = {"toto", "titi", "tutu", "tete};
for(int i=0;i<tab.length;i++)

System.out.println(tab[i]);

80

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

Anda mungkin juga menyukai