J100 (JSB) Java : Syntaxe de Base juin 2007 ~ Brigitte Groléas ~

Slides:



Advertisements
Présentations similaires
La programmation orientée objet avec Java L3-MIAGE Plan
Advertisements

Premier programme en C :
A RECUPERER EN ENTRANT Le polycopié de Caml Partie 1
Langage C# et Plate-forme .NET
A propos de java Sun, fin 1995 C++ nettoyé semi-interprété
SI3 MAM3 Hydro Nathan Cohen Igor Litovsky Christophe Papazian
Introduction à la Programmation Orientée Objet Retour sur les principaux concepts SI3 MAM3 Hydro Nathan Cohen
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.
Approfondissement du langage
(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 &
C.
Programmer en JAVA par Tama
MIKHAYLOVA Vera Exposé Java principe de fonctionnement Lundi 17 mai 2004 DEUG 1ère année Science du langage Paris III.
LICENCE MIAGE Introduction Programmation Orientée Objet JAVA philippe
JAV - TD 6 Structures de données JAVA
TD 1 IJA Introduction Objet, méthode, attribut Classe, instance
IJA - TD 2 Bases du langage
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
Introduction à la programmation (420-PK2-SL) cours 15 Gestion des applications Technologie de linformation (LEA.BW)
Algorithme et programmation
1 Une introduction à Java IFT 287 (Semaine 1). 2 Java - Historique Développé par Sun Microsystems en 1994 –Inventeur James Gosling (canadien!) Objectif.
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.
Langage Oriente Objet Cours 4.
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
Laboratoire d'Informatique de l’Université de Franche-Comté
Principes de programmation (suite)
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
77 Utilisation des classes (suite). 7-2 Objectifs A la fin de ce cours, vous serez capables de : Définir des méthodes surchargées dans une classe Fournir.
Introduction à la programmation (Java)
Langage Oriente Objet Cours 2.
Les pointeurs Enormément utilisé en C/C++ ! Pourquoi? A quoi ça sert?
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.
Introduction à la Programmation Orientée Objet Retour sur les principaux concepts SI3 MAM3 Hydro Nathan Cohen
Principes de programmation
Programmation concurrente
IFT 6800 Atelier en Technologies d’information
1 IFT 6800 Atelier en Technologies dinformation Le langage de programmation Java chapitre 1 : Introduction.
1 IFT 6800 Atelier en Technologies dinformation Le langage de programmation Java chapitre 3 : Classes et Objects.
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.
COURS DE PROGRAMMATION ORIENTEE OBJET :
COURS DE PROGRAMMATION ORIENTEE OBJET :
CSI 1502 Principes fondamentaux de conception de logiciels
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.
Une introduction à Java
NORMALISATION DES LANGAGES DE PROGRAMMATION des Automates Programmables Industriels CEI
L’essentiel du langage C
Structures des données
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
Cours 1 1 Java. Cours 1 2 Plan général 1.Introduction 2.Les types primitifs, évaluation d’expressions 3.Instructions for, if…. 4.Introduction de l’objet,
Ecrire des expressions arithmétiques et logiques
Introduction à la programmation objet avec java
Java : Exceptions H Batatia. 5/03/2004Java12: H.Batatia2 Exemple 1 public class Bonjour { public static void main(String[] args) { System.out.println("Bonjour.
11/04/ L'héritage Cours 7 Cours 7.
Premiers pas dans le langage Java 2012/ Premiers pas dans le langage Java TI3.4 Responsable : M lle Sana Ezzedine
 Syntaxe du langage PHP
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.
IUT du Limousin L.U.P Michel Vergnaud Programmation Objet - Java.
Introduction au langage JAVA
1 Programmation Avant-propos. 2 Programmation / Avant-propos  Programmation Ensemble des activités permettant l'écriture de programmes informatiques.
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.
Programme de baccalauréat en informatique Structures de données IFT Abder Alikacem TP4 Département d’informatique et de génie logiciel Édition septembre.
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é.
Introduction au langage C
BlueJ_III 1 Java, les objets : tout de suite ! Interaction entre objets Notes de cours associées au chapitre 3 tutorial BlueJ
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:

J100 (JSB) Java : Syntaxe de Base juin 2007 ~ Brigitte Groléas ~

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 ~

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 ~

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 ~

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 ~

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 ~

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 ~

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 ~

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 ~

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 ~

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 ~

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 ~

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 ~

À 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 ~

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 ~

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 ~

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 ~

À 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 ~

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 ~

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 ~

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 ~

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 ~

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 <==> (((3 + 4) - 7) + 6) - 5 3 + 12 * 5 / 3 <==> 3 + ( (12 * 5) / 3 ) x < 2 || x > 5 && x < 7 <==> (x<2) || ((x>5) && (x<7)) x = y = z = 5 <==> x = ( y = (z = 5) ) x = y = z++ * -a <==> x = (y = ((z++) * (-a))) x = y > 7 <==> x = ( y > 7 ) juin 2007 ~ Brigitte Groléas ~

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 ~

Opérateurs binaires Complément binaire Et binaire Ou inclusif binaire X = 0 0 1 1 0 0 1 1 ----------------- ~X = 1 1 0 0 1 1 0 0 Complément binaire Et binaire Ou inclusif binaire Ou exclusif binaire X = 1 1 0 0 1 0 1 1 Y = 1 1 1 0 0 0 1 1 ----------------- X & Y = 1 1 0 0 0 0 1 1 X = 1 1 0 0 1 0 1 1 Y = 1 1 1 1 0 0 0 1 ------------------------ X | Y = 1 1 1 1 1 0 1 1 X = 1 1 0 0 1 0 1 1 Y = 1 1 1 1 0 0 0 1 ------------------------ X ^ Y = 0 0 1 1 1 0 1 0 juin 2007 ~ Brigitte Groléas ~

------------------------- Exemples Exemple: Isoler les 3 derniers bits d'un mot. X = b7 b6 b5 b4 b3 b2 b1 b0 7 = 0 0 0 0 0 1 1 1 ------------------------- X & 7 = 0 0 0 0 0 b2 b1 b0 Exemple: tester si le bit « b3 » du mot « X » est à « 1 ». X = b7 b6 b5 b4 b3 b2 b1 b0 8 = 0 0 0 0 1 0 0 0 ------------------------- X & 8 = 0 0 0 0 b3 0 0 0 juin 2007 ~ Brigitte Groléas ~

------------------------ Décalage Décalage à droite Décalage à gauche 5 = 0 0 0 0 0 1 0 1 ------------------------ 5 >> 1 = 0 0 0 0 0 0 1 0 = 5/2 = 2 (division entière) 5 = 0 0 0 0 0 1 0 1 ---------------- 5 << 3 = 0 0 1 0 1 0 0 0 = 5 * 8 = 40 juin 2007 ~ Brigitte Groléas ~

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 ~

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 ~

À 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 ~

À 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 ~

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 ~

Structures de contrôle sélectives switch( expression ) { case constante_1: instruction_1.1 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 ~

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 ~

Depuis Java 5 int [] tab = new int[10]; for (int i : tab ) somme = somme + tab[i]; juin 2007 ~ Brigitte Groléas ~

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 ~

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 ~