Pr. MAHRAZ Med Adnane Université Sidi Mohammed Ben Abdallah Faculté des Science

Pr. MAHRAZ Med Adnane Université Sidi Mohammed Ben Abdallah Faculté des Sciences – Dhar El Mehrez – Fès ANNÉE UNIVERSITAIRE: 2016 - 2017 1 Java a été développé à partir de décembre 1990 par une équipe de Sun Microsystems dirigée par James Gosling Au départ, il s’agissait de développer un langage de programmation pour permettre le dialogue entre de futurs ustensiles domestiques Or, les langages existants tels que C++ ne sont pas à la hauteur : recompilation dès qu'une nouvelle puce arrive, complexité de programmation pour l'écriture de logiciels fiables... 2 Les développeurs Java ont réalisé un langage indépendant de toute architecture de telle sorte que Java devienne idéal pour programmer des applications utilisables dans des réseaux hétérogènes, notamment Internet. Le développement de Java devint alors un enjeu stratégique pour Sun et l'équipe écrivit un navigateur appelé HotJava capable d’exécuter des programmes Java. La version 2.0 du navigateur de Netscape a été développée pour supporter Java, suivi de près par Microsoft (Internet Explorer 3) L'intérêt pour la technologie Java s’est accru rapidement: IBM, Oracle et d'autres ont pris des licences Java. 3 Nous verrons Caractéristiques de Java et son environnement de développement Structures fondamentales La programmation par objets en Java Héritage Polymorphisme Les exceptions, les entrées / sorties en Java Les collections en Java Les paquetages Nous essaierons d’aborder les thèmes suivants si nous en avons le temps : La programmation des interfaces graphiques en Java (AWT et Swing) L’accès aux bases de données 4 Nécessité d’analyser le problème pour pouvoir le traduire en une solution informatique (cela semble évident, mais pourtant!) avant de construire un bâtiment, on fait un plan. Ce n’est pas différent en informatique : conception de l’algorithme, i.e. une réponse (rationnelle) au problème posé puis mise en œuvre technique - le codage - dans un langage de programmation, dans notre cas Java. 5 Se poser les bonnes questions Quelles sont les objets qui interviennent dans le problème? Quelles sont les données, les objets, que le programme va manipuler? Quelles vont être les relations entre ces objets? Quelles sont les opérations que je vais pouvoir effectuer sur ces objets? 6 Une suite d’instructions Exemple: 1. Faire A (un calcul) 2. Faire B 3. Tester une condition: si satisfaite aller à 2, sinon, aller à 4 4. Faire C Un programme est écrit dans un langage  Langage machine (add 12, …): bas niveau  Langage haut niveau Procédural  C, Basic, Cobol, Pascal, Fortran, … Orienté Objet (OO):  Java, VB, C++, … IA (intelligence artificielle):  Prolog, Lisp 7 Édition du code • Écrire un programme dans und langage (e.g. Java) Compiler le programme • Traduire le programme dans un langage de bas niveau (machine) • Produire un programme (code) exécutable • Charger le programme en mémoire (typiquement en 8 Programme source, code source Programme écrit dans un langage Code machine, code exécutable Programme dans un langage de machine, directement exécutable par la machine Compilation (compilateur) Traduire un code source en code exécutable Interpréteur Certains langages n’ont pas besoin d’être traduit en code machine La machine effectue la traduction sur la volée (on the fly), instruction par instruction, et l’exécute E.g. Prolog, JavaScript 9 Compilation Etapes qui ont lieu avant l'exécution pour un langage compilé comme C++ Fichier de code Fichier d'entête Code objet Edition de liens Autres code objet Librairies Programme exécutable 10 Exécution Avant exécution Fichier de code Java MaClasse.java Compilation javac Autres byte code Machine virtuelle Java (JVM) java Cas de Java Byte code MaClasse.class 11 Syntaxe d’un langage Comment formuler une instruction correcte (grammaire) Sémantique Ce que l’instruction réalise Erreur de compilation: typiquement reliée à la syntaxe d’exécution: sémantique (souvent plus difficile à détecter et corriger) 12 Langage orienté objet Notions de classes, héritage, … Beaucoup d’outils disponibles (packages) JDK (Java Development Kit) Historique Sun Microsystems 1991: conception d'un langage indépendant du hardware 1994: browser de HotJava, applets 1996: Microsoft et Netscape commencent à soutenir 1998: l‘édition Java 2: plus stable, énorme librairie 13 Compiler un programme en Byte Code Byte code: indépendant de la machine Interprété par la machine javac programme.java Génère programme.class java programme Lance le programme 14 public class Salut { public static void main(String[] args) { // afficher une salutation System.out.println(“Bonjour tout le monde!"); } } Stocker ce programme dans le fichier Salut.java Nom de la classe Une méthode Une instruction commentaire 15 Compilation javac Salut.java Ceci génère salut.class Lancer l’exécution java Salut Résultat de l’exécution Bonjour tout le monde! 16 mots réservés: public class static void identificateurs: args Salut main String System out println main String System out println: ont une fonction prédéfinie littéral: "Bonjour tout le monde!" ponctuation: { accolade } [ crochet ] ( parenthèse ) Commentaires // note importante pour comprendre cette partie du code /* … commentaires sur plusieurs lignes */ 17 Un programme en Java est défini comme une classe L'en-tête de la classe Nom de la classe Le corps Attributs Méthodes 18 L'en-tête de la classe public class NomDeClasse public = tout le monde peut utiliser cette classe class = unité de base des programmes OO Une classe par fichier La classe NomDeClasse doit être dans le fichier NomDeClasse.java Si plus d’une classe dans un fichier .java, javac génère des fichiers .class séparés pour chaque classe 19 Le corps { … } Contient les attributs et les méthodes Attributs: pour stocker les informations de la classe Méthodes: pour définir ses comportement, ses traitements, … Conventions et habitudes nom de classe: NomDeClasse indentation de { } indentation de ... 20 L'en-tête: public static void main(String[] args) main: nom de méthode void: aucune sortie (ne retourne rien) String[] args: le paramètre (entrée) String[]: le type du paramètre args: le nom du paramètre Conventions nomDeParametre nomDeMethode nomDAttributs nomDObjet 21 Le corps: { // afficher une salutation System.out.println("Bonjour tout le monde!"); } contient une séquence d'instructions, délimitée par { } // afficher une salutation : commentaire System.out.println("Bonjour tout le monde!"): appel de méthode les instructions sont terminées par le caractère ; 22 En général: nomDObjet.nomDeMethode(<liste des paramètres>) System.out: l'objet qui représente le terminal (l’écran) println: la méthode qui imprime son paramètre (+ une fin de ligne) sur un stream (écran) System.out.println("Bonjour tout le monde!"); "Bonjour tout le monde!": le paramètre de println La méthode main “java Salut” exécute la méthode main dans la classe Salut main est la méthode exécutée automatiquement à l’invocation du programme (avec le nom de la classe) qui la contient 23 Variable: contient une valeur Nom de variable Valeur contenue dans la variable Type de valeur contenue int: entier, long: entier avec plus de capacité Integer: classe entier, avec des méthodes float: nombre réel avec point flottant, double: double précision String: chaîne de caractères ("Hello, World!") char: un caractère en Unicode (‘a’, ‘$’, ‘é’, …) boolean: true/false Définition générale Type nomDeVariable; Exemple: int age; Type: int Nom: age 0 24 Affecter une valeur à une variable E.g. age = 25; Erreur si: age = "vingt cinq"; Type de valeur incompatible avec la variable Type: int Nom: age 25 25 Une condition correspond à vrai ou faux E.g. (age < 50) Tester une condition: if condition A; else B; si condition est satisfaite, alors on fait A; sinon, on fait B E.g. if (age < 65) System.out.println("jeune"); else System.out.println("vieux"); 26 Pour les valeurs primitives (int, double, …) x == y : x et y ont la même valeur? x > y, x >= y, x != y, … Attention: (== != =) 27 public class Salutation { public static void main(String[] args) { int age; age = Integer.parseInt(args[0]); // afficher une salutation selon l’age System.out.print(“Salut, le "); if (age < 65) System.out.println(“jeune!"); else System.out.println(“vieux!"); } } Utilisation: java Salutation 20 // ici, args[0] = "20" Salut le jeune! java Salutation 70 Salut le vieux! args[0]: premier argument après le nom print: sans retour à la ligne println: avec retour à la ligne Integer.parseInt(args[0]): reconnaître et transmettre la valeur entière qu’il représente 28 Pour traiter beaucoup de données en série Schémas Boucle for int somme = 0; for (int i = 0; i<10; i++) somme = somme + i; Boucle while int somme = 0; int i = 0; while (i<10) { somme = somme + i; i++; } Que font ces deux boucles? i: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 somme: 0 0, 1, 3, 6, 10, 15, 21, 28, 36, 45, sortie somme=0; i=0; i<10? somme=somme+i; i++; oui non Schéma d’exécution 29 do A while (condition) Faire A au moins une fois Tester la condition pour savoir s’il faut refaire A somme=0; i=15; i<10? somme=somme+i; i++; oui non Schéma d’exécution somme=0; i=15; somme=somme+i; i++; i<10? oui non Schéma d’exécution int somme = 0; int i = 15; while (i<10) { somme = somme + i; i++;} int somme = 0; int i = 15; do { somme = somme + i; i++; } while (i<10); somme = 0 somme = 15 30 Calcul des intérêts Étant donné le solde initial, le solde souhaité et le taux uploads/Litterature/ java.pdf

  • 26
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager