Programmation avec le langage Java
106 pages
Français

Programmation avec le langage Java

-

Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
106 pages
Français
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Description

Plan
• Introduction
• Syntaxe de base p.17
– Variables, types, portée p.19
– Opérateurs p.49
– Instructions de contrôle p.65
– Fonctions p.81
– Entrées-sorties standards p.97Programmation
– Programme, compilation, exécution p.105
• Classes p.113avec le langage
• Paquetages, import, javadoc… p.137Java
• Héritage p.153
• Interfaces p.177
• Exceptions p.193
Norbert KAJLER, Fabien MOUTARDE
• Programmation générique (“generics”) p.209
CCSI • Threads p.225
• Paquetages standards p.241Mines ParisTech
– java.lang p.243
e-mails : Norbert.Kajler@mines-paristech.fr ;
– Entrée-sorties : paquetage java.io p.273Fabien.Moutarde@mines-paristech.fr
– Collections, (+ dates, …) : java.util p.289
– Graphisme : java.awt, javax.swing p.321
– Programmation réseau : java.net p.385
– Programmation distribuée : java.rmi p.393
– Accès bases de données : java.sql p.401
– Les JavaBeans p.409
Cours langage Java — N. Kajler, F. Moutarde — CCSI dernières modifications : 09/09/2010 2
Les langages de programmation
• Niveaux et catégories de langages :
– langage binaire
– assembleur : instructions de base du
processeur (transferts entre registres,
addition, …)
INTRODUCTION
– langages impératifs
Basic, Fortran, Pascal, C, ...
– langages fonctionnels
Lisp, Caml, ...
– langages orientés-objet
SmallTalk, C++, Java,...
Avertissement :
Ceci n'est PAS un polycopié, mais une
simple copie de transparents, prévue pour
faciliter le suivi des cours et la prise de
notes manuscrites ...

Sujets

Informations

Publié par
Nombre de lectures 242
Langue Français

Extrait

