programmation java ch1

Embed Size (px)

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