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
Documents similaires










-
26
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Nov 18, 2022
- Catégorie Literature / Litté...
- Langue French
- Taille du fichier 0.8696MB