Sunteți pe pagina 1din 29

Chapitre2:

Syntaxe de base du langage Java


Dr. MALKI Abdelhamid
a.malki@esi-sba.dz
Ecole Nationale Supérieure d’Informatique de Sidi Bel Abbes (ENSI)
2015/2016
JAVA: Introduction
 Java est un langage de programmation orienté objet créé en
1991 par SUN Microsystem (rachetée par Oracle en 2009 ).

 les systèmes embarqués (véhicules, téléphones mobiles,


électroménager, etc.); applications :bureau, serveur, web,
réseau.
Plateformes JAVA
 Java SE (Java Platform,Standard Edition): J2SE pour
applications classiques, desktop Compilateur,

 Java EE (Java Platform, Enterprise Edition): J2EE pour


développer et déployer des applications serveur, Web
services, etc

 Java ME(Java Platform,Micro Edition): J2ME pour les


applications embarquées, PDA, téléphones, etc.
Versions de Java Standard Edition
 Années de réalisation, et nombre de classes et
d’interfaces des versions de Java:

 ♦ Java SE 9 prévue pour septembre 2016


 ♦ Java SE 8 2014 : plus de 4000
 ♦ Java SE 7 2011 : 3 977
 ♦ Java SE 6 2007 : 3 777
 ♦ J2SE 5.0 2004 : 3 270
 ♦ J2SE 1.4 2002 : 2 723
 ♦ J2SE 1.3 2000 : 1 840
 ♦ J2SE 1.2 1998 : 1 524
 ♦ JDK 1.1 1997 : 477
 ♦ JDK 1.0 1996 : 211
Environnement Java SE
 Outil JDK : Outils de développement JDK (Java developpment
Kit) de oracle (www.oracle.com/technetwork/java/javase).
 Il est gratuit.
 Il contient un ensemble de paquetages très riches et très
variés (JAVA API: java.util; java.io; java.swing, etc).
 Il contient un ensemble d’outils :
◦ Compilateur : « javac »,
◦ VM (Java Virtual Machine):« java »,
◦ débugueur :  « jdb », etc

 Des environnements de développements gratuits sont


disponibles, par exemple :
 • NetBeans : http://www.netbeans.org/
 • Eclipse : http://www.eclipse.org/
byte-code et machine virtuelle
 Lors de la compilation, le programme java n’est pas traduit en
langage machine, mais dans un pseudo langage : byte-code.
(code binaire)

 Le byte-code est un langage proche du langage machine,


indépendant de la plateforme (Matériel + Système
d’exploitation)

 Pour exécuter un programme java sur une machine, il suffit


qu’elle dispose d’un programme approprié , machine
virtuelle, pour interpréter le byte-code.

 La machine virtuelle sert de passerelle entre le byte-code et le


langage machine.
JAVA: Portabilité
 Le byte-code assure la portabilité d’un programme java.

 Il suffit de disposer d’une "Machine Virtuelle" Java pour


exécuter tout programme Java même s’il a été compilé
avec un autre système d’exploitation

Java
Interprétation VM
Java
Code Compilation
source Javac Byte Java
en java code VM

Program.java
Program.class
Java
VM
Mon premier programme JAVA
 Un programme écrit en Java consiste en un ensemble de classes.
 L’exécution du programme commence par l’exécution d’une
classe (classe exécutable) qui doit implémenter une méthode
particulière “public static void main(String[] args)”.

Tout code java doit être défini Le code de la classe doit être
à l'intérieur d'une classe enregistré dans un fichier de
même nom que la classe

Le point d'entrée public class Teste{


pour l'exécution est public static void main (String args[] ) Teste.java
la méthode main() {
System.out.println(" Hello world ! ");
Pour afficher
}
}

Javac Teste.java Java Teste Hello world !

compilation Teste.class Exécution VM


Teste.java
Déclaration dans JAVA
 1. Déclaration: Une variable possède un identificateur, un
type et une valeur.

 Type:
◦ Soit un type élémentaire(primitif): type variable;
◦ Soit un objet appartenant à une classe: classe variable ;

 Exemple: long nombre; int compteur; int jour, mois;

 2. Déclaration des constantes: final type nom = valeur;

 Exemple : final float PI = 3.141592f;



Types primitifs dans JAVA
Affectation

Le signe = est l'opérateur d'affectation.
 int a,b; a=1; b=a;  int a=1, b=a;

 Forme complexe: int a, b,c; a=b=c=2;

 Qu’affiche ce programme java ?


public class Teste{
public static void main (String args[] )
{
int a,b,c=1; a=b=c;
System.out.println(a+" "+b+" " +c);
}
}

