La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Conception par objet et Programmation Java

Présentations similaires


Présentation au sujet: "Conception par objet et Programmation Java"— Transcription de la présentation:

1 Conception par objet et Programmation Java
Préparé par : Ibrahim BENLAZREG

2 Références «Java -tête la première»
Kathy Sierra, Bert Bates,1re édition, O’Reilly, septembre 2004 «Cahiers du Programmeur -Java et 5.0 » Emmanuel Puybaret, Eyrolles, mars 2006 «Introduction à Java », 2e édition Pat Niemeyer et Jonathan Knudsen, O’Reilly, déc. 2002 «Au coeur de Java 2 -Volume 1 : Notions fondamentales» Cay S. Horstmann, Gary Cornell, CampusPress, nov. 2003 «Thinkingin Java», Bruce Eckel-Prentice-Hall( «JAVA in a nutshell, 5th Edition», David Flanagan -O'Reilly2005

3 Concepts de la programmation orientée objet

4 Programmation Orientée Objet
La programmation orientée objet se base sur une approche de conception et de développement de logiciels permettant d'améliorer la productivité et la qualité du logiciel. Représenter les éléments du monde réel par des entités informatiques appelés "objets" en adoptant un haut niveau d'abstraction.    modélisation simplifiée vu que le monde réel n'est plus représenté par des structures de données et des fonctions isolées (cas de la programmation classique) mais par des objets correspondant aux éléments traités du champ de l'étude.

5 Le guide du développeur
Avant… Approche procédurale : "Que doit faire mon programme ?" Exemple: Gestion d'une bibliothèque UML par la pratique JAVA 2 Le guide du développeur La Presse Directrice Bibliothécaire Lectrice Lecteur

6 Le guide du développeur
Avant… Gérer les emprunts de livres Approche procédurale : "Que doit faire mon programme ?" Exemple: Gestion d'une bibliothèque Gérer le stock La Presse Directrice Bibliothécaire Lectrice Lecteur JAVA 2 Le guide du développeur UML par la pratique

7 Le guide du développeur
Présent… Approche procédurale : "Que doit faire mon programme ?" Approche orientée-objet : "De quoi doit être composé mon programme ?" Cette composition est conséquence d'un choix de modélisation fait pendant la conception Exemple: Gestion d'une bibliothèque La Presse Directrice Bibliothécaire Lectrice Lecteur JAVA 2 Le guide du développeur UML par la pratique

8 Le guide du développeur
Concepts : Classe Des objets similaires peuvent être informatiquement décrits par une même abstraction : une classe même structure de données et méthodes de traitement valeurs différentes pour chaque objet Classe Livre Classe Journal Classe Employé Classe Lecteur La Presse Directrice Bibliothécaire Lectrice Lecteur JAVA 2 Le guide du développeur UML par la pratique

9 Concepts : Classe LES CLASSES :Une classe d'objets est constituée d'une partie statique et d'une partie dynamique Partie statique : LES ATTRIBUTS : Les attributs représentent la description des données propres à chaque classe d'objets. Ceux-ci peuvent être des objets d'autres classes ou des références sur d'autres objets. Partie dynamique : LES METHODES : Les méthodes représentent l'ensemble des actions, procédures, fonctions ou opérations que l'on peut associer à une classe. L'ensemble des méthodes de la classe définit le "COMPORTEMENT "

10 Concepts : Classe CLASSE VOITURE ATTRIBUTS METHODES Marque Modèle
Immatriculation Vitesse Couleur Puissance fiscale Etc ... Démarrer Accélérer Freiner Stopper Vidanger Etc ....

11 Concepts : Objet Une instance de classe est un élément construit selon le modèle de sa classe. On nommera cet élément "OBJET". L'opération par laquelle une classe produit plusieurs instances est l'instanciation

12 Objet = Etat + comportement + identité
Concepts : Objet Objet = Etat + comportement + identité Un objet représente une entité du monde réel qui se caractérisent par une identité, des états et par un comportement. L’identité d’un objet permet de distinguer les objets les uns par rapport aux autres. Son état correspond aux valeurs de tous les attributs à un instant donné. le comportement d’un objet se défini par l’ensemble des opérations qu’il peut exécuter en réaction aux messages envoyés (un message = demande d’exécution d’une opération) par les autres objets..

13 Concepts : Classe et Objet
CLASSE VOITURE EXEMPLES D'INSTANCES DE LA CLASSE VOITURE ATTRIBUTS METHODES Marque Modèle Immatriculation Vitesse Couleur Puissance fiscale Etc ... Démarrer Accélérer Freiner Stopper Vidanger Etc .... PEUGEOT PARTNER 120 TN 1234 160 Km /h rouge 6 CV RENAUT Laguna 130 TN5671 190 Km /h bleu 5 CV

14 Concepts : Encapsulation …
"L'encapsulation est le processus qui consiste à empêcher d'accéder aux détails d'un objet qui ne contribuent pas à ses caractéristiques essentielles" (définition de BOOCH ). L'encapsulation : intégrer le code et les données d'une entité au sein d'un objet. empêche également les utilisateurs clients de connaître les détails de son implémentation en ne fournissant qu'une vue externe (correspondant à un masquage d'information). Seule l'interface (ou protocole) d'un objet doit paraître visible aux yeux d'un client potentiel.

15 L'encapsulation des données
Exemple : Méthode : Vérifier le mot de passe d’un utilisateur Objet : Individu (Employer d’une entreprise) Donnée protégée : Valeur du mot de passe

16 L'encapsulation des méthodes
Exemple : Message = Débiter(somme, compte, code_confidentiel). Objet = compte bancaire. Méthode A (Visible depuis l'interface) = Débiter_carte_de_crédit. Méthode B (non visible par l'utilisateur mais appelée par la méthode A) = Algorithme de validation du code confidentiel. Des méthodes encapsulées peuvent faire appel à des données qui sont elles-mêmes protégées

17 Concepts : Héritage L'héritage est un mécanisme destiné à exprimer les similitudes entre classes. Il met en oeuvre les principes de généralisation et de spécialisation en partageant explicitement les attributs et méthodes communs au moyen d'une hiérarchie de classes .

18 Concepts : Héritage… La classe fille hérite des caractéristiques de sa classe mère (attributs et méthodes) mais elle se distingue par ses caractéristiques propres. . SUPER CLASSE ou classe mère, métaclasse, classe de base, ancêtre Lien d'héritage SOUS CLASSE ou classe fille, classe dérivée, descendant

19 Les différents types d'héritage
Héritage simple : une classe fille n'a qu'une seule classe mère et elle hérite d'une partie des attributs et méthodes de celle-ci en ayant ses spécifications propres. Héritage multiple : une classe fille hérite de plusieurs classes mères. Elle hérite d'une partie des attributs et des méthodes de chacune de ses classes mères, en plus de ses spécifications propres. . AVION BATEAU HYDRAVION

20 La notion de composition ou agrégation
La composition consiste à réunir des objets pour en former un autre. VOITURE 1 4 CARROSSERIE ROUES DIRECTION MOTEUR Dans le cas d'une composition (ou agrégation), on s'attachera à préciser le cardinal de cette relation.

21 Introduction a la programmation java

22 Qu’est-ce que Java ? Une technologie développée par SUN Microsystems™ lancée en 1995 Un langage de programmation Une plateforme , environnement logiciel dans lequel les programmes java s'exécutent. La « Java Virtual Machine » (JVM) Des interfaces de programmation d’application (Java API)

23 Le langage Java JAVA est un langage de programmation orientée objet
Il hérite partiellement la syntaxe de C++ mais non ses défauts. Dans java ont été éliminés tous les éléments qui permettaient dans C++ d'engendrer des erreurs dans le code (pointeurs, allocation, désallocation, héritage multiple,...). Libération automatique de la mémoire : garbage collector

24 Le langage Java: Les différences avec C++
Pas de structures ni d’unions Pas de types énumérés? (avant la version 5.0) Pas de typedef Pas de variables ni de fonctions en dehors des classes Pas de fonctions à nombre variable d’arguments Pas d'héritage multiple de classes Pas de surcharge d’opérateurs Pas de passage par copie pour les objets Pas de pointeurs, seulement des références

25 Le langage Java: caractéristiques
Orienté objet : Meilleure modularité. Maintenance aisée des applications. Optimisation des composants. Simple : Supprime les aspects lourds et pénibles comme l'héritage multiple. Interdit la manipulation de pointeurs générateurs de nombreux bugs. Fournit via son Application Programming Interface API (une librairie) un très grand nombre d'outils avec des fonctionnalités puissantes qui vont simplifier et accélérer le développement d'applications. Syntaxe proche du C/C++ mais plus simple.

26 Le langage Java: caractéristiques
Interprété : Le Byte Code est interprété par la JVM. La JVM se charge de l'interaction avec le système d'exploitation sous-jacent. Réparti : JAVA supporte des mécanismes de communication à distance au moyen de son API réseau. Robuste : JAVA est un langage fortement typé. Interdiction de manipulation des adresses via des pointeurs qui est souvent génératrice d'erreurs. Récupération automatique de la mémoire inutilisée. Des contrôles lors de l'exécution (exemple : dépassement de la taille d'un tableau).

27 Le langage Java: caractéristiques
Sécurité: Limitation des erreurs par la syntaxe. Vérification par le compilateur et l'interpréteur. Indépendant de la plate-forme : Génération d'un Byte Code indépendant de la plate-forme. Chaque plate-forme possède sa propre JVM.  Multi-thread : Un thread est une entité d'exécution qui peut s'exécuter en parallèle d'une manière concurrente à d'autres threads au sein d'une même application. Lancement de plusieurs threads en même temps sans blocage.

28 Le langage Java: caractéristiques
Dynamique: Les composants d'une application (les classes) sont chargés au lancement de l'application. Performance ? : Exécution ralentie à cause de l’interpréteur ? Le code natif généré par l’interpréteur est-il aussi rapide que celui réalisé par un compilateur classique (par ex C)?

29 La plateforme Java Plateforme = environnement hardware ou software sur lequel le programme est exécuté. La Java « Platform » se compose de: la Java Virtual Machine (Java VM) la Java Application Programming Interface (Java API)

30 La plateforme Java: API Java
(très) vaste collection de composants logiciels (classes et interfaces) organisée en bibliothèques (packages) offre de nombreux services de manière standard (indépendamment de la plateforme matérielle) Aperçu : Java.lang: gestion des chaînes de caractères (String), interaction avec l’OS (System), programmation parallèle (Thread). Java.util: parseur de chaîne, Liste, Dictionnaires, HashTable,... Java.io: gestion des entrées/Sorties (écran, clavier, fichier) java.applet: gestion des applets Java.awt et Java.swing: gestion de l’interface graphique: Fenêtres, boutons, boites de dialogue, événements souris,..

31 La plateforme Java: évolution de l’API standard

32 La plateforme Java: les différentes éditions de Java

33 Java : Comment ça marche??

34 Étapes d’exécution d’un programme Java

35 Types de programmes Java
En Java, on développe deux genres de programmes : Les applications indépendantes Programmes autonomes (standalone) les applets qui sont des programmes java insérés dans un document HTML s'exécutant à travers la machine virtuelle java du navigateur lisant le document HTML.

36 JDK : boîte à outils Java
Le JDK (Java Development Kit) contient tout ce qui est nécessaire pour développer des programmes Java (utilitaires + documentation + JRE) Utilitaires : javac, le compilateur qui transforme votre programme source en bytecode, java, le programme permettant l'exécution du bytecode constituant les applications, l'AppletViewer, pour exécuter les applets, javadoc, un programme permettant de créer automatiquement la documentation de vos programmes au format HTML, autres utilitaires… Documentation : contient la liste de toutes les classes Java. Cette documentation est absolument indispensable au programmeur. Elle est au format HTML et doit être consultée à l'aide d'un navigateur. Le J2RE (Java 2 Runtime Environment), qui contient tout ce qui est nécessaire pour diffuser vos applications aux utilisateurs.

37 Installation du JDK A l'installation, le JDK est placé dans un dossier qui comporte plusieurs sous-dossiers. Dans la version actuelle, ce dossier est nommé jdk1.6.

38 Installation du JDK : paramétrage
Path: Pour exécuter le compilateur javac et l’interpréteur java de n’importe quelle répertoire il faudra spécifier la variable d’environnement path=%java_home%\bin Classpath : Pour compiler ou exécuter un programme java qui importe de packages (externes au "core") ou qui utilise des classes additionnelles à vous, il faut indiquer où se trouvent ces classes, soit un répertoire, un archive (de type *.jar ou *.zip) Quand le compilateur ne trouve pas une classe, il faut rajouter l'endroit où elle se trouve (ou plutôt le package ou elle se trouve) dans le classpath 38

39 Installation du JDK : paramétrage
La configuration de l'environnement comporte deux aspects : Le chemin d'accès aux programmes exécutables (javac, java…). Set path=%path%;C:\....\jdk1.x\bin dans l’invité de commandes Fichier autoexec.bat Démarrer/paramètres/panneau de configuration/systèmes/onglet Avancé/bouton Variables d’environnement/variables système Le chemin d'accès aux classes Java (fich.class). Set classpath= =%classpath%;C:\......\repertoire_personnel 39

40 Environnement de développement
Définitions: Console: Invite de commande terminal (linux), MSDOS (windows) Éditeur de texte: Notepad, Wordpad, Vi Environnement de développement intégré (IDE) est un programme regroupant un ensemble d'outils pour le développement de logiciels. En règle générale, un EDI regroupe un éditeur de texte, un compilateur , des outils automatiques de fabrication, et souvent un débogueur. [wikipedia] Forte for java, Jcreator, JpadPro, Jbuilder, eclipse…

41 Premier Programme hello.class est générée
Editer le code source Java suivant et le sauver dans Hello.java : Public class Hello { public static void main( String args[]) System.out.println( "Bienvenue dans le monde Java "); } } Compiler avec la commande javac Hello.java hello.class est générée Exécuter en lançant la machine virtuelle java et en lui spécifiant le point d'entrée Java Hello 41

42 Commentaire sur le premier programme
La POO pure Rien que pour afficher "Bienvenue" nous avons développé une classe. Nous avons utilisé les classes System et String ; ces classes appartiennent à java.lang qui est implicitement importé La méthode main() doit être static main doit être une méthode de classe pour qu'on puisse l'invoquer directement à partir de la classe sans besoin de construire une instance de la classe. La méthode main() doit déclarer l'argument String main() doit déclarer la chaîne d'arguments même si on lui passera rien lors de l'exécution. 42

43 Commentaire sur le premier programme
Le nom du fichier source doit obligatoirement concorder avec le nom de la classe Il est dans les habitudes des programmeurs Java de faire concorder le nom du fichier source avec celui de la classe qu'il contient. Dans le cas où l'on a plusieurs classes dans le fichier, on nomme ce dernier avec la classe ayant le point d'entrée main(). Ceci n'est suscité que pour des raison de simplicité. Le compilateur génère un fichier .class par classe source compilé et que le nom du .class est le même que celui de la classe source. 43

44 Exemple d’erreurs de syntaxe…

45 Exemple d’erreurs de syntaxe…

46 Structure du code en Java

47 Anatomie d’une classe

48 Types et instructions de base JAva

49 Mots clés Java abstract, boolean, break, byte,case,catch, char,class,
continue,default, do, double, else, extends,final, finally, float, for, if, implements, import, instanceof, int, interface, long, native, new, null,package, private, protected, public, return, short, static, super, switch, synchronized, this, throw, throws, transient, try, void, volatile, while

50 Identificateurs Nommer les classes, les variables, les méthodes, ...
Un identificateur Java est de longueur quelconque commence par une lettre Unicode peut ensuite contenir des lettres ou des chiffres ou le caractère souligné«_ » ne doit pas être un mot réservé du langage (mot clé) (if, for, true, … ) , les caractères suivants sont autorisés pour construire un identificateur Java : "$" , "_" , "µ" et les lettres accentuées. [a..z, A..Z, $, _, µ ]{a..z, A..Z, $, _, µ, 0..9, Unicode}

51 Conventions de nommage
Les noms de classes commencent par une majuscule (ce sont les seuls avec les constantes) : Visage, Object Les mots contenus dans un identificateur commencent par une majuscule : UneClasse, uneMethode, uneVariable On préférera ageDuCapitaine à ageducapitaine ou age_du_capitaine Les constantes sont en majuscules et les mots sont séparés par le caractère souligné« _ »: UNE_CONSTANTE

52 Commentaires Sur une ligne Sur plusieurs lignes
Commentaires documentant pour le javadoc

53 Commentaires Commenter le plus possible et judicieusement
Chaque déclaration (variable, mais aussi méthode, classe) Commenter clairement (utiliser au mieux les 3 possibilités)

54 Types de données en Java
2 grands groupes de types de données : types primitifs objets (instances de classe) Java manipule différemment les valeurs des types primitifs et les objets : les variables contiennent des valeurs de types primitifs ou des références aux objets

55 Types primitifs Valeur logique Nombres entiers
boolean (true/false) Nombres entiers byte (1 octet), short (2octets), int (4 octets), long (8 octets) Nombres non entiers (à virgule flottante) float (4 octets), double (8 octets). Caractère (un seul) char (2 octets) ; codé par le codage Unicode (et pas ASCII) types indépendants de l’architecture En C/C++, représentation dépendante de l’architecture (compilateur, système d’exploitation, processeur) ex: int= 32 bits sous x86, mais 64 bits sous DEC alpha Portage difficile, types numériques signés/non signés

56 Types primitifs et valeurs

57 Constantes nombres Une constante «entière»est de type long si elle est suffixée par «L»et de type int sinon Une constante «flottante»est de type float si elle est suffixée par «F»et de type double sinon Exemples 35 2589L // constante de type long 4.567e2 // 456,7 de type double E-25F // de type float

58 Constantes de type caractère
Un caractère Unicode entouré par 2 simples quotes '   Exemples : 'A' 'a' 'ç''1' '2‘ \ caractère d’échappement pour introduire caractères spéciaux '\t' tabulation '\n' nouvelle ligne '\r' retourchariotretourarrière '\f' sautde page '\\' '\‘‘ '\" ‘ ’\u03a9’ ( \u suivi du code hexadécimal à 4 chiffres d’un caractère Unicode) 'α'

59 Autres constantes Type booléen
False true Référence inexistante (indique qu’une variable de type non primitif ne référence rien) null

60 Forcer un type en Java Java langage fortement typé
Dans certains cas, nécessaire de forcer le programme à considérer une expression comme étant d’un type qui n’est pas son type réel ou déclaré On utilise le cast : (type-forcé) expression Exemple int i = 64; char c = (char)i;

61 Casts entre types primitifs
Un cast entre types primitifs peut occasionner une perte de données Par exemple, la conversion d'un int vers un short peut donner un nombre complètement différent du nombre de départ Un cast peut provoquer une simple perte de précision Par exemple, la conversion d'un long vers un float peut faire perdre des chiffres significatifs mais pas l'ordre de grandeur

62 Casts entre types primitifs
Les affectations entre types primitifs peuvent utiliser un cast implicite si elles ne peuvent provoquer qu'une perte de précision (ou, encore mieux, aucune perte) int i = 130; double x = 20 * i; Sinon, elles doivent comporter un cast explicite short s = 65; // cas particulier affectation int "petit" s = ; // provoque une erreur de compilation byte b = (byte)(i + 2); char c = i; // caractère dont le code est 65 b = (byte)i; // b = -126 !

63 Casts entre entier et caractère
La correspondance char → int, long s’obtient par cast implicite Les correspondances char → short, byte , et long, int, short ou byte → char nécessitent un cast explicite (entiers sont signés et pas les char) int i = 80; char c = 68; // caractère dont le code est 68 c = (char)i i = c; short s = (short)i; char c2 = s; // provoque une erreur

64 Opérateurs Il existe 39 opérateurs de Java classés par famille. Les opérateurs ont soit une seule opérande, soit deux opérandes, Il n'existe en Java qu'un seul opérateur à trois opérandes (comme en C) l'opérateur conditionnel " ? : ". La priorité des opérateurs sert, lorsqu'une expression contient plusieurs opérateurs, à indiquer l'ordre dans lequel s'effectueront les opérations. Par exemple sur les entiers l'expression 2+3*4 vaut 14 car l'opérateur * est plus prioritaire que l'opérateur +, donc l'opérateur * est effectué en premier. Lorsqu'une expression contient des opérateurs de même priorité alors Java effectue les évaluations de gauche à droite. Par exemple l'expression 12/3*2 vaut 8 car Java effectue le parenthésage automatique de gauche à droite ((12/3)*2).

65 Priorité d'opérateurs La plus haute La plus basse

66 Les opérateurs arithmétiques

67 Les opérateurs arithmétiques

68 Post-incrémentation k++ : la valeur de k est d'abord utilisée telle quelle dans l'instruction, puis elle est augmentée de un à la fin.

69 Pré-incrémentation ++k : la valeur de k est d'abord augmentée de un ensuite utilisée dans l'instruction.

70 Post ou pré-décrémentation
k-- : la valeur de k est d'abord utilisée telle quelle dans l'instruction, puis elle est diminuée de un à la fin. --k : la valeur de k est d'abord diminuée puis utilisée dans l'instruction.

71 Opérateurs de comparaison
Ces opérateurs employés dans une expression renvoient un résultat de type booléen (false ou true).

72 Opérateurs booléens où { V, F }représente l'ensemble {Vrai , Faux}
Ce sont les opérateurs logiques classiques de l'algèbre de Boole Les connecteurs logiques ont pour syntaxe en Java : ! , & , | , ^ : L’opérateur et : & ( { V, F }x { V, F } { V, F }) L’opérateur ou : | ( { V, F }x { V, F } { V, F }) L’opérateur ou exclusif : ^ ( { V, F }x { V, F } { V, F }) L’opérateur non : ! ( { V, F } { V, F }) où { V, F }représente l'ensemble {Vrai , Faux} L'opérateur et optimisé : && L'opérateur ou optimisé : | |

73 Opérateurs bits level Ce sont des opérateurs de bas niveau en Java dont les opérandes sont exclusivement l'un des types entiers ou caractère de Java (short, int, long, char, byte). Ils permettent de manipuler directement les bits du mot mémoire associé à la donnée.

74 Déclarations des variables
Avant toute utilisation dans un programme une variable doit être déclarée syntaxe: type identificateur type : un type primitif ou un nom de classe Exemples byte age; boolean jeune; float poids; double x, y ,z; Une variable est accessible (visible) depuis l'endroit où elle est déclarée jusqu'à la fin du bloc où sa déclaration a été effectuée

75 Déclarations des variables (suite)

76 Les instructions Toutes les instructions doivent se terminer en Java par un point-virgule " ; « Instruction simple, instruction composée ou bloc instruction (encadrée par { …….})

77 L’affectation Le symbole d'affectation en Java est " = ", soit par exemple : x = y avec x est un identificateur de variable L'affectation peut être utilisée dans une expression: int a , b = 56 ; a = (b = 12)+8 ; // b prend une nouvelle valeur dans l'expression a = b = c = d =8 ; // affectation multiple Optimisation : soit op un opérateurs quelconque a = -8 ; a += b ; // équivalent à : a = a + b b *= 3 ; // équivalent à : b = b * 3 => a=48 et b=168

78 Les instructions conditionnelles l’opérateur if …else
if ( Expression ) Instruction ; if (Expression ) Instruction ; else Instruction ; L'expression doit être de type booléen int a , b , c ; …. if ( b = = 0 ) c =1 ; else { c = a / b; System.out.println("c = " + c); } if ((c = a*b) != 0) c += b; affectaion de a*b dans c puis comparaison else c = a;

79 Les instructions conditionnelles : L'opérateur …? … : …
Où expression renvoie une valeur booléenne (le test), les deux termes valeur sont des expressions générales (variable, expression numérique, booléenne etc...) renvoyant une valeur de type quelconque. Si l'expression est true l'opérateur renvoie la première valeur, Si l'expression est false l'opérateur renvoie la seconde valeur Exemple : int a,b,c ; c = a = = 0 ? b : a+1 ; < == > if (a = = 0) c = b; else c = a+1;

80 Exercice question : utiliser l'opérateur conditionnel pour calculer le plus grand de deux entiers a, b. question : que fait ce morceau de programme ci-après ? int a , b , c ; .... c = a>b ? (b=a) : (a=b) ;

81 Les instructions conditionnelles: l'opérateur switch...case
Switch (expression) { Case (expression1) : instructions; break; Case (expression2) : instruction; break; ………. Default : instruction; } La partie expression d'une instruction switch doit être une expression ou une variable du type byte, char, int ou bien short. La partie expression d'un bloc case doit être une constante ou une valeur immédiate du type byte, char, int ou bien short.

82 Exercice Question : Les résultats sont-ils corrects ? Pourquoi?

83 Les instructions itératives: la boucle while
while ( Expression ) { Instruction 1 ; Instruction 2 ; ... } L'expression doit être de type booléen do } while ( Expr ) => elle s’exécute au moins une fois

84 Les instructions itératives: la boucle for
for (Expr1 ; Expr2 ; Expr3 ) Instructions Expr1 sert à initialiser une ou plusieurs variables (dont éventuellement la variable de contrôle de la boucle) sous forme d'une liste d'instructions d'initialisation séparées par des virgules. Expr2 sert à donner la condition de rebouclage sous la forme d'une expression renvoyant une valeur booléenne (le test de l'itération). Expr3 sert à réactualiser les variables (dont éventuellement la variable de contrôle de la boucle)sous forme d'une liste d'instructions séparées par des virgules.

85 Exemples de boucle for

86 Exemples de boucle for Voici une boucle dite infinie
Voici une boucle ne possédant pas de variable de contrôle(f(x) est une fonction déjà déclarée) : Terminons par une boucle for possédant deux variables de contrôle :

87 Récapitulation

88

89 Structures de données: String & Tableaux

90 La classe String Le type de données String (chaîne de caractère) est une classe. Une chaîne de type String est un objet Un objet String n'est utilisable qu'à travers les méthodes de la classe String. Exemple de valeur littéral de chaîne: " abcdef ".

91 La classe String: Méthodes
Concat ( ) : concaténer 2 chaines de caractères toCharArray ( ) : converti une chaîne en un tableau de caractères contenant tous les caractères de la chaîne.

92 La classe String: Méthodes (suite)

93 La classe String: caractéristiques
Les objets String sont « immutables » : méthodes de manipulation d'une chaîne renvoient un autre objet de chaîne différent. On ne peut pas concaténer avec l’opérateur +, des char à une chaîne String

94 Tableaux

95 Les tableaux à une dimension
Déclaration d'une variable de type tableau : int [ ] table1; OU int table1[ ]; char [ ] table2; float [ ] table3; ... String [ ] tableStr; Déclaration d'une variable de tableau avec définition explicite de taille : int [ ] table1 = new int [5]; char [] table2 = new char [12]; float [ ] table3 = new float [8]; String [ ] tableStr = new String [9];

96 Les tableaux à une dimension
La déclaration et la définition de taille peuvent être séparés, La définition peut être mise n'importe où dans le corps d'instruction, mais elle doit être utilisée avant toute manipulation du tableau. Cette dernière instruction de définition peut être répétée plusieurs fois dans le programme, il s'agira alors à chaque fois de la création d'un nouvel objet (donc un nouveau tableau), l'ancien étant détruit et désalloué automatiquement par le ramasse-miettes (garbage collector) de Java.

97 Les tableaux à une dimension
Déclaration et initialisation d'un tableau avec définition implicite de taille : int [ ] table1 = {17,-9,4,3,57}; char [ ] table2 = {'a','j','k','m','z'}; float [ ] table3 = {-15.7f,75,-22.03f,3,57}; String [ ] tableStr = {"chat","chien","souris","rat","vache"}; Dans cette éventualité Java crée le tableau, calcule sa taille et l'initialise avec les valeurs fournies. Il existe un attribut général qui contient la taille d'un tableau quelque soit son type, c'est l'attribut length. Le premier élément d'un tableau est numéroté 0, le dernier length-1.

98 Les tableaux à deux dimension
La déclaration s'effectue avec deux opérateurs crochets [ ] [ ] . Le premier crochet sert à indiquer le nombre de lignes (nombre de tableaux à une dimension), le second crochet sert à indiquer la taille de la ligne.

99 Les tableaux à deux dimension

100 Entrées/sorties sur console

101 Affichage sur console Affichage sur la console
System.out.print(chaîne de caractères à afficher) System.out.println(chaîne de caractères à afficher) chaîne de caractères peut être : une constante chaîne de caractères (String) System.out.println("coucou"); une expression de type String System.out.println(age); une combinaison (concaténation) de constantes et d'expressions de type String. La concaténation est exprimée à l'aide de l'opérateur + System.out.println("L'age de la personne est " + age + " son poids " + poids);

102 Lecture du clavier: classe Scanner
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", sommme ); } } Pour lire une chaine de caractère input.nextLine();

103 Lecture du clavier: classe JOptionPane
Affiche une boîte de dialogue standard qui permet à l’utilisateur de saisir ou d’afficher une information import javax.swing.JOptionPane; public class GetInputFromKeyboard { public static void main( String[] args ){ String name = ""; name=JOptionPane.showInputDialog(“Please enter your name"); String msg = "Hello " + name + "!"; JOptionPane.showMessageDialog(null, msg); }

104 Exécution de l’exemple

105

106


Télécharger ppt "Conception par objet et Programmation Java"

Présentations similaires


Annonces Google