Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parSibylle Francois Modifié depuis plus de 9 années
1
J100 (JSB) Java : Syntaxe de Base juin 2007 ~ Brigitte Groléas ~
2
Les variables système CLASSPATH=c:\Rep_JDK\lib\classes.zip;.
Indique le chemin des bibliothèques de classes, aussi bien pour la compilation que l ’exécution. Le path PATH=$PATH:$Rep_JDK\bin Indique la situation de java et javac La documentation de sun en api java.sun.com/j2se/1.5.0/docs/api/index.html JAVA_HOME doit indiquer la racine de Java juin 2007 ~ Brigitte Groléas ~
3
Historique En 1990 James Gosling : langage « Oak »
pour faciliter l’implémentation de logiciels pour l’électronique grand publique 1994 : explosion du Web sur l’Internet 1995 : Gosling présente la version Bêta de HotJava 1996 : Sun rend publique la première version Bêta du JDK (Java Development Kit) 1997 : Sun sort la version 1.1 du JDK qui reprend l’intégralité des API du JDK 1.0 2005 : java 1.5 dernière version juin 2007 ~ Brigitte Groléas ~
4
Présentation du langage Java
Simple et orienté objet Robuste, fiable et sûr Efficace et riche Interprété, indépendant de l’architecture et rapide Portable Multitâche (multithread) Réparti Dynamique et distribué juin 2007 ~ Brigitte Groléas ~
5
Structure d’une application Java
public class Essai { public static void main( String argv[] ) { System.out.print( "coucou\n" ); } Fichier source une seule classe publique nom du fichier = nom de la classe publique .java javac Essai.java Le code est exécuté sur la machine virtuelle java (JVM pour Java Virtual Machine). java Essai juin 2007 ~ Brigitte Groléas ~
6
Programmation modulaire : les packages
Le package « java.lang » est automatiquement importé dans tous les sources Java. Répertoire : toto/titi/tata Nom du package : toto.titi.tata import toto.titi.tata.essai; import toto.titi.tata.*; java.applet Classes pour implémenter les applets. java.awt Classes pour les graphiques (GUI) . java.awt.image Classes pour le traitement des Images java.awt.peer Interfaces avec les environnements natifs java.io Classes pour les entrées/sorties java.lang Classes de base du langage. java.net Classespour la communication réseaux. java.util Classes d’utilitaires. juin 2007 ~ Brigitte Groléas ~
7
Les variables Peuvent être de 2 natures : primitive
référence à un objet ou à un tableau Toute variable locale doit être initialisée explicitement avant de pouvoir utiliser sa valeur Ce n'est pas le cas des variables d'instance juin 2007 ~ Brigitte Groléas ~
8
Les packages L'instruction package indique à quel package appartient la classe du fichier. C'est la première instruction du fichier Par défaut une classe appartient au paquetage anonyme L'instruction import permet de référencer des classes sans les préfixer du nom de leur package. juin 2007 ~ Brigitte Groléas ~
9
Types gérés par valeur : types primitifs
type valeur par défaut char caractère unicode \u0000 boolean valeur booléenne false byte entier signé 8 bits 0 short entier signé 16 bits 0 int entier signé 32 bits 0 long entier signé 64 bits 0 float flottant 32 bits 0.0 f double flottant 64 bits 0.0 juin 2007 ~ Brigitte Groléas ~
10
Des classes associées Des classes sont Boolean, Character, Integer, Long, Float et Double. Elles permettent de définir des constantes et des méthodes utiles. short et byte ne sont que des types de stockage Pour créer des objets à partir de type primitifs Integer.parserInt("123"); MIN_VALUE Integer i = new Integer(1); int j = i.intValue(); juin 2007 ~ Brigitte Groléas ~
11
Types gérés par références : Les objets
Instanciation et destruction des objets ClassName x; //Crée la référence x = new ClassName(); //Crée l’objet et le référence par x 2 variables différentes peuvent désigner le même objet ClassName x = new ClassName(); ClassName y = x; //x et y désignent tous deux le même objet ! ref obj Tas juin 2007 ~ Brigitte Groléas ~
12
ClassName x = new ClassName(); ClassName y = x.clone();
Copier un objet : la méthode « clone() » si elle est implémentée par la classe en question (Classes implémentant l’interface « Cloneable » ). ClassName x = new ClassName(); ClassName y = x.clone(); Tester l’égalité entre 2 objets : une méthode spécialement conçue pour comparer les objets. En java, un certain nombre de classes redéfinissent la méthode « equal() » de la classe « Object ». juin 2007 ~ Brigitte Groléas ~
13
Les Tableaux Les références int tab1[]; ou int [] tab1;
ClassName tab2[]; ou ClassName [] tab; Instanciation de tableaux tab1= new int[100]; tab2= new ClassName[10]; int tab[] = { 1, 2, 3, 4, 5}; String dico[]= { "hiboux", "choux", "genoux" }; La création d’un tableau ne crée pas les objets contenus dans le tableau Un tableau est considéré comme un objet. Il est manipulé via une référence juin 2007 ~ Brigitte Groléas ~
14
À vous … (sur le papier) Réservez une référence velo sur un tableau d’entiers Sur la référence velo, intanciez un tableau de 10 entiers Réserver un entier i, initialisé à 0 Tant que i est plus petit que 10 Mettre 12 dans la ième case de velo Augmenter i de 1 Fin de la boucle juin 2007 ~ Brigitte Groléas ~
15
while( i < velo.length ) { velo[i] = 12; i = i +1; }
int[] velo; velo = new int[10]; int i = 0; while( i < velo.length ) { velo[i] = 12; i = i +1; } juin 2007 ~ Brigitte Groléas ~
16
for(int i = 0; i < velo.length; i = i +1) { velo[i] = 12; }
int[] velo; velo = new int[10]; for(int i = 0; i < velo.length; i = i +1) { velo[i] = 12; } juin 2007 ~ Brigitte Groléas ~
17
Tableaux multidimensionnels
int tab[][][] = new int[5][4][3]; int tab[][] = new int[3][]; 3 références sur des int[] tab[0] = new int[2]; 1er s/s tableau : 2 cases tab[1] = new int[3]; 2eme s/s tableau : 3 cases tab[2] = new int[4]; 3eme s/s tableau : 4 cases Il n’est pas obligatoire de stipuler le nombre d’éléments contenus pour chaque dimension (seule la première est obligatoire) int tab[][] = { { 1, 2}, { 3, 4, 5 }, { 6, 7, 8, 9 } }; juin 2007 ~ Brigitte Groléas ~
18
À vous … Créer une référence titi sur un tab à 2 dimensions d’entiers
Sur la référence titi créer un tableau de 5 tableaux d’entiers Chacune des cases de titi contiendra la référence d’un tableau d’entiers Dans titi[0] créez un tab de 1 entier Dans titi[1] créez un tab de 2 entiers Dans titi[2] créez un tab de 3 entiers Dans titi[3] créez un tab de 4 entiers Dans titi[4] créez un tab de 5 entiers juin 2007 ~ Brigitte Groléas ~
19
Accès aux éléments et aux dimensions
int tab[][]= new int[10][20]; System.out.println( tab.length ); // imprime 10 System.out.println( tab[0].length ); // imprime 20 Tous les accès aux tableaux sont contrôlés. Une erreur (Exception) de type : ArrayIndexOutOfBoundsException est générée en cas de débordement. juin 2007 ~ Brigitte Groléas ~
20
Les Chaînes de caractères : String
java.lang.String String s = "Bonjour"; String s = "Coucou"; StringBuffer buf = new StringBuffer( s ); buf.append( " me revoilou" ); System.out.println( buf ); l’opérateur « + » int i = 5; System.out.println( "i = " + i ); Si une opérande n’est pas de type String, elle est convertie en une chaîne pour les types primitifs ou via la méthode « toString() » pour les types non-primitifs. juin 2007 ~ Brigitte Groléas ~
21
Les Opérateurs 1 PREC NOM OPERANDE ASSOCIATIVITE
1 ++, --, +, - numérique D ~ entier D ! booleen D new, (type) tout type D 2 *, /, % numérique G 3 +, - numérique G + String G 4 >>, <<, >>> entier G 5 >, >=, <, <= numérique G instanceof objet G juin 2007 ~ Brigitte Groléas ~
22
Les Opérateurs 2 PREC NOM OPERANDE ASSOCIATIVITE
6 ==, != primitif,référence G 7 & entier ou booleen G 8 ^ entier ou booleen G 9 | entier ou booleen G 10 && booleen G 11 || booleen G 12 ? : booleen,exp,exp D 13 =, +=, -=, *=, /=, %=, variable, exp D <<=, >>=,>>>=, &=, |=, ^= juin 2007 ~ Brigitte Groléas ~
23
Sens d'évaluation La flèche « --> » indique que
les opérateurs sont évalués de la gauche vers la droite. C'est le cas de la majorité des opérateurs. La flèche « <-- » indique que Les opérateurs sont évalués de la droite vers la gauche. C'est le cas des opérateurs unaires et des opérateurs d'affectations <==> (((3 + 4) - 7) + 6) - 5 * 5 / <==> 3 + ( (12 * 5) / 3 ) x < 2 || x > 5 && x < 7 <==> (x<2) || ((x>5) && (x<7)) x = y = z = <==> x = ( y = (z = 5) ) x = y = z++ * -a <==> x = (y = ((z++) * (-a))) x = y > <==> x = ( y > 7 ) juin 2007 ~ Brigitte Groléas ~
24
Opérateurs Arithmétiques
- Moins unaire X - Division X / Y - Multiplication X * Y - Modulo X % Y - Addition X + Y - Soustraction X - Y Le modulo (reste de la division entière) ne peut s'employer que sur des types entiers Division. est entière lorsque les 2 termes de l'expression sont entiers. Si 1 des termes est « float » ou « double », elle sera réelle. juin 2007 ~ Brigitte Groléas ~
25
Opérateurs binaires Complément binaire Et binaire Ou inclusif binaire
X = ~X = Complément binaire Et binaire Ou inclusif binaire Ou exclusif binaire X = Y = X & Y = X = Y = X | Y = X = Y = X ^ Y = juin 2007 ~ Brigitte Groléas ~
26
-------------------------
Exemples Exemple: Isoler les 3 derniers bits d'un mot. X = b7 b6 b5 b4 b3 b2 b1 b0 = X & 7 = b2 b1 b0 Exemple: tester si le bit « b3 » du mot « X » est à « 1 ». X = b7 b6 b5 b4 b3 b2 b1 b0 = X & 8 = b juin 2007 ~ Brigitte Groléas ~
27
------------------------
Décalage Décalage à droite Décalage à gauche = 5 >> 1 = = 5/2 = 2 (division entière) = 5 << = = 5 * = 40 juin 2007 ~ Brigitte Groléas ~
28
Opérateurs d'Inc/Décrémentation
- pré-incrémentation X - post-incrémentation X++ - pré-décrémentation X - post-décrémentation X-- « X = Y++; » revient à faire: Tmp = Y; Y = Y + 1; X = Tmp; « X = ++Y; » revient à faire: Y = Y + 1; X = Y; juin 2007 ~ Brigitte Groléas ~
29
Opérateur Conditionnel
<condition> ? <expression1> : <expression2> a = ( a < b ) ? a + b : a - b; équivaut à a += ( a < b ) ? b : -b; équivaut à if( a < b ) a = a + b; else a = a - b; juin 2007 ~ Brigitte Groléas ~
30
À vous … vrai ou faux char c; déclare un caractère sur 8 bits
boolean b; déclare une valeur booléenne short i; déclare un entier signé 8 bits int j; déclare un entier signé 32 bits ClassName x; déclare une instance x de la classe ClassName. tab1= new int[100]; déclare un tableau de 100 entiers int tab[][] = new int[10][10]; déclare un tableau à 2 dimensions de 100 entiers String dico[]= { "hiboux", "choux", "genoux" }; déclare un tableau de 3 Strings initialisées juin 2007 ~ Brigitte Groléas ~
31
À vous … vrai ou faux Identifier les lignes correctes pour utiliser la classe InputStream du package java.io import java.io.*; import java.io.InputStream; import io.*; import java.*; aucun import n'est nécessaire, ce package est importé par défaut juin 2007 ~ Brigitte Groléas ~
32
Pour créer un fichier Dessin.class :
À vous … vrai ou faux Pour créer un fichier Dessin.class : Le programme source doit s'appeler Dessin.javac Une classe du fichier source doit porter le nom de Dessin Une fonction main (et une seule) doit être incluse dans n'importe laquelle des classes du fichier source juin 2007 ~ Brigitte Groléas ~
33
Structures de contrôle sélectives
switch( expression ) { case constante_1: instruction_ instruction_1.2 ... case constante_2: instruction_2.1 instruction_2.2 case constante_n: instruction_n.1 default: instruction_n+1.1 } if( condition ) { instructions à faire si vrai } else { instructions à faire si faux break juin 2007 ~ Brigitte Groléas ~
34
Les Itérations while( condition ) { instructions à exécuter
tant que la condition est vraie (i.e. différente de zéro) } do { instructions } while( condition ); for( [initialisation] ; [condition] ; [incrémentation] ) { instructions } juin 2007 ~ Brigitte Groléas ~
35
Depuis Java 5 int [] tab = new int[10]; for (int i : tab )
somme = somme + tab[i]; juin 2007 ~ Brigitte Groléas ~
36
Les ruptures CONTINUE BREAK return
Permet de « remonter » à la partie « condition » dans la boucle courante. Empêche l’exécution des instructions qui la suivent. Généralement utilisée conjointement avec une instruction « if » ou « switch » imbriqué dans la boucle. BREAK Permet de sortir d'une boucle (ou d'un « switch ») avant la fin de la boucle (ou du « switch ») Généralement utilisée conjointement à une instruction « if » imbriquée dans la boucle. return Permet de sortir d’une méthode pour retourner à la méthode appelante. juin 2007 ~ Brigitte Groléas ~
37
Les blocs labelisés un: while ( ...) { ... deux: for(...) {
trois: while (...) { if (...) continue un; if (...) break deux; continue; } Reprend sur la première boucle while Quitte la boucle for Reprend sur deuxième boucle while (trois) juin 2007 ~ Brigitte Groléas ~
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.