Présentation du langage Java

Slides:



Advertisements
Présentations similaires
Premier programme en C :
Advertisements

A RECUPERER EN ENTRANT Le polycopié de Caml Partie 1
Distance inter-locuteur
Formation universitaire à .NET: Introduction à C#
Conception de Site Webs dynamiques Cours 5
Algorithmes et structures de données avancées Partie Conception de Sites Web dynamiques Cours 9 Patrick Reuter.
Le mécanisme des exceptions
A propos de java Sun, fin 1995 C++ nettoyé semi-interprété
SI3 MAM3 Hydro Nathan Cohen Igor Litovsky Christophe Papazian
La classe String Attention ce n’est pas un type de base. Il s'agit d'une classe défini dans l’API Java (Dans le package java.lang) String s="aaa"; // s.
Cours MIAGE « Architectures Orientées Services » Henry Boccon-Gibod 1 Architectures Orientées Services Composants de Service Exemple pratique de développement.
(Classes prédéfinies – API Java)
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
Programmer en JAVA par Tama
LICENCE MIAGE Introduction Programmation Orientée Objet JAVA philippe
Chap. 1 Structures séquentielles : listes linéaires
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
Algorithme et programmation
Principes de programmation (suite)
CPI/BTS 2 Programmation Web Introduction au PHP
44 Contrôle du déroulement du programme. 4-2 Objectifs A la fin de ce cours, vous serez capables de : Utiliser les constructions de prise de décision.
Les méthodes en java Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. Une méthode pour être utilisée.
Analyse lexicale Généralités Expressions rationnelles Automates finis
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
Laboratoire d'Informatique de l’Université de Franche-Comté
Présentation du langage Java
Programmation multimédia 3
Projet poker 1/56. Introduction Présentation de léquipe Cadre du projet Enjeux Choix du sujet 2.
Introduction à la programmation (Java)
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
Langage Oriente Objet Cours 2.
66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser.
Principes de programmation
Programmation concurrente
IFT 6800 Atelier en Technologies d’information
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
Chapitre 9 Les sous-programmes.
COURS DE PROGRAMMATION ORIENTEE OBJET :
COURS DE PROGRAMMATION ORIENTEE OBJET :
Leçon 1 : notion dobjet IUP Génie Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
99 Réutilisation du code grâce à l'héritage. 9-2 Objectifs À la fin de ce cours, vous serez capables de : Définir l'héritage Utiliser l'héritage pour.
Les Opérateurs Ils régissent toutes les opérations ou transformations sur les valeurs des variables. Opérateur d'affectation Opérateurs arithmétiques Opérateurs.
L’essentiel du langage C
Animateur : Med HAIJOUBI
Javascript 1° PARTIE : LES BASES
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
2.1 - Historique Chapitre 2 : Introduction au langage C++
4 Introduction des objets. Les chaînes et tableaux
Programmation en Java Tableaux NGUYEN Thi Minh Tuyen
3 Les instructions. Cours 32 Plan du cours 3 Instruction Bloc Portée L’alternative Affectations =, +=, *=… Comment comparer –Comparer des réels –Comparer.
JavaScript.
SIF-1053 Architecture des ordinateurs
Créer des packages.
Un survol du language C.
 Syntaxe du langage PHP
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Tutorat en bio-informatique
Strings et Tableaux en Java
Les classes et les objets Les données finales class A { … private final int n = 20 ; // la valeur de n est définie dans sa déclaration … } class A { public.
Introduction au langage JAVA
Cours 4 (14 octobre) Héritage. Chapitre III Héritage.
Initiation au JavaScript
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 2 – Java Premiers pas Master 1 SIGLIS1 Java Lecteur - Chapitre 2 - Java Premiers Pas.
22 Concepts de base du langage Java. 2-2 Objectifs A la fin de ce cours, vous serez capables de : Identifier les éléments essentiels de Java Identifier.
pour les programmeurs en C++ Java 2 Part 1 3 Histoire de Java Projet de connexion des machines: 1991 Le nom Java a été introduit dans un café Développé.
Philippe Gandy - 8 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Philippe Gandy - 22 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Java Réalisé par: Mouna POKORA. PLAN: Définition : Historique: Caractéristiques: un langage orienté objet: un langage interprété : un langage portable:
Transcription de la présentation:

Présentation du langage Java Chapitre I ~ A. P. ~

1 - Généralités ~ A. P. ~

Caractéristiques générales Java est un langage de programmation développé par Sun Microsystems à partir des années 95 C’est un langage " à objets " classes objets messages héritage programmation objet uniquement ~ A. P. ~

Caractéristiques générales Java est un langage sécurisé pas de pointeurs mais des références pas de dépassement d'indice de tableau pas de conversion implicite de types tous les objets sont créés dynamiquement nettoyage automatique de la mémoire complexité de l'héritage multiple contournée par la notion d'interface ~ A. P. ~

Caractéristiques générales Java implémente des mécanismes avancés programmation parallèle multithread synchronisation, exclusion mutuelle, communication portabilité le compilateur génère un pseudo code (le byte-code) exécuté par la machine virtuelle propre à chaque environnement distribution du code chargement dynamique code mobile ~ A. P. ~

Caractéristiques générales Java est un langage simple syntaxe familière similaire à celle du C++ le corpus des règles est limité les constructions sont simples les données sont typées suivant des standards (C2, IEEE 754, Unicode) La difficulté de programmation réside essentiellement dans la maîtrise des concepts objets (cf. cours C++) ~ A. P. ~

2 – Développer avec Java ~ A. P. ~

Les types d'application Programme Java p-code obtenu par la compilation d'un source écrit en langage Java exécuté de manière autonome à l'aide de l'interpréteur Java Virtual Machine (JVM). correspond à une application au sens classique Applet p-code invoqué depuis des documents HTML exécuté à l'intérieur du navigateur ou encore grâce à un programme dédié l'appletviewer résidant sur le serveur et téléchargé via le réseau ~ A. P. ~

Les types d'application Mais aussi… Servlet Java = applet côté serveur et sans interface utilisateur Java Beans = composants logiciels écrits en Java et réutilisables JavaScript = langage frère de Java simplifié pour être directement intégré dans une page HTML afin d'effectuer des traitements sur le poste client ~ A. P. ~

Chaîne de développement Écriture à l'aide d'un éditeur du fichier source d'extension .java (exemple NomFic.java) Compilation du source pour compiler javac NomFic.java on obtient le fichier de byte-code NomFic.class Exécution du byte-code pour une application java NomFic.class pour une applet on invoque le code à l'intérieur d'une page HTML grâce aux balises <applet code = "NomFic.class" …</applet> ~ A. P. ~

Chaîne de développement Exemple de fichier source // HelloWorld.java public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } } ~ A. P. ~

Chaîne de développement Remarques : tout fichier source .java doit avoir une classe déclarée public portant le même nom que le fichier sans l'extension (ici class HelloWorld ) pas de fonctions ou de variables globales : même le point d'entrée du programme main appartient à une classe l'usage veut qu'un fichier source ne contienne qu'une seule classe ~ A. P. ~

Chaîne de développement Compilation et exécution avec le JDK $javac HelloWorld.java $java HelloWorld Hello World! $ ~ A. P. ~

Chaîne de développement Exemple : HelloWorld.java javac HelloWorld.java HelloWorld.class Fichier source Programme compilé (p-code) Compilation Moteur d’interprétation p-code Registres / piles virtuels Machine virtuelle Java Système d'Exploitation Unix, Windows, Mac, etc. java HelloWorld Source P.Emy CERTA ~ A. P. ~

Les outils Le minimum requis Pour les applets il faut en plus un éditeur de texte (exemple TextPad) javac le compilateur java l'interpréteur de byte-code Pour les applets il faut en plus soit le visualiseur appletviewer soit une connexion réseau la pile protocolaire TCP/IP un navigateur avec un interpréteur Java ~ A. P. ~

Les outils le JRE (Java Runtime Environment) représente la machine virtuelle Java nécessaire pour exécuter une application Java (dépend de la machine et du système d'exploitation) le SDK (Standard Development Kit) anciennement appelé JDK, comprend l'ensemble des outils pour développemer une application Java une JRE, le compilateur et les bibliothèques divers outils comme javadoc ou jar ~ A. P. ~

Les outils L'utilitaire jar (Java Archive) permet d'archiver des classes Java mais aussi des fichiers image ou audio de distribuer ou d'installer une application Pour créer un fichier jar jar –options [path][…] options identiques à celles de l'utilitaire tar d'Unix Pour récupérer le contenu d'un fichier jar par la ligne de commande jar –t [path][…] dans une applet par <APPLET CODE="….class" ARCHIVE="….jar" …> ~ A. P. ~

Les outils Ces outils de base sont téléchargeables à partir du site de Sun microsystems http://java.sun.com Il existe aussi de nombreux IDE Jbuilder de Borland Jdeveloper d'Oracle Visual Café de Symantec Websphere d'IBM les "open source" NetBeans et Eclipse ~ A. P. ~

Quelques références Bibliographie Quelques liens HORSTMANN CORNELL, Au cœur de JAVA, Volume 1 et volume 2, CAMPUSPRESS [1999] DELANNOY, Programmer en JAVA, EYROLLES [2000] LEMAY CADENHEAD, JAVA 2, CAMPUSPRESS [2002] HORTON, Maîtrisez Java 2, CAMPUSPRESS [2001] Quelques liens http://www.javasoft.com http://tek-tools.com http://www.gamelan.com http://cuiwww.unige.ch/java/doc/tutorial/java/index.html http://www.ensta.fr/java/java_liens.html ~ A. P. ~

3 - Éléments du langage ~ A. P. ~

Mots réservés en Java ~ A. P. ~

Les identificateurs Identificateur = nom des différents éléments du programme variable ex: totalGeneral constante ex: TAILLE méthode ex: int getX() classe ex: class MaClasse package ex: java.util.Vector Formé à partir de lettres, de chiffres et des caractères _ et $ (à éviter comme premier caractère) ~ A. P. ~

Les symboles Caractères ou groupe de caractères pour représenter des opérateurs pour représenter des caractères spéciaux & ~ { } ( ) [ ] | \ / * - + % , ; . < > = ! ^ ? : Exemples: == opérateur d'égalité >>> opérateur de décalage binaire à droite non signé ~ A. P. ~

Les commentaires 3 styles de commentaires plusieurs lignes /* ceci est un commentaire qui se termine ici */ sur une ligne // commentaire sur une ligne destiné au générateur automatique de documentation JavaDoc /** commentaire destiné à l'outil de documentation automatique */ ~ A. P. ~

Les commentaires JavaDoc Ils permettent de documenter la classe en même temps que le codage Le programme javadoc génère des fichiers HTML de documentation à partir des fichiers Java On peut inclure du code HTML dans les commentaires Javadoc ~ A. P. ~

Les commentaires JavaDoc Permet de décrire si nécessaire pour une classe ses spécifications sa version son auteur Dans la classe on peut également préciser le rôle de chaque attribut décrire les méthodes (paramètres, valeur retournée, exceptions pouvant être éventuellement générer) meilleure lisibilité du programme ~ A. P. ~

Les types en Java Les types en Java se classent en 2 catégories les types primitifs ou types de base les caractères les entiers les réels les booléens les types références les tableaux tous les objets manipulés Important pour le passage de paramètres aux méthodes qui se fait par valeur ~ A. P. ~

Les types primitifs Entier: Réel: type codé en C2 byte 1 Ø, short 2 Ø, int 4 Ø, long 8 Ø Réel: type codé en IEEE 754 float 4 Ø, double 8 Ø Caractère : type char codé en Unicode sur 2 Ø Booléens: type boolean codé sur 1 bit ~ A. P. ~

Les types primitifs ~ A. P. ~

Les types primitifs Codage des caractères ASCII sur 128 premiers caractères les 128 autres = caractères des divers langages les suivants = divers symboles  Les caractères sont écrits entre ’ainsi la séquence ’\uNNNN’ désigne le caractère dont la valeur Unicode est NNNN ’\u0020’signifie blanc ( identique à ' ') ’\u0041’signifie A ( identique à 'A') ’\’’ signifie ’ ’\\’ signifie \ ~ A. P. ~

Les variables Déclaration identique au C++ Une variable représente Type variable; Type variable = valeur; Une variable représente soit l'attribut d'une classe soit une variable de classe soit une variable locale à une méthode de classe Caractéristiques conversion toujours explicite et identique au C var1 = (type_force) var2; portée limitée au bloc { } de déclaration ~ A. P. ~

Les variables Exemples : boolean encore = true; // initialisation à vrai int x = 10; // decimal int x = 0x0A; // hexadécimal int x = 10L; // entier long float y = 6.55957F; // réel simple précision x = (int) y; // transtypage d'un réel vers un int float z = -2.45E-3F; // réel avec exposant double pi = 3.14159D; // réel double précision char rep = 'n'; char rep = '\u006e'; // code ASCII de 'n' ~ A. P. ~

Les constantes Une constante est définie à l'aide de final et est toujours initialisée final type MACONSTANTE = valeur; Exemples: final float CM_PAR_POUCE = 2.54F; final double E = 2.71828182845905D; Une constante de classe est définie à l'aide de static final Exemple: static final float PI = 3.14159F; ~ A. P. ~

Les constantes Caractères spéciaux: '\b' caractère backspace (retour arrière) '\f' caractère saut de page (formfeed) '\n' caractère saut de ligne (new line) '\r' caractère retour chariot '\t' caractère de tabulation '\\' caractère \ '\'' caractère ' ~ A. P. ~

Les opérateurs Opérateur d'affectation = Opérateurs arithmétiques + - * / % ++ -- += -= *= /= %= Opérateurs relationnels > >= == != < <= Opérateurs logiques && || ! Opérateurs binaires & | ^ ~ >> << >>> ~ A. P. ~

Les opérateurs L'opérateur logique ? composé de trois expressions expression1 ? expression2 : expression3 si expression1 vraie alors expression2 sinon expression3 valabs = (x >= 0) ? x : -x; Opérateur d'allocation mémoire new ~ A. P. ~

Priorité des opérateurs ~ A. P. ~

4 – Les structures de contrôle ~ A. P. ~

Les structures de contrôle L'alternative if (<expression_logique>) <bloc1> else <bloc2> un bloc commence par { et finit par } Alternatives imbriquées if (<expr1>) <bloc1> else if (<expr2>) <bloc2> else if (expr3>) <bloc3> else <bloc4> ~ A. P. ~

Les structures de contrôle Le choix multiple switch (<expression_entière>) { case valeur_1: ......; break; case valeur_2: ......; ......; case valeur-n: ......; ......; break; default: ......; ......; } ~ A. P. ~

Les structures de contrôle Le choix multiple (suite) branchement lorsque l'expression entière est égale à une des valeurs des case branchement à default si aucune valeur trouvée passe en séquence jusqu'au premier break ou fin du switch ~ A. P. ~

Les structures de contrôle L'itération bornée traduction du pour for(<expr1>;<expr2>;<expr3>) <bloc> expr1 effectuée 1 fois pour toutes expr2 condition de maintien expr3 effectuée à la fin de chaque boucle nombre de passages 0 à n ~ A. P. ~

Les structures de contrôle La répétitive tant que while(<expression >) <bloc> expression condition de maintien nombre de passages 0 à n La répétitive répéter tant que do <bloc> while (<expression>) ; nombre de passages 1 à n ~ A. P. ~

Les structures de contrôle L'instruction break permet de sortir d'un switch d'un for d'un while d'un do for(;;) { if (EVENEMENT) break; /* si EVENEMENT devient VRAI on sort */ } ~ A. P. ~

Les structures de contrôle L'instruction continue force le branchement en fin de boucle d'une répétitive la condition de passage est retestée évite l'écriture d'un sinon while (i<10) { .......; .......; if (n<0) continue; .......; /* traitement si n >= 0 */ } ~ A. P. ~

5 – Compléments ~ A. P. ~

Les packages Un package regroupe des classes et des interfaces qui portent sur un même domaine Pour utiliser une classe d'un package soit il faut la préfixer avec le nom du package soit on utilise la directive import import java.util.* importe toutes les classes du package import java.util.vector importe la classe vector du package java.util Exemple de packages inclus dans le SDK java.lang java.io java.util java.net ~ A. P. ~

Les packages Pour créer son propre package il faut ajouter package <nom_package> dans chaque fichier source .java devant composer le package il faut s'assurer qu'il n'existe pas de classes homonymes Lorsqu'on ne spécifie pas de package dans un fichier source, les classes créées appartiennent au package par défaut ~ A. P. ~

Les exceptions Permet le traitement uniforme et structuré des anomalies survenant lors de l'exécution d'un programme Mécanisme identique à celui du C++ Mais en Java, toutes les exceptions sont des objets de la classe Exception ~ A. P. ~

Les exceptions Principe si on appelle une méthode susceptible de lancer une exception, on se porte candidat par le bloc try si une erreur survient dans la méthode appelée, cette dernière lance une exception par throw l'appelant intercepte l'exception grâce au bloc gestionnaire d'exception catch il y a un gestionnaire par type d'exception le bloc finally est exécuté dans tout les cas et en dernier s'il existe ~ A. P. ~

Les exceptions Schéma général de traitement des exceptions try { // bloc de code pouvant générer l'exception } catch(TypeException1 e) { // traitement approprié pour ce type d'exception } catch(TypeException2 e) { // traitement approprié pour ce type d'exception } finally { // bloc facultatif mais toujours exécuté si présent } ~ A. P. ~

Interception d'une exception Void Methode() throws T { ... if (probleme) throw new T(); } type T de l'exception try { Methode(); catch (T param) { ~ A. P. ~

Les exceptions Méthode susceptible de générer des exceptions propagées vers l'appelant on déclare dans son en-tête les exceptions qu'elle peut lancer par throws TypeExc1, TypeExc2 ,.. mais les exceptions héritant de Error ou de RuntimeException ne se déclarent pas l'exception est lancée par throw <exception> soit il s'agit d'une instance de la hiérarchie Exception soit il s'agit d'une instance d'une classe personnelle d'exception qui doit héritée de Exception ~ A. P. ~

Les exceptions Capture des exceptions par l'appelant se fait par le gestionnaire catch pour le type voulu si on souhaite que le gestionnaire traite tout type d'exception, on indique Exception comme type catch (Exception e) si une exception n'est pas traitée à un niveau (gestionnaire absent ou de type inadapté), sa gestion est déléguée au niveau supérieur si l'exception sort de la méthode main sans être gérée, elle est alors traitée par la machine Java ~ A. P. ~

Les chaînes de caractères En Java il n'y a pas de type chaîne prédéfini On utilise pour cela la classe String fournie d'origine avec le langage Il existe aussi une classe StringBuffer de chaînes modifiables Ces classes font partie du package java.lang reconnu de façon implicite ~ A. P. ~

Les chaînes de caractères Les opérations courantes de la classe String: concaténation + et += longueur length égalité equals et equalsIgnoreCase et non == qui porte sur références, de même pour la comparaison qui se fait par compareTo extraction substring transformation en un tableau de char toCharArray changer la casse toUpperCase et toLowerCase suppression des espaces de début et fin trim etc., etc.  voir l'aide pour les autres méthodes ~ A. P. ~

Les chaînes de caractères Exemples String ch1 = "essai d'une chaine"; String ch2 = new String ("Bonjour"); // on récupère les 3 premiers car de ch2 String ch3 = ch2.substring(0,3); int n = ch3.length(); // longueur de ch1 ch2 = ch2 + " tout le monde"; if (ch3.equals("Bon") == true) … … … if (ch3.compareTo(ch1) >= 0) ~ A. P. ~

Les tableaux Sont des objets créés dynamiquement Déclaration type nomTableau[]; ou type[] nomTableau; Puis allocation mémoire nomTableau = new type[tailleTableau]; Déclaration et allocation mémoire type nomTableau[] = new type[tailleTableau]; Déclaration et initialisation type nomTableau[] = {val1, val2, val3,...valn}; ~ A. P. ~

Les tableaux Comme en C l'indice du premier élément est 0 Le champ length d'un tableau donne la dimension du tableau Par sécurité, Java déclenche les exceptions ArrayIndexOutOfBoundsException si le rang d'un élément est invalide NegativeArraySizeException si la taille est négative à la création du tableau ArrayStoreException si on tente de stocker un élément de type incompatible ~ A. P. ~

Les tableaux Exemples // déclaration String tabJour[] = {"Lundi","Mardi","Mercredi"}; short [ ][ ]mat = {{5, 2, 33,-8}, {1, 2, 3, -7}}; int [ ] tabVide = {}; int tabEntiers[] = new int[5]; // parcours for(i=0;i<tabEntiers.length;i++) tabEntiers[i]=i+1; for(lig=0;lig<2;lig++) for (col=0;col<4;col++) ... ~ A. P. ~

Les tableaux Un tableau est en fait une référence, donc: il faut penser à l'allocation mémoire sauf s'il est initialisé à la déclaration il peut être modifié s'il est passé en argument à une méthode une méthode de classe peut retourner un tableau l'affectation entre tableaux de même type porte sur les références (la copie physique se fait par la méthode arraycopy de la classe System) Ne pas oublier: en Java il y a une gestion automatique de la mémoire ~ A. P. ~

Sortie écran en mode texte La classe System comprend 3 canaux d'E/S écran out clavier in erreurs err Pour l'affichage à l'écran on utilise 2 méthodes System.out.print et System.out.println qui fait un saut de ligne après l'affichage qui prennent en argument une chaîne de caractères toute variable  son type peut être concaténée avec l'opérateur + pour former la chaîne d'affichage ~ A. P. ~

Sortie écran en mode texte Exemple: public class TestAffichage { public static void main(String[] argv) { // variables locales int x = 3; char c='o'; float z = -2.45E-3F; String ch = "essai"; // affichage System.out.println(" x = : " +x +" et z = : " +z); System.out.println("\n c = : " +c +" et ch = : " + ch ); } } ~ A. P. ~

Entrée clavier en mode texte La saisie en mode texte est compliquée inclusion du package java.io.* utilisation de la classe BufferedReader pour la lecture du flux d'entrée déclaration d’un buffer d’entrée saisie d’une chaîne par la méthode readLine() conversion de la chaîne saisie en entier, en byte, en entier ou en réel mise en oeuvre d'une gestion des exceptions ~ A. P. ~

Entrée clavier en mode texte Exemples de saisie import java.io.*; class TestSaisie { public static void main(String args[]) throws IOException, NumberFormatException { InputStreamReader isr = new InputStreamReader(System.in); BufferedReader rep = new BufferedReader(isr); System.out.print("Entrez une chaine : "); String saisie = rep.readLine(); System.out.println("Voici la chaine saisie : "+ saisie); System.out.print("Entrez un entier : "); int i = Integer.parseInt(rep.readLine()); System.out.println("l'entier i = "+ i); ~ A. P. ~

Entrée clavier en mode texte Exemples de saisie (suite) System.out.print("Entrez un reel : "); float f = Float.parseFloat(rep.readLine()); System.out.println("le reel f = "+ f); // cas d'un caractère System.out.print("Entrez un caractere : "); String valeur = rep.readLine() ; char c = valeur.charAt(0); System.out.println("le caractere vaut = "+ c); } // public static void main } // class TestSaisie ~ A. P. ~

Entrée clavier en mode texte Exemple avec gestion des exceptions import java.io.*; public class TestSaisieExcep { public static void main(String args[]) { // saisie d'un réel avec gestion des exceptions int x = 0; // entier à saisir System.out.print("Entrez un entier : "); try { InputStreamReader isr = new InputStreamReader(System.in); BufferedReader rep = new BufferedReader(isr); x = Integer.parseInt(rep.readLine()); } ~ A. P. ~

Entrée clavier en mode texte Exemple avec gestion des exceptions (suite) // exception éventuellement générée par readLine catch (IOException e) { System.out.println("ERREUR DE SAISIE \n\n"); } // exception éventuellement générée par parseInt catch (NumberFormatException e) { System.out.println("ERREUR DE TYPE \n\n"); } System.out.println("l'entier vaut : "+ x); } // public static void main } // class TestSaisie ~ A. P. ~

Application Définition d'un tableau de taille dynamique avec remplissage aléatoire import java.io.*; import java.util.*; public class TestTableau { public static void main(String[] argv)throws IOException { // saisie de la dimension du tableau InputStreamReader isr = new InputStreamReader(System.in); BufferedReader rep = new BufferedReader(isr); System.out.print("Entrez un entier : "); int taille = Integer.parseInt(rep.readLine()); ~ A. P. ~

Application Définition d'un tableau de taille dynamique avec remplissage aléatoire // dimensionnement dynamique du tableau d'entiers int tabEntiers [] = new int[taille]; // remplissage aléatoire d'entiers compris entre 0 et 50 Random r = new Random(); for(int i=0;i<tabEntiers.length;i++) tabEntiers[i]=Math.abs(r.nextInt()%51); // affichage du tableau for(int i=0;i<tabEntiers.length;i++) System.out.println("\n "+tabEntiers[i]); } // fin de main } // fin de TestTableau ~ A. P. ~