Plan • Introduction • Syntaxe de base p.17 – Variables, types, portée p.19 – Opérateurs p.49 – Instructions de contrôle p.65 – Fonctions p.81 – Entrées-sorties standards p.97Programmation – Programme, compilation, exécution p.105 • Classes p.113avec le langage • Paquetages, import, javadoc… p.137Java • Héritage p.153 • Interfaces p.177 • Exceptions p.193 Norbert KAJLER, Fabien MOUTARDE • Programmation générique (“generics”) p.209 CCSI • Threads p.225 • Paquetages standards p.241Mines ParisTech – java.lang p.243 e-mails : Norbert.Kajler@mines-paristech.fr ; – Entrée-sorties : paquetage java.io p.273Fabien.Moutarde@mines-paristech.fr – Collections, (+ dates, …) : java.util p.289 – Graphisme : java.awt, javax.swing p.321 – Programmation réseau : java.net p.385 – Programmation distribuée : java.rmi p.393 – Accès bases de données : java.sql p.401 – Les JavaBeans p.409 Cours langage Java — N. Kajler, F. Moutarde — CCSI dernières modifications : 09/09/2010 2 Les langages de programmation • Niveaux et catégories de langages : – langage binaire – assembleur : instructions de base du processeur (transferts entre registres, addition, …) INTRODUCTION – langages impératifs Basic, Fortran, Pascal, C, ... – langages fonctionnels Lisp, Caml, ... – langages orientés-objet SmallTalk, C++, Java,... Avertissement : Ceci n'est PAS un polycopié, mais une simple copie de transparents, prévue pour faciliter le suivi des cours et la prise de notes manuscrites complémentaires. Cours langage Java — N. Kajler, F. Moutarde — CCSI dernières modifications : 09/09/2010 3 Cours langage Java — N. Kajler, F. Moutarde — CCSI dernières modifications : 09/09/2010 4 Historique de Java Historique de Java (2) • Initialement, projet de la société Sun pour • 1996 : Java 1.0 l'électronique grand public (1991) • 1997 : Java 1.1 • Transformé en langage pour le Web, sous – Modification du modèle des événements pour le nom de "Java", grâce à sa portabilité AWT, JDBC, RMI, ... (1994/95) • 1998 : Java 1.2 (renommé Java2 version 1.2 ou J2SE 1.2)• Lancement officiel en mai 1995 – Collections, Swing, Java2D, …• Après l'engouement pour les applets, Java est reconnu progressivement comme un • 2000 : version 1.3 (ou « Kestrel » ou J2SE 1.3) langage à part entière • 2002 : v.1.4 (ou « Merlin » ou J2SE 1.3) • Langage de programmation sans doute le – XML parser, Image API, … plus utilisé aujourd’hui : • 2004 : v.1.5 (ou « Tiger » ou J2SE 5.0 !!) – des millions de développeurs Java – généricité (proche des templates de C++), types énumérés, autoboxing/unboxing des types – nombreux outils de développement primitifs dans les collections, web services, ... – 6 milliards d’objets avec une « machine • 2006 : v.1.6 (ou « Mustang » ou Java SE 6)virtuelle Java », dont 85% des – améliorations des performances (Swing téléphones portables et 91% des notamment), interactions avec scripts (PHP, ordinateurs (chiffres 2008) Python, Ruby, JavaScript), Java DB… • fin’2010 : v.1.7 (ou « Dolphin » ou Java SE 7) Cours langage Java — N. Kajler, F. Moutarde — CCSI dernières modifications : 09/09/2010 5 Cours langage Java — N. Kajler, F. Moutarde — CCSI dernières modifications : 09/09/2010 6 Intérêt de Java Caractéristiques de Java • logiciels portables • Un langage orienté-objet : • programmes fiables – portable (rigueur du langage => peu de bogues) – compilé puis interprété • développement rapide (bytecode+JVM) • pages Web intéractives (via les "applets") – robuste (typage fort, pas de pointeurs, garbage collector)• logiciels (ou briques logicielles) téléchargeables, éventuellement – modulaire (packages) automatiquement – intégrant le multi-threading• gestion de la sécurité (par défaut, accès restreint aux ressources locales pour les applets) • une énorme librairie de classes standards Cours langage Java — N. Kajler, F. Moutarde — CCSI dernières modifications : 09/09/2010 7 Cours langage Java — N. Kajler, F. Moutarde — CCSI dernières modifications : 09/09/2010 8 Java et les autres langages JRE, Java SE, JDK, Eclipse, … • Java est très proche de C++ • Plusieurs implantations disponibles du langage Java, dont celles d’origine SUN (créateurs du • syntaxe de base identique à C et C++ langage) • Pour exécuter du code Java : le « JRE » (Java • simplifications de Java (par rapp. à C++) : Runtime Environment) de SUN suffit (gratuit et – pas de manipulation de pointeurs sous forme largement disponible) d’adresse mémoire, gestion mémoire • Pour créer/compiler du code java : le « Java SE »automatique (garbage collector) (Standard Edition) dénommée aussi « JDK » – pas de surcharge des opérateurs (Java Development Kit) de SUN (gratuit) – pas d'héritage multiple contient : – pas de préprocesseur – compilateur (javac) – interpréteur / machine virtuelle (java) • principaux ajouts (par rapport à C++) : – toute la librairie de classes standards – tableaux avec test de dépassement de bornes – divers outils : génération doc (javadoc), – chaînes de caractères sous forme de classe visualisation d'applet (appletviewer), debugger (jdb), ...– notion d'interface – classe racine 'Object’, introspection • Nombreux outils de développement dont la – structuration en paquetages plateforme « Eclipse » (gratuite) – multi-threading incorporé • Les sources de Java sont disponibles gratuitement – vaste bibliothèque de classes (code de toutes les classes prédéfinies) Cours langage Java — N. Kajler, F. Moutarde — CCSI dernières modifications : 09/09/2010 9 Cours langage Java — N. Kajler, F. Moutarde — CCSI dernières modifications : 09/09/2010 10 Cours langage Java — N. Kajler, F. Moutarde — CCSI dernières modifications : 09/09/2010 11 Cours langage Java — N. Kajler, F. Moutarde — CCSI dernières modifications : 09/09/2010 12 Cours langage Java — N. Kajler, F. Moutarde — CCSI dernières modifications : 09/09/2010 13 Cours langage Java — N. Kajler, F. Moutarde — CCSI dernières modifications : 09/09/2010 14 Cours langage Java — N. Kajler, F. Moutarde — CCSI dernières modifications : 09/09/2010 15 Cours langage Java — N. Kajler, F. Moutarde — CCSI dernières modifications : 09/09/2010 16 Premier exemple • Quelques lignes d’instruction en Java : déclarationsint i, somme; somme = 0; affectation for (i=1; i<=9; i++) boucle somme = somme+i; • Un programme en Java : structure essentielle :SYNTAXE DE BASE class Prog { classe public static void main(String [] args){ int i, somme; Programme principal somme = 0; for (i=1; i<=9; i++) somme += i; System.out.println(somme); } } Cours langage Java — N. Kajler, F. Moutarde — CCSI dernières modifications : 09/09/2010 17 Cours langage Java — N. Kajler, F. Moutarde — CCSI dernières modifications : 09/09/2010 18 Variables et types • notion de variable : nom (identificateur) + type + zone mémoire VARIABLES, TYPES, PORTEE, COMMENTAIRES, … • en Java, deux grandes catégories de types : – types "primitifs" (entiers, flottants, …) – références à des types "composites" : • Tableaux • Enumérations • Objets • Interfaces Cours langage Java — N. Kajler, F. Moutarde — CCSI dernières modifications : 09/09/2010 19 Cours langage Java — N. Kajler, F. Moutarde — CCSI dernières modifications : 09/09/2010 20 fi p Booléens : booleanTypes "primitifs" • boolean • 2 valeurs : true ou false • véritable type • char (16-bit, Unicode) • type retourné par les opérateurs de • byte : entier (signé) 8-bit comparaison • short : entier (signé) 16-bit • type attendu dans tous les tests • int : entier (signé) 32-bit • ne peut PAS être converti en entier • long : entier (signé) 64-bit • float : flottant (IEEE 754) 32-bit • double : flottant (IEEE 754) 64-bit Cours langage Java — N. Kajler, F. Moutarde — CCSI dernières modifications : 09/09/2010 21 Cours langage Java — N. Kajler, F. Moutarde — CCSI dernières modifications : 09/09/2010 22 Entiers Caractères : char • 16-bit => 65536 valeurs : presque tous les • littéraux de type entier : caractères de toutes les écritures !– en base dix : 139 • ne sont affichables que si le système possède – en octal : 0213 les polices de caractères adéquates ! – en hexadécimal : 0x8b • littéraux entre simples quotes : 'a' 'Z' • caractères spéciaux : • L ou l pour spéficier un long : 139L '\n' '\t' '\b' '\\' ... • valeurs min/max : • possibilité d’utiliser la valeur Unicode : –byte = [-128; +127] par exemple '\u03c0' pour –short = [-32768 ; +32767] • test du type : Character.isLetter(c), –int = [-2.147.483.648 ; Character.isDigit(c), … (oùc est une +2.147.483.647] variable de type char) 18 18–long = [-9,223... 10 ; +9,223... 10 ] • convertible automatiquement en int ou • conversion automatique seulement vers long (et manuellement en byte ou les types entiers plus grands short) (int long, etc...) et vers les types • inversement, (char)val est le caractère flottants dont le code Unicode est l'entier val Cours langage Java — N. Kajler, F. Moutarde — CCSI dernières modifications : 09/09/2010 23 Cours langage Java — N. Kajler, F. Moutarde — CCSI dernières modifications : 09/09/2010 24 fi » Flottants Constantes • notation "ingénieur" : 2.45e-25 • variable dont la valeur ne peut plus être changée une fois fixée• littéraux de type double par défaut : float x = 2.5; //Erreur • se déclare avec le mot-cléfinal : double y = 2.5; //OK final double PI = 3.14159; • f ou F pour spécifier un float : ce qui interdit d’écrire ensuite… float x = 2.5f; PI = 3.14; //ERREUR… • valeurs min/max de valeur absolue (hors 0) : – float =[1.40239846e-45;3.40282347e+38] • possibilité de calculer la valeur de la – double = [4.9406...e-324 ; 1.7976...e+308] constante plus tard à l'exécution, et • conversion automatique : ailleurs qu'au niveau de la déclaration : seulement float double • la conversion "manuelle" en entier tronque final int MAX_VAL; la partie décimale : //OK : constante "blanche" float x=-2.8f; //... int i = (int)x; // => i==-2 MAX_VAL = lireValeur(); • valeurs spéciales : Infinity, -Infinity, NaN Cours langage Java — N. Kajler, F. Moutarde — CCSI der
  • Univers Univers
  • Ebooks Ebooks
  • Livres audio Livres audio
  • Presse Presse
  • Podcasts Podcasts
  • BD BD
  • Documents Documents