Introduction au
langage JAVA
Programmation JAVA Cours 1
L2 informatique 2013/2014
Denis Payet
Plan
1) Organisation des cours
2) Introduction la Programmation
3) Les variables
4) Les types
diapo 2 Programmation Java Cours 1
JAVA - Historique
Cr en 1994/1995, par la socit SUN
Langage de programmation inspir du C++
Initialement conu pour raliser des programmes
interactifs sur le Web
Libre (licence GPL) depuis novembre 2006
Rachet par Oracle en 2010
Version actuelle (juillet 2011) : Java 7
diapo 3 Programmation Java Cours 1
1) Organisation des cours
diapo 4 Programmation Java Cours 1
Ce quil faut savoir pour programmer
Comment crire du code (des instructions) :
- les concepts cls pour coder
- la syntaxe utiliser pour crire du code ?
- les concepts plus volus pour produire un code efficace
Comment structurer le code :
- dans un fichier source, o taper le code ?
- comment le code source se rpartit dans les fichiers ?
Cours n4
Cours n5
Cours n1
Cours n2
Cours n3
1
re
valuation
diapo 5 Programmation Java Cours 1
Et pour bien programmer en Java ?
Quels outils utiliser ?
Pratiquer & encore pratiquer
Matriser la philosophie du langage
Les subtilits de cette philosophie
Connatre les librairies existantes
Suivre lvolution du langage
Cours n6
Cours n7
Cours n8
Cours n9
Cours n10
Les TP !
2
ime
valuation
diapo 6 Programmation Java Cours 1
2) Introduction la
programmation
diapo 7 Programmation Java Cours 1
La programmation
Dfinition :
Un programme est un code crit destination
dun microprocesseur (CPU). Ce code dfinit
le traitement que doit raliser le CPU.
Le code se compose dune suite dinstructions
que le CPU traite lune aprs lautre.
=> Le code doit tre crit dans un langage
comprhensible par le CPU
diapo 8 Programmation Java Cours 1
Edition / Compilation / Excution
Le seul langage que comprend le CPU est le langage machine !
! Le langage machine correspond lcriture binaire de la suite
dinstructions raliser, directement comprhensibles par le
sous-circuit "dcodeur dinstruction" du CPU.
! Lhomme ne sait pas crire en binaire, aussi on utilise un langage
dabstraction pour crire le code source des programmes.
! Une fois crit, il faut utiliser un compilateur pour traduire le code
source en langage machine.
Code en langage
machine x86 CPU Intel
8086
Editeur
de code
Code source
ASM x86
Compilateur
x86
PC
diapo 9 Programmation Java Cours 1
CPU diffrents => codes machines diffrents
Code en langage
machine x86
CPU Intel
8086
Editeur
de code
Code source
du programme
Compilateur
x86
CPU IBM
PowerPC
Compilateur
PPC
PC
Code en langage
Machine PPC
MAC
diapo 10 Programmation Java Cours 1
Philosophie du langage JAVA
Langage Interprt
=> Indpendance vis--vis de la
plateforme matrielle
=> ncessite la prsence dun logiciel
spcial, dit machine virtuelle (JVM) pour
fonctionner.
(fourni dans le JRE)
Langage 100% Objet
=> Tout code fait partie dun objet
(nous verrons plus tard ce quest un objet en POO)
diapo 11 Programmation Java Cours 1
Les langages interprts (Script, Java,...)
! Le mme code source peut tre utilis, sans le recompiler,
sur plusieurs plateformes matrielles diffrentes.
! Mais un interprteur (logiciel) doit tre install sur la
plateforme cible.
Code en langage
ByteCode Java
Editeur de
code JAVA
Code source
du programme
Compilateur
javac
PC
MAC
JVM
Mobile
Navigateur
(plugins)
diapo 12 Programmation Java Cours 1
LEnvironnement Java
Une plateforme de dveloppement :
Une machine virtuelle (JVM)
Des librairies de base (API)
Un ensemble doutils (le JDK) :
Compilateur
Debugger
Documentation
!
diapo 13 Programmation Java Cours 1
Que fait un programme ?
Un programme ralise un traitement sur un
ensemble de donnes
Ce traitement consiste modifier les donnes,
les supprimer ou en crer de nouvelles
Programme
Donnes
sources
Donnes
rsultats
diapo 14 Programmation Java Cours 1
3) Les variables
diapo 15 Programmation Java Cours 1
Que fait un programme ? (suite)
Les donnes sur lesquels le programme travaille
peuvent provenir :
dun support de stockage (disque, BDD,!)
dun autre programme (service rseau, appareil de
mesure,!)
de lutilisateur lui-mme (via le clavier, la souris,!)
Les nouvelles donnes produites par le
programme sont :
stockes sur un support (disque, BDD,!)
transmises un autre programme (service rseau,!)
transmises lutilisateur (via lcran, haut-parleurs,!)
diapo 16 Programmation Java Cours 1
diapo 17 Programmation Java Cours 1
Travailler sur des donnes ?
En ralit cest le CPU qui travaille sur les
donnes, en suivant les directives exprimes par
le programme.
Pour pouvoir travailler, ces donnes doivent :
tre accessibles par le CPU
pouvoir tre dsignes dans le code programme
Les donnes sont places dans la mmoire
de lordinateur (charge, si ncessaire, depuis
le disque ou le rseau)
Dans le programme, les donnes sont dsignes
par ladresse laquelle elles sont stockes dans
la mmoire.
Rappel : organisation dune mmoire
Une mmoire peut tre vue comme une armoire dans
laquelle chaque tiroir reprsente une case mmoire,
cest--dire un espace pouvant contenir une donne (ou
une partie dune donne).
Chaque tiroir est identifi par un numro appel une
adresse.
! Chaque donne devient alors
accessible grce son adresse
Adresse case mmoire
0000
0001
0010
0011
0100
1110 1111
1100 0000
0010 1011
0110 1111
0000 1001
! Le nombre de case mmoire associ une donne
dfinit la plage des valeurs que peut prendre cette donne
diapo 18 Programmation Java Cours 1
Des adresses mmoire ?
La mmoire (vive) est un support volatile, quand il
ny a plus de courant, elle sefface.
Cest un support temporaire, elle ne sert qu
rapprocher les donnes du processeur pour
quil puisse travailler avec.
A chaque excution dun programme, la mmoire
disponible nest pas la mme, aussi les mmes
donnes ne sont pas stockes la mme adresse
chaque lancement.
diapo 19 Programmation Java Cours 1
Les variables !
Problme 1 : comment spcifier les adresses des donnes
dans le programme si elles ne sont pas les mmes dune
excution lautre ?
Problme 2 : les adresses ne sont que des chiffres, comment
le programmeur peut-il reconnatre les donnes sur lesquelles
il exprime un traitement ?
! Ladresse dune donne est reprsente par le nom de la variable
! Le nombre de cases mmoires associes une variable dfinit la plage
des valeurs qui peuvent tre affectes cette variable. Dans le langage de
programmation ces plages de valeurs sont reprsentes par des types
! Une table interne est utilise pour faire
correspondre chaque nom une adresse
En utilisant des variables !
diapo 20 Programmation Java Cours 1
Les variables - dfinition
Une variable est une entit symbolique qui dsigne une zone
mmoire qui va servir stocker une donne manipule par
le programme.
Dans le code la variable est reprsente par son nom (une
chaine alphanumrique), et possde un type qui spcifie la
nature de la valeur stocke dans la zone mmoire.
Pour nous, cette nature peut tre : une valeur numrique
entire ou dcimale plus ou moins grande, un caractre, une
chane de caractre, un tableau!
! Mais pour la machine, ce nest que le nombre de
cases mmoire que peut occuper la donne, et
chaque case contiendra une valeur numrique (binaire).
diapo 21 Programmation Java Cours 1
Le nom des variables
- Maximum 247 caractres
- Caractres possibles : les lettres (minuscules & majuscules),
les chiffres et le caractre _
- Le nom ne doit pas commencer par un chiffre
- Le nom ne peut pas tre un mot rserv du langage
Les mots rservs du langage =
les noms des types primitifs
et les mots-cls du langage
(nous les verrons dans les diffrents cours)
Un bon programmeur utilisera des noms de variable
explicite pour que son code soit comprhensible !
diapo 22 Programmation Java Cours 1
4) Les types
diapo 23 Programmation Java Cours 1
Type primitif / Type complexe
Un type primitif est un type qui est prdfini dans le
langage et dont le nombre de case mmoire
correspondant est constant.
Un type complexe est un type qui peut sexprimer par une
combinaison dautres types. Le nombre de case mmoire
qui lui est associ varie en fonction de de la structure de
cette combinaison et/ou de la taille de linformation qui lui
sera affecte.
par exemple: les tableaux,
les chaines de caractre, !
diapo 24 Programmation Java Cours 1
Les types des variables
Les 8 types primitifs:
!"# %&'(&)*+,"( -+&../ 0"*1/123 4+./562 7"22&8./2
!"#$ &#$#!'($) * + , -../. 0!#$#!'($)1 234!56)7
89') :3;)$ '$(1 !5<$' = >=*? , =*@
1"5$' :3;)$ !5<$' * > /* @-? , /* @-@
43' :3;)$ A >* =A? A?/ -A? , * =A@ A?/ -A@
B53C :3;)$ B53C ? >DE FG* H4BB4#$6 6) H4BB4#$6
I5#' JB5K#3' 035H8$) $L)B7 A >DE /GAM=+
/?
65<8B) JB5K#3' 65<8B) ? >DE =G@M=+
/+?
855B)#3 855BL)3 = '$<) 5< N#B1)
NB: il ny a pas de type non sign explicite
diapo 25 Programmation Java Cours 1
Le type char
char : ce type est utilis pour des donnes qui reprsente
des caractres. Il sert par exemple faire des traitements
sur les textes affichs sur lcran, les touches du clavier,
etc! Exemple de caractre : a, A, 0, 1 , + !
! Il ne faut pas confondre un nombre et un caractre qui
reprsente ce nombre: 1 nest pas 1
" On utilise des quotes pour spcifier un caractre
Mais : cest nous (humain) qui donnons un sens aux
caractres, pour le CPU ce ne sont que des nombres. Ce
sens (nombre <-> caractre) est spcifi par une table de
correspondance appele table ASCII.
diapo 26 Programmation Java Cours 1
La table ASCII
La table ASCII est une table qui indique quelle valeur
numrique correspond chaque caractre.
Elle est utilise par les fonctions daffichage pour savoir
quelle lettre dessiner chaque valeur dune case
mmoire cense contenir une donne de type caractre.
Dans cette table :
a et A sont des caractres diffrents
! ils nont pas la mme valeur ASCII
Le caractre 1 na pas la valeur 1
Les caractres qui se suivent ont des valeurs qui se suivent (les
minuscules dune part et les majuscules dautre part).
! la valeur de c est gale la valeur de a + 2
! la valeur de C est gale la valeur de A + 2
qui est aussi gale : c + (A - a )
diapo 27 Programmation Java Cours 1
Le type boolean
boolean est un type particulier, il est utilis pour une donne
qui ne peut prendre que 2 valeurs : vrai ou faux.
! Contrairement dautres langages, en java on ne
considre pas que des donnes boolean ont une
correspondance numrique (mme si en ralit elles en
ont invitablement une).
" 0 ne reprsente pas faux
Dans ce langage de programmation les valeurs vrai et faux
pour ce type sexprime par les mots cls: true et false
diapo 28 Programmation Java Cours 1
Compatibilit des types
Dfinition :
Exemple :
- le type int est compatible avec le type double
- le type char est compatible avec le type int
- le type double nest pas compatible avec le type int
- le type boolean nest compatible avec aucun autre type
- aucun type nest compatible avec le type boolean
Un type A est compatible avec un type B si et seulement
si la plage de valeur de A est comprise dans la plage de
valeur de B.
diapo 29 Programmation Java Cours 1
Les constantes littrales
Une constante littrale est une valeur numrique, boolenne,
un caractre ou une chaine de caractres directement saisie
dans le code source
Constante numrique :
51 ! entier, type int, exprim en base 10
051 ! entier, type int, exprim en base 8 (octal)
0x51 ! entier, type int, exprim en base 16 (hexadcimal)
51.0 51. .78 32.41 21.13e7 3.7e-33 ! nombre dcimal,
de type double !
51.0f .78f 3.7e-33f ! nombre dcimal, de type float !
Constante boolenne : true false
Constante caractre :
a B ! code ASCII des lettres, type char
Constante chaine de caractre : "Un exemple de chaine"
diapo 30 Programmation Java Cours 1
Fin.