????????????Le PlanCours 1: IntroductionCours 2a: Syntaxe de base et applicationsCours 2b: Caractères et chaînes de caractèresCours 3: Flots de données et fichiersCours 4: Programmation par objetsCours 5-6: Interfaces graphiques d'usagersCours 7: Graphisme en JAVACours 8: n JAVA (deuxième partie)Cours 9: JAVA Native InterfaceCours 10: Multi filagesCours 11: Gestions des erreurs et d’exceptionsExamen1???????????????????????Cours 1Historique et motivationCaractéristiques principales de JAVACritique du C++Comparaison Java versus C++Aspects de performanceÀ la compilationÀ l’exécutionUne Application JAVAUne Applet JAVACaractéristiques principalesTotalement portable : génère des octet de code après la compilation (Bytecode)C’est un langage interprété.Indépendant de l’architecture: JVM (Java Virtual Machine)Totalement orienté objet. Multi filage intégré au langage.Ramasse-miettes automatique pour la gestion de la mémoire (pas besoin de delete pour détruire objets).Librairies complètes(+/-) et normalisées.Facilitées de communication réseau incluses.Gestion propre des exceptions.Vraiment sécuritaire.2??????????Aspects de performanceÀ la compilation:Pas de #include: nombre de ligne à compiler moindre.Langage plus simple que le C/C++: compilation plus simple.Génère du Bytecode: c’est plus simple que de générer des instructions machine.Pas d’étape d’édition des liens. Pas de recherche dans ...
Introduction Syntaxe de base et applications Caractères et chaînes de caractères Flots de données et fichiers Programmation par objets Interfaces graphiques d'usagers Graphisme en JAVA Graphisme en JAVA (deuxième partie) JAVA Native Interface Multi filages Gestions des erreurs et d’exceptions
1
Cours 1
Historique et motivation Caractéristiques principales de JAVA Critique du C++ Comparaison Java versus C++ Aspects de performance À la compilation À l’exécution Une Application JAVA Une Applet JAVA
Caractéristiques principales
Totalement portable : génère des octet de code après la compilation (Bytecode) C’est un langage interprété. Indépendant de l’architecture: JVM (Java Virtual Machine) Totalement orienté objet. Multi filage intégré au langage. Ramasse-miettes automatique pour la gestion de la mémoire (pas besoin de delete pour détruire objets). Librairies complètes(+/-) et normalisées. Facilitées de communication réseau incluses. Gestion propre des exceptions. Vraiment sécuritaire.
2
Aspects de performance
À la compilation: de #include: nombre de ligne à compilerPas moindre. Langage plus simple que le C/C++: compilation plus simple. Génère du Bytecode: c’est plus simple que de générer des instructions machine. Pas d’étape d’édition des liens. Pas de recherche dans les librairies. La compilation est Ultra-Rapide!!
Aspects de performance
À l’exécution Lorsque le bytecode est interprété: jusqu’à 10 fois plus lent qu’une application native. Cependant on a des compilateurs qui produit du code natif; dans cette situation, JAVA utilise les ressources de la machine de façon quasi optimale mais il perd sa portabilité.
3
Cours 2a
Mots Clés Les types prédéfini Chaîne de caractères Opérateurs Tableaux Tableau spéciaux Le classeVector Déclarationdesvariables Passage par Référence Passage par Valeur Affectations
Mots Clés abstract boolean break catch char class do double else final finally float implements import long instanceof native new private protected public static super switch throw throws transient syncronized volatile while
byte continue extends for int null return void true
case default false if interface package short this try
Caractéristiquedeschaînes de caratères Unicode Les classes String StringBuffer StringTokenizer Les constructeurs Les méthodesimportantesdeString Méthodes de StringBuffer Les méthodesdelaclasseStringTokenizer Lesclassesenvelopes
Les classes
String va/li/jaSang/5.0.es1//spad/cosua.av/jj2m/con./:ptth tring.html Toutes les chaînes sont des instances de cette classe. Les strings sont constants(leurs valeurs ne peuvent pas être modifiées. Puisque les strings ne peuvent être changées, ils peuvent être partagées.
6
Les classes
StringBuffer h.mtffregnuBtSirl0.5.cod/2j/m1/es/lvag/anaps/jai/tha.sun.cotp://jav Permet un objet chaîne de taille variable C’est une chaîne de caractères qui peux être modifiée. La classe StringBuffer permet de créer des objets "chaîne“ modifiables Un objet de classe StringBuffer a une capacité qui augmente automatiquement au besoin Si effectivement le contenu de l'objet ne change pas, les méthodes de la classe String sont plus performantes
Les classes
oTgnirtSrezinek 2jesoc/m0.d/1/5.://jhttpsun.ava.i//oajavpa/ico/sStri ngTokenizer.html de décomposer un objet String en sous Permet chaînes selon des délimiteurs spécifies. Découpe une chaîne en jetons est contrôlé pour une table et desLe processus différents drapeaux.
7
Cours 3
Classes de lecture/écrituredanslesfichiers Écriture de fichiers textes Lecturede fichiers textes FichiersBinaires Fichiers enaccès aléatoire La classe File Classe StreamTokenizer Classe FileNameFilter Classe FileFilter Écriture d’un objet
Classes de lecture/écriture dans les fichiers
de données traitées par les fluxDeux grand types Les flux texte (caractère Unicode) Les flux binaires (traite des octets) Deux directions Les flux d’entrées Les flux de sorties Donc quatre grand types de flux: (abstracts) fluxReader : d’entrée texte Writer : flux de sortie texte InputStream : flux d’entrée binaire OutputStream : flux de sortie binaire
8
Fichiers en accès aléatoire
La classe RandomAccessFile travaille des fichiers seulement en ordre quelconque des informations n’est pas dérivée de InputStream ou de OutputStream implémente les interfaces DataInput et DataOutput on peut accéder et modifier le pointeur lecture/écriture uesrurtcstonC On fournit un nom de fichier ou un objet de classe File On fournit un mode: “r ou “rw RandomAccessFile raf =newile(essF.bin“nomw;),rRccAmodna
Écriture dun objet
Jusqu’à maintenant seul des chaînes de caractères où des types de base étaient lus ou écrits via les flux de données. Les flux d’objets permettent de lire et d’écrire des types complexes. tutSermaObjectOutppour l’écriture StupaertmjeObInctpour la lecture Les objets devant être sérialisés (convertis en flux d’octets) doivent implémenter l’interfaceserializable Les variables de la classe ne peuvent pas être sérialisés. d’entre elles, on met le mot cléSi on ne veut pas écrire une transientdevant.
9
Cours 4
Une classe simple; Les packages; Les Constructeurs et Destructeurs; Héritage; ms;ePolymorphi Classes abstraites et Interfaces; Les classes internes; oi;nlcsuCon Lectures.
Les constructeurs
Appel au constructeur lors de l’allocation d’un objet ref =newClassName(arguments); refune référence de type approprié newl’opérateur permettant de créer un nouvel objet ClassNamele nom de classe qui sera crée argumentsles paramètres passés au constructeur. Surcharge de constructeurs (dans une même classe) peuvent avoir lePlusieurs méthodes même nom. Mais doivent recevoir des paramètres différents. Il n'y a pas de destructeurs (delete) comme en C++ le ramasse-miettes automatique s'occupe de tout
10
Destruction et méthode finalize
Le ramasse-miettes (« garbage collector ») Retourne la mémoire au système quand un objet n’est plus accessible (plus de références). Automatique Java dispose d’une construction analogue au destructeur C++, mais celui-ci est exécuté lorsqu’un objet est marqué par le ramasse-miettes. Libère les ressources (mais attention asynchronisme et aucune garantie d’exécution ) Méthodefinalize Définie dansjava.lang.Object Sans paramètres Returnevoid
Introduction au polymorphisme
Polymorpihmse Aide à construire des logiciels extensibles Traiter les objets de façon générique comme des objets de la classe de base. L’ajout de nouvelles classes dérivée est plus facile Édition dynamique de liens des méthodes Implante le polymorphisme Utilise des référence à la classe de base pour référer à des objets des classes dérivées Le machine virtuelle choisie l’implantation « correcte » au moment de l’exécution. Logique duswitch Détermine l’action à prendre grâce au type Plus susceptible de créer des bugs switchcode, il est facile d’oublier d’en modifier unsont éparpillés dans le