Professional Documents
Culture Documents
Premire partie
Hafidi Imad
1
imad.hafidi@gmail.com
1990 ' le 1,2 3 dcolle 4, Sun redirige ce langage vers 5nternet ' les qualits de portabilit et de compacit du langage "A- en ont !ait un candidat par!ait une utilisation sur le rseau+ $ette radaptation prit pr(s de 6 ans+ 1997 ' Sun rebaptisa "A- en Java 8nom de la machine caf autour de laquelle se runissait
James Gosling et ses collaborateurs9
Histoire r!ente
,n mai 600G, Sun publie l ensemble des outils Java dans un 3 pacCage 4 "penJ/- sous licence libre+ :a socit "racle a acquis en 6009 l)entreprise Sun Microsystems+ "n peut dsormais voir apparaHtre le logo "racle dans les documentations de l)api Java+ :e 16 avril 6010, James Gosling, le crateur du langage de programmation Java dmissionne d "racle pour des moti!s qu il ne sou&aite pas divulguer+ 5l tait devenu le directeur tec&nologique de la division logicielle client pour "racle+
"
#u $rob%&me au $rogramme
=cessit d analyser le probl(me pour pouvoir le traduire en une solution in!ormatique (cela semble vident, mais pourtant!) avant de construire un bItiment, on !ait un plan+ $e n est pas di!!rent en in!ormatique ' conception de l algorit&me, i+e+ une rponse 8rationnelle9 au probl(me pos puis mise en Juvre tec&nique * le codage * dans un langage de programmation, dans notre cas Java+
'
1,
Mamilier
Synta#e proc&e de celle de $F$%%
11 Hafidi Imad-ENSA de Khouribga-Cours JAVA
SOr
Seul le bytecode est transmis, et 3vri!i4 par l interprteur 5mpossibilit d accder des !onctions globales ou des ressources arbitraires du syst(me
12 Hafidi Imad-ENSA de Khouribga-Cours JAVA
Gestion des e#ceptions Sources d)erreurs limites typage !ort, pas d)&ritage multiple, pas de manipulations de pointeurs, etc+ Ari!ications !aites par le compilateur !acilitant une plus grande rigueur du code
13 Hafidi Imad-ENSA de Khouribga-Cours JAVA
Java est souvent considr comme tant uniquement un langage pour crire des applets alors que c)est aussi un vrai langage de programmation Java est souvent con!ondu avec le langage de script Javascript auquel il n)est en aucune mani(re apparent
1 Hafidi Imad-ENSA de Khouribga-Cours JAVA
1"
1'
1)
Langage !om$i%
Etapes qui ont lieu avant l'excution pour un langage compil comme C++
Fichier de code Librairies
Compilation
Code objet
Edition de liens
Programme excutable
1*
Langage inter$rt
Cas de Java Avant excution Excution
Compilation javac
2,
L/AP0 de Java
Java !ournit de nombreuses librairies de classes remplissant des !onctionnalits tr(s diverses ' c)est l)A.5 Java
A.5 8Application and .rogramming 5nter!ace F5nter!ace pour la programmation d)applications9 ' ,nsemble de bibliot&(ques permettant une programmation plus aise car les !onctions deviennent indpendantes du matriel+
21
22
24
L/AP0 de Java ( )
"R trouver les in!ormations sur les classes de l A.5
sous le rpertoire ;dC1+#FdocsFapi dans le J/les documentations de l A.5 se tlc&argent et s installent 8en gnral9 dans le rpertoire dans lequel on installe ;ava+ .ar e#emple si vous aveS installer Java dans le rpertoire /'FAppsF;dC1+GF, vous dcompresser le !ic&ier Sip contenant les documentations dans ce rpertoire+ :es docs de l A.5 se trouveront alors sous ' /'FAppsF;dC1+GFdocsFapiFinde#+&tml Sur le site de Sun, on peut la retrouver &ttp'FFdocs+oracle+comF;avaseFGFdocsFapiF
2"
2)
Les !ommentaires
FT commentaire sur une ou plusieurs lignes TF
Identiques ceux existant dans le langage !
2*
:es espaces, tabulations, sauts de ligne sont autoriss+ $ela permet de prsenter un code plus lisible+
3,
31
65em$%e (1)
Fichier Bonjour.java
public class Bonjour { //Accolade dbutant la classe Bonjour public static void main(String args[]) { //Accolade dbutant la mthode main /* Pour linstant juste une instruction */ System.out.println(bonjour); } //Accolade fermant la mthode main } //Accolade fermant la classe Bonjour
La classe est lunit de base de nos programmes. Le mot cl en Java pour dfinir une classe est class
32
65em$%e (2)
Fichier Bonjour.java
33
65em$%e (3)
Fichier Bonjour.java
Une mthode peut recevoir des paramtres. Ici la mthode main reoit le paramtre args qui est un tableau de chane de caractres.
34
;ava 2on;our
Java est la mac&ine virtuelle ,#cution du bytecode =cessit de la mt&ode main, qui est le point d entre dans le programme
3"
0dentifi!ateurs (1)
"n a besoin de nommer les classes, les variables, les constantes, etc+ U on parle d identi!icateur+ :es identi!icateurs commencent par une lettre, _ ou $ Attention : Java distingue les majuscules des minuscules $onventions sur les identi!icateurs ' Si plusieurs mots sont accols, mettre une ma;uscule c&acun des mots sau! le premier+
e#emple ' uneAariable,ntiere
3'
0dentifi!ateurs (2)
$onventions sur les identi!icateurs '
:a premi(re lettre est minuscule pour les mt&odes, les attributs et les variables e#emples ' setLongueur, i, uneFenetre :es constantes sont enti(rement en ma;uscules e#emple ' LONGUEUR_MAX
3)
null package private protected public return short static super switch
synchronized this throw throws transient true try void volatile while
3*
:a taille ncessaire au stocCage de ces types est indpendante de la mac&ine+ Avantage ' portabilit 5nconvnient ' PconversionsP coOteuses
4, Hafidi Imad-ENSA de Khouribga-Cours JAVA
41
43
=otation
@+77 ou @+77D rel double prcision @+77) rel simple prcision
44
4'
4*
=otation
char a,b,c; // a,b et c sont des variables du type c&ar a='a'; // a contient la lettre )a) b= '\u0022' //b contient le caractre guillemet : " c=97; // # contient le caract(re de rang 9G ' 'a'
"
Premire alternative : on affiche Un et on sort du bloc du switch au break; Deuxime alternative : on affiche Deux et on sort du bloc du switch au break; Alternative par dfaut: on ralise une action par dfaut.
/claration
int tab [ ]; String chaines[ ];
"2
$omme en $F$%%, les indices d un tableau commencent [ 0 + /onc un tableau de taille 100 aura ses indices qui iront de 0 99+
"3
"4
Pour dclarer une variable tableau on indique le type des lments du tableau et le nom de la variable tableau suivi de [ ] on utilise new <type> [taille]; pour initialiser le tableau On peut ensuite affecter des valeurs au diffrentes cases du tableau : <nom_tableau>[indice]
Les tab%eau5 ( )
Tab1.java public class Tab1 { public static void main (String args[]) { int tab[ ] ; tab = new int[4]; tab[0]=5; tab[1]=3; tab[2]=7; tab[3]=tab[0]+tab[1]; } } Mmoire
0x0000 0x258 0 0 0 0
""
0x258
5 0 0 3 0 7 0 8
"'
")
Abc ....
Abc ....
Sous*c&aHnes
mt&ode String substring8int debut, int !in9 e#traction de la sous*c&aine depuis la position debut ;usqu la position !in non*comprise+ String str6 Y str1+substring80,09U FF str6 contient la valeur PbonP le premier caract(re d une c&aHne occupe la position 0 le deu#i(me param(tre de substring indique la position du premier caract(re que l on ne sou&aite pas copier
'1 Hafidi Imad-ENSA de Khouribga-Cours JAVA
'2
'3
La !%asse 4tring ( )
Kuelques autres mt&odes utiles
boolean starts1it&8String str9 ' pour tester si une c&aine de caract(re commence par la c&aine de caract(re str boolean ends1it&8String str9 ' pour tester si une c&aHne de caract(re se termine par la c&aine de caract(re str
String str1 Y Pbon;our PU boolean a Y str1+starts1it&8PbonP9UFFa vaut true boolean b Y str1+ends1it&8P;ourP9UFFb vaut true
'4
'
La !%asse ;at:
:es !onctions mat&matiques les plus connues sont regroupes dans la classe Mat& qui appartient au pacCage ;ava+lang les !onctions trigonomtriques les !onctions d arrondi, de valeur absolue, +++ la racine carre, la puissance, l e#ponentiel, le logarit&me, etc+ $e sont des mt&odes de classe 8static9 double calcul Y 1at%'sqrt 81at%'po+87,69 % 1at%'po+8G,699U double sqrt8double #9 ' racine carre de # double po+8double #, double y9 ' # puissance y
'"