Le langage Java
Cours Elec5 – EPU
Granet Vincent
12 octobre 2016
0-0
Bibliography
V. Granet U.N.S.A. Le langage Java 1
Part 1: Bibliography
R´ef´erences
[1] Vincent Granet and Jean-Pierre Regourd.
Aide-M´emoire de Java. Dunod, 2 edition,
2008.
[2] Bertrand Meyer. Conception et
Programmation orient´ees objet. Eyrolles, 2000.
[3] Walter Savitch. Java, an Introduction to
Computer Science and Programming.
Prentice-Hall, 1999.
[4] H.M. Deitel and P.J. Deitel. Java. How to
program. Prentice-Hall, 1998.
[5] J. Skansholm. Java From the Beginning.
Addison Wesley, 2000.
[6] R. Lafore. Data Structures and Algorithms in
Java. Wait Group Press, 1998.
[7] Vincent Granet. Algorithmique et
programmation en Java. Dunod, 2 edition,
2004.
[8] Web Java. voir http://java.sun.com.
V. Granet U.N.S.A. Le langage Java 2
Introduction
V. Granet U.N.S.A. Le langage Java 3
Part 2: Introduction
Langage `a objets vs langage proedural
crit`eres de justesse et fiabilit´e
structuration autour des actions
programmation descendante par
raffinements successifs
structuration autour des objets
erinit´e des objets par rapport aux actions
objet = attributs + m´ethodes
programme = collection d’objets
dynamiques qui sont en interaction
envoie de messages
extensibilit´e, compatibilit´e, r´eutilisabilit´e
V. Granet U.N.S.A. Le langage Java 4
Part 2: Introduction
Historique
1991, J. Gosling et Sun. Langage pour
programmer des processeurs embarqu´es
dans des appareils ´electrom´enagers
Origine du nom : Oak puis Java (kawa)
1994, Java utilis´e pour ´ecrire un navigateur
Web (futur HotJava)
Netscape inclut un interpr`ete Java dans
son navigateur
2000, Java 2 (J2SE - J2EE)
Java langage de programmation `a usage
g´en´eral + application pour le Web (applet
= little application)
Java embarqu´e : PDA, t´el´ephones mobiles
2009 Oracle rach`ete Sun
2011, Java 7
2014, Java 8 - λ-fonctions
V. Granet U.N.S.A. Le langage Java 5
Part 2: Introduction
Avantages
langage `a objets
syntaxe simple
notation issue de C
— portabilit´e
API tr`es vaste
— javadoc
interfaces graphiques (awt, Swing)
environnement jdk gratuit
V. Granet U.N.S.A. Le langage Java 6
Part 2: Introduction
Inconenients
produit industriel
temps d’ex´ecution - Interpr´etation (mais
JIT)
API tr`es (trop ?) vaste, difficile `a maˆıtriser
constructions archa¨ıques issues de C
temps r´eel
V. Granet U.N.S.A. Le langage Java 7
Part 2: Introduction
Premi`eres applications
/* ma premi`ere application Java */
c l a s s HelloWorld {
p u b l i c s t a t i c v o i d ma in ( Str ing [] ar gs ) {
System.out.println("Hello World!");
}
}// fin classe HelloWorld
/* ma p re mi `er e applet Java */
i m p o r t ja va . a wt . G ra ph ic s ;
i m p o r t java.applet.Applet;
p u b l i c c l a s s HelloWorldApplet e x t e n d s Applet {
p u b l i c v o i d paint(Graphics g) {
g.drawString("Hello World!", 5 , 25);
}
}// fin classe HelloWorldApplet
V. Granet U.N.S.A. Le langage Java 8
Part 2: Introduction
Compter les caract`eres
/* * La classe Wc ´ec rit le n omb re de ca ra ct `er es
* lu s sur l ’ e ntr ´e e s ta nd ar d
*/
i m p o r t ja va . io . *;
p u b l i c c l a s s Wc {
p u b l i c s t a t i c v o i d ma in ( St ri ng [] ar gs )
t h r o w s IOException
{
i n t nbc = 0; // compteur de caract`eres
w h i l e ( S yste m . in . read () != -1)
nbc++;
// fin de fichier de l’entr´ee standard
System . out . prin tln ( nbc );
}
}// fin classe Wc
V. Granet U.N.S.A. Le langage Java 9
Part 2: Introduction
Principe de compilation
— interpr´etation
bytecode
source
(.java)
Java
Java
compilateur Java
fichier
bytecode
(.class)
interprète
Java
Java
Java
la variable CLASSPATH
Production code `a la vol´ee (JIT)
V. Granet U.N.S.A. Le langage Java 10
Part 2: Introduction
Comment compiler et ex´ecuter ?
$ javac HelloWorld.java
$ java HelloWorld
Hello World!
$ javac HelloWorldApplet.java
$ appletviewer HelloWorldApplet.html
<applet
code="HelloWorldApplet.class" width=400 height=150>
</applet>
V. Granet U.N.S.A. Le langage Java 11
Part 2: Introduction
La documentation
javadoc
produit une documentation en html
traite les commentaires /** */
reconnaˆıt des macros :
@author
@version
@param
@return
@see
— ...
$ javadoc Wc.java
$ firefox index.html
V. Granet U.N.S.A. Le langage Java 12
Les types ´el´ementaires
V. Granet U.N.S.A. Le langage Java 13
Part 3: Les types ´el´ementaires
Les nombres
Arithm´etique classique
byte (8 bits)
short (16 bits)
int (32 bits)
long (64 bits)
123 0 98 067 0xAeF1
Byte.MIN VALUE Byte.MAX VALUE
Short.MIN VALUE Short.MAX VALUE
Integer.MIN VALUE Integer.MAX VALUE
Long.MIN VALUE Long.MAX VALUE
float (32 bits)
double (64 bits)
123.12 0. .12 98. 3.5e-7 1.5e2
Float.MIN VALUE Float.MAX VALUE
Double.MIN VALUE Double.MAX VALUE
V. Granet U.N.S.A. Le langage Java 14
Part 3: Les types ´el´ementaires
Les bool´eens
boolean
false et true
op´erateurs :
!la n´egation
|la disjonction
^la disjonction exclusive
&la conjection
|| la disjonction conditionnelle
&& la conjection conditionnelle
i f (i < n && t [i ] ) {
....
V. Granet U.N.S.A. Le langage Java 15
Part 3: Les types ´el´ementaires
Les caract`eres
char
jeu de caract`eres Unicode sur 16 bits
www.unicode.org
constantes d´enot´ees en apostrophes (e.g.
’a’,’4’,’ ’, etc.)
caract`eres sp´eciaux :
\b \f \n \r \t \\ \’
valeur hexad´ecimale : \uxxxx (e.g. \u0041)
int nbEl`eves;
double ;
V. Granet U.N.S.A. Le langage Java 16
Part 3: Les types ´el´ementaires
Les conteneurs
Les valeurs des types ´el´ementaires ne sont
pas des objets (au sens de la
programmation objet)
Byte Short Integer Long
Float Double
Boolean
Character
mais conversions implicites (jdk1.5)
Integer i = 5;
c h a r c = new Character(’ z ’);
V. Granet U.N.S.A. Le langage Java 17
Les ´enonc´es
V. Granet U.N.S.A. Le langage Java 18
Part 4: Les ´enonc´es
Les ´enonc´es conditionnels
mˆeme s´emantique que C
if
switch
V. Granet U.N.S.A. Le langage Java 19
1 / 56 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !