Vous êtes sur la page 1sur 31

Leçon 1

Les bases du langage Java


Sommaire
1. Présentation de Java
2. Installation des outils
3. Syntaxe de bases du langage Java
a. Structure d’un programme
b. Types, Variables & Constantes
c. Tableaux
d. Opérateurs (affectation, comparaison, priorité)
e. Structures conditionnelles
f. Structures itératives
g. Exceptions
h. Les entrées/sorties
i. Fonctions

1
Présentation de java
Qu’est ce que java?

 Un langage de programmation libre


◦ développé en 1995 par Sun puis racheté par oracle
(2009).
◦ Sa syntaxe proche de celle du C et du C++
◦ Aujourd’hui le langage le plus utilisé dans le monde de
l’entreprise
 Objectif : multi-plateforme « write once,
run everywhere »
 Caractéristiques: Interprété, portable,
Orienté Objet, multitâche,…
2
Présentation de Java
La technologie
 Java est utilisé dans une grande variété de plates-
formes depuis les systèmes embarqués et les
téléphones mobiles, les ordinateurs personnels, les
serveurs, les applications d’entreprise, les
superordinateurs, …
 la technologie Java regroupe :
◦ Des standards définis par le Java Community Process
(JCP), en trois éditions :
 Java SE (standard edition)
 Java EE (enterprise edition), s'appuyant sur Java SE
 Java ME (micro edition), indépendante des deux précédentes
◦ Des logiciels (langages informatiques, bibliothèques,
frameworks, serveurs d'application, outils d'aide au
développement).
3
Présentation de Java
La machine virtuelle

 le compilateur Java génère du byte code (ou


pseudo code) et non de l’assembleur
 le byte code est exécuté sur une machine
virtuelle : la JVM
 approche adoptée par la plupart des langages
récents (.NET, python, ...)
Intérêt
 programmation de plus haut niveau (p.ex. plus de
gestion manuelle de la mémoire)
 indépendance de la plateforme cible : windows,
linux, mac, web, téléphone, ...
4
Présentation de Java
Le processus de compilation - comparaison

Compilation traditionnelle

Compilation java

5
Présentation de Java
Le processus de compilation & Exécution

6
Présentation de java
Environnement de développement - JDK

Le Java Development Kit, communément appelé JDK,


est le kit de développement basique que propose
gratuitement la firme Sun Microsystem. Le Kit de
développement comprend plusieurs outils, parmi lesquels :
 javac : le compilateur Java

 java : un interpréteur d’applications (machine virtuelle ou jre)

 applet viewer : un interpréteur d’applets

 jdb : un débogueur

 javap : un décompilateur, pour revenir du bytecode au codesource

 javadoc : un générateur de documentation

 jar : un compresseur de classes Java

7
Présentation de java
API Java
API = Application Programming Interface
C’est-à-dire tout ce qui relie un programme avec son environnement, plus
tout ce qui n'est pas défini directement dans le langage; organisé sous
forme de packages.
Packages Description
java.applet créer une applet et la faire communiquer dans son contexte
d’exécution
java.io gestion des entrées/sorties à travers des canaux de données,
sérialisation et systèmes de gestion de fichiers
java.lang classes fondamentales pour le langage
java.math fonctions habituelles (sin, cos, ...), opérations en entier et décimal
d’une précision arbitraire
java.util structures de données des utilitaires pour la manipulation des
dates, un modèle d’événement, etc.
javax.swing composants légers (entièrement écrits en Java, pour la gestion
des interfaces, indépendants de la plate-forme.
… …
8
Installation des outils
Installation de JDK - Téléchargement

Le JDK et la documentation sont librement téléchargeables


sur le site web de java:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
http://openclassrooms.com/
Le programme utilise InstallShield pour guider et réaliser
l'installation.

9
Installation des outils
Installation de JDK - Vérifications

 Vérifiez le contenu du répertoire du jdk…


 Notez dans un premier temps la présence dans ce
répertoire :
◦ Du fichier src.zip, contenant les sources des classes du JDK
◦ Du répertoire ’bin’, contenant tous les outils du JDK

10
Installation des outils
Installation de JDK – Variables d’environnement
 La variable PATH doit contenir le chemin d’accès aux
différents outils java.
 Demarrez/panneau de configuration/système/Onglet ’avancé’
 Cliquez sur le bouton ’variable d’environnement’. Vous
obtenez la fenêtre des variables d’environnement, contenant
une partie ’user’ et une partie ’système’.
 Dans la partie ’user’, cliquez sur ’nouveau’ . Ajoutez une
nouvelle variable PATH et associez la valeur suivante :
C :\Program Files\Java\jdk….\bin ;%Path% .

11
Syntaxe de bases du langage Java
Structure d’un programme

public class NomDuProgramme {


public static void main(String args[]) {
...
System.out.println(...) ;
}
}
args[ ] représente la liste des arguments pouvant
être fournis lors de l’exécution du programme.
NomDuProgramme.java devra être le nom du fichier.
Commande de compilation :
C :\MONREP > javac NomDuProgramme.java
Commande d’exécution :
C :\MONREP > java NomDuProgramme

12
Syntaxe de bases du langage Java
Types
 un type définie :
◦ un ensemble de valeurs
◦ un ensemble d’opérations possibles
 principaux types java sont:

13
Syntaxe de bases du langage Java
Variables

 Une variable est un objet ayant un identificateur, un


type et une valeur à un instant donné.
 Une variable doit d’abord être déclarée en spécifiant
son type :
Exemple: float maVariable ;
 Puis être définie en lui donnant une valeur :
Exemple: maVariable = 12.0 ;
 en une instruction :
Exemple: float maVariable = 12.0 ;
 On peut affecter à une variable soit une valeur, soit le
résultat d’une opération.
 Remarque importante : convention java pour nommer
les variables : maVariable , uneAutreVariable , ...

14
Syntaxe de bases du langage Java
Constantes

 Une constante est un objet qui a un


identificateur et une valeur.
 Son type n’est pas explicite, il est
déterminé par la valeur attribuée à la
constante.
 La valeur d’une constante ne change pas,
elle est unique dans le temps.
 En java les constantes sont définies sous
la forme:
static final float CTE = 12.0, PI = 3.14 , …

15
Syntaxe de bases du langage Java
Tableaux

 Un tableau en Java ne contient que des éléments de type référence.


 Eléments d’un tableau = références à ces objets.
 Il n’y a pas allocation de la mémoire pour les éléments
 ref = null jusqu’à affectation.
 la méthode System.arraycopy permet la copie d’élément d’un tableau
dans un autre.
 le champ length est une variable qui donne la taille du tableau
◦ La déclaration d’un tableau se fait de la manière suivante :
TypeDeBase variable [] ou TypeDeBase [] variable
Exemple : int tab[]; ou int [] tab;
◦ Opérateur spéciale new permet de construire une instance de tableau
Exemple : tab = new int[50];
 Les valeurs d’un tableaux peuvent être fournies à la déclaration
Exemple: int tab [] = {1,2,3,4,5};
 Tableaux multidimensionnels:
TypeDesElements nomTableau [ ][ ] ;
nomTableau = new TypeDesElements[taille1][taille2];
Où taille1 et taille2 sont des entiers.

16
Syntaxe de bases du langage Java
Opérateurs - affectation

17
Syntaxe de bases du langage Java
Opérateurs - comparaison

18
Syntaxe de bases du langage Java
Opérateurs - priorité

19
Syntaxe de bases du langage Java
Structure conditionnelle – if (condition simple)

Syntaxe:
if (<expression booléenne>) {
instruction(s)
}
Exemple:
if(x >= 2) {
x += 1;
system.out.println(x);
}
Exercice:
1) Dire si la valeur entière a est supérieur à celle
de b; les deux étant supposées fournies.
2) Dire si nombre réel x, supposé fourni est positif.
3) Dire si le jour (type chaîne), est " lundi".
20
Syntaxe de bases du langage Java
Structure conditionnelle – if … else
Syntaxe:
if (<expression booléenne>) {
instruction(s)
}else {
instruction(s)
}
Exemple:
if(x >= 2) {
x += 1;
system.out.println(x);
}else{
x -= 1;
system.out.println(x);
}
Exercice:
1) Dire quel est le maximum entre les valeurs entières a et b; les deux étant
supposées fournies.
2) Dire quel est le signe d’un nombre réel x, supposé fourni.
3) Dire quelle est la valeur absolue d’un entier y, fourni.

21
Syntaxe de bases du langage Java
Structure conditionnelle – if … else if …

Syntaxe:
if (<expression booléenne>) { instruction(s) }
else if (<expression booléenne>) { instruction(s) }
else if (<expression booléenne>) { instruction(s) }
else { instruction(s)}
Exemple:
if(x == 0) system.out.println("nombre nul");
else if(x > 0)system.out.println("nombre positif");
else system.out.println("nombre négatif");
Exercice:
1. Dans un pays, les hommes de plus de 20 ans paient l’impôt, les femmes
paient l’impôt si elles ont entre 18 et 35 ans et les autres ne paient pas
d’impôt. (Considérer age comme un nombre entier et sexe comme un
caractère);
2. Connaissant l’âge d’un individu, on peut déterminer sa catégorie de la
manière suivante: "Nourrisson" de 0 à 3 ans, "Enfant" de 4 à 9 ans,
"Adolescent" de 10 à 17 ans et "Adulte" après 18 ans.

22
Syntaxe de bases du langage Java
Structure conditionnelle – switch & ?
Syntaxe:
switch (<constante de type numérique>) {
case <constante de type numérique> :
instruction(s)
break ;
case <constante de type numérique> :
instruction(s)
break ;
...
default :
instruction(s)
}
Exercice:
Dans un pays, les hommes de plus de 20 ans paient l’impôt, les femmes paient l’impôt si elles
ont entre 18 et 35 ans et les autres ne paient pas d’impôt. (Considérer age comme un nombre
entier et sexe comme un caractère). Indication: utiliser la structure switch pour contrôler la
variable sexe.
Opérateur ternaire ? :
Instruction conditionnelle pouvant être utilisée en une ligne de code
<expression booléenne> ? <valeur si vrai> : <valeur si faux>

23
Syntaxe de bases du langage Java
Structure itérative - for

Syntaxe:
for (<initialisation> ; <condition> ; <incrémentation>) {
instruction(s)
}
Exemple:
for (int i = 0; i < 3; i++) {
System.out.println("i vaut " + i);
}
Exercices:
1. Calculer la somme de 7 valeurs entières, préalablement chargées dans un tableaux.
2. Dire quel est le total des nombres négatifs, contenus dans un tableau, préalablement
déclaré.
3. Calculer le produit scalaire du tableau tab{4,8,7,12} avec le tableau vec{3,6}.
4. Déclarer une matrice d’entier, initialiser sa diagonale avec la valeur 1, et le reste avec
la valeur 0.

24
Syntaxe de bases du langage Java
Structure itérative - while

Syntaxe:
while (<expression booléenne>) {
instruction(s)
}
Le code est exécuté tant que l’expression booléenne est vrai. Si avant
l'instruction while, le booléen est faux, alors le code de la boucle ne
sera jamais exécuté.
Exercice:
Algorithme d’Euclide pour calculer le PGCD de deux
entiers
 si un des nombres est nul, l’autre est le PGCD;
 sinon,
◦ il faut soustraire le plus petit du plus grand et laisser le plus petit
inchangé;
◦ puis, recommencer ainsi avec la nouvelle paire jusqu’à ce que un des deux
nombres soit nul. Dans ce cas, l’autre nombre est le PGCD.

25
Syntaxe de bases du langage Java
Structure itérative – do…while

Syntaxe:
do {
instruction(s)
} while (<expression booléenne>) ;
Cette boucle est au moins exécutée une fois
quelque soit la valeur de l’expression booléen;
Exercice:
Soit n un nombre entier donné. Déterminer si n
est un nombre premier. Un nombre premier est
un nombre qui n’admet que deux diviseurs, à
savoir 1 et lui-même.

26
Syntaxe de bases du langage Java
Exceptions

En Java toutes les erreurs lors du déroulement du programme donne lieu à des
exceptions qui arrêtent le programme.
Informations contenues dans une exception :
◦ nom de l’erreur (' cause) ;
◦ ligne où l’erreur s’est produite ;
◦ pile d’appels = liste des méthodes successives qui ont été appelées.
Syntaxe:
try { instruction(s) }
catch (<type d’exception> <variable>) { instruction(s)}
...
finally {instruction(s) }
Exemple:
FileOutputStream fos = null ;
try { fos = new FileOutputStream(...) ; fos.write(a) ;}
catch (IOException e) { e.printStackTrace() ;}
Finally{if(fos != null) fos.close() ; }

27
Syntaxe de bases du langage Java
Entrées/Sorties

 Toutes les entrées-sorties fondamentales de java reposent sur


les streams.
 Un stream représente un flot de données ou un canal de
communication avec un ecrivain à une extrémité et un lecteur
à l’autre.
 On distingue ainsi deux types de streams : InputStream et
OutputStream.
 La classe java.lang.System regroupe les accès aux ressources
systèmes, fournissant une référence à l’entrée standard via la
variable statique in.
 System fournit également certains objets pour la sortie
standard et l’erreur standard grâce aux variables out et err.
 Les primitives d’éntrées/sorties les plus usuels de System sont
System.in.read() qui permet de lire un octet et System.out.println()
permettant d’afficher des informations à l’écran ; il existe une
primitive pour chaque type de base.

28
Syntaxe de bases du langage Java
Entrées/Sorties
 Il existe également des primitives plus spécialisées pour les entrées sorties ; ces
primitives font partie de la panoplie des objets java.io.DataInputStream et
java.io.DataOutputStream résumé par le tableau suivant :

readBoolean() Lit une valeur booléenne


readChar() Lit un caractère
readDouble() Lit une valeur Double
readFloat() Lit un Float
readInt() Lit un Int
writeBoolean() Affiche un Booléen
… …
 Pour les chaînes de caractère:
//definir le flux de caracteres d'entree: in
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader in = new BufferedReader(isr);
….
String nom = in.readLine();

29
Syntaxe de bases du langage Java
Entrées/Sorties - Exemple

Exemple de programme opérant les entrées-sorties:


import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.IOException;

public class InOut {


public static void main(String[] args) {

InputStream stdin = System.in;

OutputStream stdout = System.out;

DataInputStream in = new DataInputStream(stdin);

DataOutputStream out = new DataOutputStream(stdout);

System.out.println("Entrer un nombre:");

try{
int x = in.readInt();

System.out.println("Le nombre lu est:");

out.writeInt(x);

}catch(IOException e){ }
}
}

30
Syntaxe de bases du langage Java
Fonctions

il n’y a pas de fonctions en Java


pour les besoins des exercices, on utilisera
des méthodes statiques comme des
fonctions
Définition :
public static int add(int a, int b) {…}
public static void test() {…}
...
Appel :
MaClasse.add(2, 3);
où MaClasse est le nom de la classe dans
laquelle est définie la méthode.
31

Vous aimerez peut-être aussi