F:\>java Teste
1 1 1
Opérateurs(1)
 Arithmétiques: +, -, *, / (division), % (modulo)

 Exemple: int a; a=5/2; a reçoit 2 (division entière)


 float a; a=5/2; a reçoit 2,5 (division flottante)

 Idem pour le modulo %

 Comparaisons : <, >, <=, >=, ==(égalité), !=(différence)

 Booléens: && (et), || (ou), ^ (ou exclusif), ! (négation)

 Opération et affectation simultanées:


 +=, -=, *=, /=, %=, &=, |=, ^=;

 Exemple: int a,b; a+=b;  a=a+b;


 boolean x,y; x&=y;  x=x && y;
Opérateurs (2)
 Incrémentation et décrémentation :
 i++;  i=i+1; i--;  i=i-1;

 pré-incrémentation (++i) et post-incrémentation (i++)


 Exemple: soit int a, b, i; i=5; b=2;
 a=++i + b; a reçoit 8 et i reçoit 6  on incrémente le i puis on
évalue l’expression (pré-incrémentation)
 a=i++ + b; a reçoit 7 et i reçoit 6  on évalue l’expression puis on
incrémente le i (post-incrémentation)

 Idem pour la décrémentation :


◦ --i: pré-décrémentation i--: post-décrémentation

Lorsque « i++ » n’est pas impliqué dans une expression la


pré-incrémentation et la post-incrémentation sont équivalentes :

++i;  i++;  i=i+1; de même pour --i;  i--;  i=i-1;


Commentaires
 Sur une seule ligne:
◦ // Comme en “C++”, après un slash-slash int
◦ int i; // commentaire jusqu’à la fin de la ligne

 Sur plusieurs lignes


◦ /* Comme en “C”, entre un slash-étoile et un
étoile-slash, sur plusieurs lignes */
Structure de contrôle (1):if
 La structure "if"  La structure "else-if"
◦ if(condition) { ◦ if (condition1) {
◦… ◦ …
◦} ◦ }
◦ else if (condition 2) {
 La structure "if-else" ◦ …
◦ }
◦ else if (condition 3) {
◦ if(condition) { ◦ …
◦ … ◦ }
◦ } ◦ else{
◦ else ◦ …
◦ { ◦ }
◦ …
Structure de contrôle:Switch
 switch( expression ) {

◦ Case valeur1: … break;


◦ Case valeur2:… break;
◦ ..
◦ default:...

◦ }

 Lorsqu'un case est satisfait, le bloc correspondant est


exécuté, et si ce bloc ne se termine pas par une
instruction break; le bloc suivant est lui aussi exécuté.
Exemple :switch

int n=0;
 switch(n)
 {
 Case 0 : System.out.println ("Nul") ;
 Case 1 :
 Case 2 : System.out.println ("Petit") ; break ;

 case3 :
 case5 : System.out.println ("Moyen") ;
 default: System.out.println ("Grand") ;
 }
Nul
Petit
Boucle(1):For
 for (initialisation; condition; modification)
 {
 ...
 }

 Exemple:
 for (i = 0 ; i < 10; i++ ) { ....}
 for(int i =0 ; i < 10; i++ ) { ....}

 Il est possible d'inclure plusieurs traitements dans


l'initialisation et la modification de la boucle : chacun des
traitements doit être séparé par une virgule.
 Exemple:
 for (i = 0 , j = 0 ; i * j < 1000; i++ , j+= 2) { ....}
Boucle (2):while, do..while
 While

◦ while(condition)
◦ {
◦ ... // code a exécuter dans la boucle
◦ }

 Do..While

◦ do{
◦ ...
◦ } while(condition)
Instructions de sortie
 Continue: termine l'itération courante de la boucle(for, while, do)
la plus interne qui le contient.
 Exemple : for(int i =1 ; i < 10; i++ ) {
 if ( i==2 || i==7 ) continue;
 System.out.print(i+" "); }
1 3 4 5 6 8 9

 Break: termine le plus petit while, do, for qui le contient;


 Exemple : for(int i =1 ; i < 10; i++ ) {
 if (i==4) break;
 System.out.print(i+" "); }
1 2 3
Tableaux(1)
 Déclaration d'une variable de type tableau
 Type [ ] nom_du_tableau;  Type nom_du_tableau [ ];

 Exemple: int [ ] T1; char [ ] T2; float T2[ ]; Etudiant [ ] T2;

 Création: tous d’abord on déclare une référence à un tableau


ensuite on crée le tableau avec l’opérateur new en précisant sa
taille.
 int [ ] T1=new int[10]
 Exemple: int [ ]T1; T1 =new int[10];

 Déclaration et initialisation d'un tableau avec définition implicite de


taille :
 int[ ] T1 = {17, -9, 4, 3, 57}; char [ ] table2 = {'a', 'j', 'k', 'm', 'z'};
Tableaux(2)
 Il existe un attribut général qui contient la taille d'un tableau
quelque soit son type, c'est l'attribut length.

 Le premier élément d'un tableau est numéroté 0, le dernier


length-1.

 Exemple: parcourir les éléments d’un tableau


 int [ ] T1={2, 10, 5, 100, 3, 9};
 For(int i=0; i<T1.length; i++)
 System.out.println(T1[i]);
Tableaux multidimensionnelles
 Tableau dont les éléments sont eux mêmes des tableaux

 Un tableau à deux dimensions se déclarera ainsi de la manière suivante :


double[ ][ ] matrice=new double[10][5];

 Les tableau imbriqué peut avoir une taille différente(Tableaux irréguliers )

 char [][] txt=new char[6][]


 txt[0] = new char[80];
 txt[1] = new char[40];
 txt[2] = new char[70];
 ...

 int[][] tabEntiers= {{1,2,3,4,5,6}, {1,2,3,4}, {1,2,3,4,5,6,7,8,9}};


Chaine de caractères(1)
 Le type de données String (chaîne de caractère) est une classe
 Les chaînes de caractères peuvent être construites :
 1-A partir d'un tableau de caractères:
 char[] ListeChar={‘a',‘l',‘g',‘e‘,’r’,’i’,’e’}; 
String s=new String(ListeChar);

 2- Directement Par une chaîne:


 String s="algerie";

 Concaténation:
 L'opérateur + permet de concaténer plusieurs chaînes.
 String texte = "Hello"+ "world ";

On peut aussi concaténer une chaine avec d’autres types primitifs


texte += 2;  texte vaut "Hello world 2"
Chaine de caractères(2)
 égalité: La comparaison entre deux chaines de caractères est
réalisée en se basant sur la méthode equals().
 String texte1="Hello" , texte2="Hello" ;
 if(texte1.equals(texte2) ) {….}

 La longueur d'une chaîne: La méthode length() permet de


déterminer la longueur d'une chaîne.
 String texte ="texte "; int longueur= texte.length();

 Remplacement de caractères : La méthode replace( ) crée une


nouvelle chaîne en remplaçant toutes les occurrences d’un caractère
donné par un autre.
 String s1="bonjour"; s1=s1.replace(‘o’,’a’); s1 vaut "banjaur"

Modification de la casse d'une chaîne:


toUpperCase() permet d'obtenir une chaîne tout en majuscule
toLowerCase() permet d'obtenir une chaîne tout en minuscule.
String texte = " texte "; String textemaj= texte.toUpperCase();
Chaine de caractères(3)
 s.charAt(int n): récupère le nième caractère d’une chaine s.
 String s = "bonjour";
 char c = s.charAt (0); // c =“b“

 s.substring( int début): Retourne un nouveau String qui


commence au caractère d’indice début et allant jusqu’au
dernier caractère de la chaine s.
 String s = "bonjour";
 String s1 = s.substring (3); // s1 ="jour“

 s.substring (int début , int fin): Retourne un nouveau String qui


commence au caractère d’indice début et allant jusqu’au
caractère d’indice (fin-1) de la chaine s.
String s = "bonjour";
String s2 = s.substring(0,3); // s1 =“bo“
String s3 = s.substring(4,7); // s1 =“our“
Conversion de type
 Conversion d'un entier int en chaîne de caractères String
 int i= 10; String texte= new String();texte = texte.valueOf(i);
 valueOf() est également définie pour des arguments de type
boolean, long, float, double et char

 Conversion d'une chaine de caractères String en entier int


 : String texte= "10"; Integer nombre = new Integer (texte);
 Int i = nombre.intValue(); //convertion d'Integer en int

 Conversion d'un entier int en entier long


 inti=10;Integer nombre=new Integer(i);
 long j=nombre.longValue();
Entrées sorties: lecture
 La classe Scanner simplifie la lecture de données sur
l’entrée standard clavier.
 Pour utiliser la classe Scanner, il faut d’abord l’importer:
import java.util.Scanner;
 Ensuite il faut créer un objet de la classe Scanner :
 Scanner sc= new Scanner(System.in);
exemple

 Scanner sc= new Scanner( System.in );


 Int n1,n2,somme;
 System.out.print(" Donner le premier entier: " );
 n1 = sc.nextInt();
 System.out.print(" Donner un deuxième entier: " );
 n2 = sc.nextInt();
 somme = n1 + n2;
 System.out.println( "Somme est "+ somme);

S-ar putea să vă placă și