Documente Academic
Documente Profesional
Documente Cultură
et
E xpressions
S tructures
Dclarations de variables
de
C ontrle
Blocs dinstructions
Une variable stocke une valeur de type simple ou de type rfrence (vers un
Description dun bloc
tableau ou un objet). Elle doit tre dclare et peut tre initialise dans le mme
Groupement
dinstructions
entour daccolades
temps. Plusieurs variables de mme type peuvent tre dclares ensemble.
dont les instructions sont indentes. La porte
type nomVariable [= valeur];
(lutilisation possible) dune variable commence
lendroit o elle est dclare et finit la fin du bloc
type nomVar1 [=val], nomVar2 [=val] ... ;
contenant sa dclaration.
Fonctionnement Gnral
Syntaxe
{
instruction;
...
}
Type
Code
Valeur
\t
\\
la ligne
Tabulation
Antislash
\b
Instructions Conditionnelles
Listes des oprateurs avec les types possibles des oprandes du rsultat
switch
Expressions et oprateurs
Une expression est une suite doprations impliquant variables, littraux et
appels de mthodes. Son type dpend des oprations et des oprandes.
Syntaxe
if(condition) {
instruction;
...
} else {
instruction;
...
}
switch(variable) {
case val1:
...
break;
case val2:val3:
...
default:
...
}
Description
Type Oprandes Type Resultat
type[][] tab = new type[nbLignes][nbColonnes];
Oprations arithmtiques
int, double
int, double
tab[i][j] = expression;
%
Reste de la division
int, double
int, double
Un
tableau
plusieurs dimensions est un tableau de tableaux. Il est donc
==, !=
boolean
galit, ingalit
tout
possible de dclarer un tableau ayant des lignes de tailles diffrentes. Exemple
<, <=, >, >=
boolean
Comparaison
int, double, char
Une boucle est lexcution rpte (itration) dun bloc de code selon une dun tableau triangulaire:
&&, ||
boolean
boolean
Et, ou (logique)
condition. Le tableau suivant rpertorie les quatre boucles de JAVA. Pour des
type[][] tab = new type[nbLignes][];
!
boolean
boolean
Non (logique)
exemples, voir laffichage des lments dun tableau la page suivante.
for(int i=0; i<tab.length; i++) {
&, |, ^
int
int
Oprations bit bit (et/ou/xor)
tab[i] = new type[i+1];
Description des boucles
Syntaxe
Dcalage
de
bit
sign
gauche
}
<<, >>, >>>
int
int
while(condition) {
et droite et non sign droite
Excution
dun
bloc
tant
que
condition est instruction;
^
int
int
Complment bit bit
...
true.
}
+, -, *, /
Syntaxe de laffectation
Le type de lexpression doit tre le mme que celui de la variable sinon il faut
un transtypage, cest--dire une conversion de type. Dans de rares cas, il peut
tre implicite.
(type) expression
Syntaxe du transtypage
var++;
var = var * q;
var /= q;
var = var + 1;
var--;
c c c
var *= q;
var += q;
for
Affectation et transtypage
do while
while
Boucles
for each
Logique
Math
Oprateurs
Binaire
Une instruction conditionnelle est un choix entre plusieurs blocs de code selon Une case dun tableau est une variable laquelle on accde avec un indice. La
numrotation des cases commence 0. La valeur length contient le nombre
une condition.
de cases dun tableau.
if
Description
Formes des litraux
1, -3, -26, 2OO8975
Entiers signs sur 32 bits
123.4
1.234e2
double Nombres virgule flottante double prcision
-26.0
-2.6e1
Notation scientifique possible
boolean Boolen
true, false
char
a, A
\u0108
Caractre
int
T ableaux
Une variable ne stocke pas un tableau mais une rfrence dessus. Linstruction
System.out.println( tab ); affiche donc uniquement la rfrence et non
les lments du tableau. Pour afficher les lments, on peut utiliser une boucle
} while(condition);
ou la mthode toString de la classe Arrays permettant la conversion dun
Excution dun bloc tant que cond est true. for(init; cond; maj) { tableau en String.
En gnral, la condition repose sur la variable instruction;
Affichage avec une boucle for
Affichage avec une boucle while
initialise lentre de la boucle (init) puis ...
String s=;
}
mise jour chaque itration (maj).
do {
String s=;
for(int i=0; i<tab.length; i++) {
s = s+tab[i].toString()+ ;
}
System.out.println(s);
String s= ;
for(Object t: tab) {
s = s+t.toString()+ ;
}
System.out.println(s);
int i=0;
while(i<tab.length) {
s = s+tab[i].toString()+ ;
i++;
}
System.out.println(s);
P rogrammation O bjet
Constructeur et instanciation
H irarchie
de
C lasses
Hritage
Une classe est un moule permettant de crer des objets (instances) dont le
type est une classe. Elle inclut la dclaration dattributs, de constructeurs et de
mthodes. Les modificateurs prcdant le mot clef class sont des proprites.
La visibilit restreint laccs et final rend la classe non drivable (voir hritage).
Un constructeur permet dinitialiser des instances. Cest une mthode portant Une classe hrite dune et une seule classe. Par dfaut cest de la classe
le nom de la classe et ne renvoyant rien (pas de void). Sa premire instruction Object. Il est possible den spcifier une autre avec extends :
peut tre super(...) pour appeler un constructeur dune classe mre (voir
class ClasseFille extends ClasseMere { ...
hritage) ou this(...) pour appeler un autre constructeur de la classe.
Une classe fille hrite de tout attribut et mthode de sa classe mre. Lhritage
[visibilit] [final] class NomClasse {
[visibilit] NomClasse( type param... ) {
est transitif : attributs et mthodes se propagent la descendance.
...
[super(...)|this(...)]
instruction;
linstanciation dune classe, les attributs hrits de la classe mre sont le plus
}
...
souvent initialiss en appelant un constructeur de la classe mre. Il est dsign
}
par le mot clef super suivi des paramtres. Son appel est alors la premire
Visibilit
Classe, attribut ou mthode accessible depuis
instruction du constructeur.
Pour
crer
un
objet
(instanciation),
on
utilise
new
suivi
du
constructeur
choisi
la classe uniquement (autoris uniquement pour les classes de haut
private
public ClasseFille( ... ) {
pour linitialisation. La rfrence sur lobjet peut tre stocke dans une variable.
niveau, les attributs et les mthodes)
non spcifie
protected
public
super( ... );
instruction;
...
}
Un objet dune classe fille a toutes les caractristiques dfinies par sa classe
Loprateur dgalit == teste si deux expressions sont gales. Pour les objets
mre, il peut donc tre utilis partout o un objet dune classe mre est attendu.
Attributs
on teste donc si deux rfrences dsignent (physiquement) le mme objet.
ClasseMere objet = new ClasseFille( ... ) ;
Un attribut est une caractristique dun objet. Il est dclar en dbut de classe. Pour lgalit logique, on utilise la mthode equals de la classe Object. Sa
surcharge
dfinit
le
mode
de
comparaison
des
instances
dune
classe.
Dans une classe fille, il est possible de surcharger (redfinir) le corps dune
[visibilit] [static] [final] type nomAttribut ;
public boolean equals(Object obj) { ... }
mthode hrite de sa classe mre. Si une mthode est surcharge, lors de
Modificateur
Proprit de lattribut
son appel cest la version dfinie dans la classe fille qui est utilise.
final
static
Attribut constant
Un attribut static est associ la classe plutt quaux objets. Il a
alors une valeur commune pour tous les objets de la classe.
public class Complexe {
private double rho, theta ;
public static final Complexe UN = new Complexe(1,0);
public static final Complexe I = new Complexe(1,Math.PI/2);
Exemple de classe
Mthodes
instructions ;
Modificateur
final
static
Proprit de la mthode
Mthode non surchargeable (voir hritage)
Mthode de classe. Elle ne peut utilser que des attributs static.
Le mot clef return met fin lexcution de la mthode. Si une valeur de retour
est attendue, elle doit tre indique aprs return.
Lappel dune mthode de classe (static) est prfix par le nom de la classe.
NomClasse.nomMethode( val1, val2... ) ;
Mthode Main
Lappel dune mthode dinstance (abscence du modificateur static) est return c.rho==this.rho && c.theta==this.theta;
prfix par un objet. Dans le corps de celle-ci, cet objet est dsign par this. }
nomObjet.nomMethode( val1, val2... ) ;
...
[visibilit] [static] type nomMethode( ... ) ;
...
Une classe peut implmenter une ou plusieurs interfaces. Elle doit implmenter
toutes les mthodes dfinies dans ses interfaces ( moins dtre abstraite).
C lasses P aramtres
API
Utilisation
La syntaxe pour la dclaration dune classe paramtre par un seul type (il est
possible de la paramtrer par plusieurs, exemple plus bas) est :
Structuration en package
java.util
java.io
java.nio
java.net
java.security
java.awt
javax.swing
java.lang.String
Cette classe reprsente les chanes de caractres. Tout texte entre guillemets ArrayList<E> est une implmentation de List<E> construite sur des tableaux.
est une chane. Une chane peut contenir des caractres spciaux (Ex. \n). Laccs aux lments est rapide partir de leur indice. Suppression et Insertion
sont plus coteuses.
On concatne deux chanes avec +.
HashSet<E> est une implmentation de Set<E> construite sur une table de
String s = une chaine + une autre\n ;
hachage. Accs, insertion et suppression sont en temps constant.
Une chane peut tre concatne avec une valeur de type simple. La valeur
est automatiquement convertie en String. Une chane peut galement tre
concatne avec un objet. Dans ce cas, lobjet est converti en String par
Map
appel implicite la mthode public String toString( ). Cette dernire
Linterface java.util.Map<K,V> est utilise pour les tableaux dassociation
est dfinie dans la classe Object et peut tre surcharge.
clef-valeur (dictionnaires). On insre dans la table une valeur en lassociant
Une chane nest pas modifiable. Une variable peut donc rfrencer un nouvel une clef. Une clef ne peut tre associe qu une seule valeur. Pour retrouver
objet String mais pas le modifier en soi.
une valeur on utilise la clef. La principale implmentation est HashMap<K,V>.
Liste de certaines mthodes dfinies dans Map
java.lang.Math et java.util.Arrays
Les classes Math et Arrays regroupent des constantes et des mthodes de
classe pour les mathmatiques et la manipulation de tableaux.
Mthode
abs, sqrt, pow
Arrays
Rle
Structures de donnes
Oprations dentre/sortie de base
Oprations sur des nombres prcisions arbitraire
Oprations dentre/sortie haute performance
Oprations rseau, sockets, ...
Cryptographie
Primitives graphiques
Package pour GUI indpendante de la plateforme
java.math
Math
D onnes A vances
JAVA permet de structurer les classes en ensembles appels packages afin de Linterface java.util.Collection<E> regroupe les mthodes gnriques
gagner en modularit. Les classes contenues dans un fichier appartiennent au pour la gestion de structures de donnes. Elle hrite de Iterable<E>. Les
package par defaut moins den indiquer un autre en premire ligne du fichier. structures limplmentant peuvent tre parcourues avec une boucle for each.
package nomPackage;
Les interfaces List<E> et Set<E> hritent de Collection<E>. Les classes qui les
implmentent sont respectivement des listes et des ensembles.
Lorsque lon utilise une classe donne, le compilateur la recherche dans le
package par dfaut. Si elle appartient un autre package il est ncessaire de
Liste (non exaustive) des mthodes dfinies dans Collection et List
limporter au dbut du fichier. On peut importer toutes les classes dun package
Mthode
Description
avec *. Ceci nimporte pas les classes des sous-packages.
private E nomAttribut ;
de
Collection<E>
Dfinition
S tructures
List<E>
C lasses U tiles
Set<E>
et
toString()
sort(type[])
binarySearch(type[], type)
copyOf(type[])
Description
Valeur absolue, racine carr et puissance
Fonctions trigonomtriques
Logarithme nprien, en base 10 et exponentiel
Partie entire infrieure et suprieure dune valeur
Minimum et maximum de deux valeurs
Conversion dun tableau en chane de caractres
Trie dun tableau par ordre croissant des valeurs
Renvoie lindice dune valeur dans un tableau tri
Renvoie une copie dun tableau
void clear()
Mthode
boolean containsKey(Object k)
boolean containsValue(Object v)
V get(Object k)
boolean isEmpty( )
Set<K> keySet()
V put(K k, V v)
V remove(Object k)
int size()
Collection<V> values()
Description
Supprime toutes les associations dune table
Renvoie true si la table contient la clef k
Renvoie true si la table contient la valeur v
Renvoie la valeur associ la clef k ou null
Renvoie true si la liste est vide
Renvoie un ensemble contenant les clefs
Insre lassociation de la clef k et de la valeur
v. Renvoie la prcdente valeur associe k
ou null.
Supprime lassociation avec la clef k. Renvoie
la valeur qui lui tait associe ou null
Renvoie le nombre dassociations
Renvoie une collection des valeurs
E xceptions
C ommentaires
et
J avadoc
Commentaires
Les exceptions sont des objets hritant de throwable et utililises pour grer Deux syntaxes sont possibles pour les commentaires. La premire permet des
les cas derreurs dun programme. Un bloc protg peut attraper les exceptions commentaire sur une ligne, la seconde sur plusieurs lignes.
lances (dclenches) par les instructions du bloc et les grer.
// Commentaire dune ligne
Description
try{...} : code protg
Certains objets (comme les flux) doivent tre referms aprs leur utilisation.
Lever une exception peut interompre le code qui tait destin les refermer.
Il est possible de refermer automatiquement les objets implmentant
AutoCloseable en les dclarant entre paranthses juste aprs try.
try(AutoCloseableClass a=...) {
...
} catch ...
Plutt que traiter localement une exception, il est possible de dlguer cette
tche la mthode appelant la mthode courante. On dclare la mthode
courante comme succeptible de lever certains types dexceptions. Si le cas
se prsente, lexception leve est relaye la mthode appelante. La mthode
courante prend fin.
type methode(...) throws Excep1, Excep2, ... { ... }
/* Commentaire de plusieurs
lignes... */
Javadoc
Javadoc est un programme qui permet dextraire la documentation dune
bibliothque (API) depuis les commentaires dun programme. Il est ncessaire
dutiliser une syntaxe prcise dans les commentaires.
Le fonctionnement est le suivant : on fait prcder chaque dclaration de classe,
dattribut et de mthode dun commentaire sur plusieurs lignes dbutant par
/**. Ce commentaire peut inclure des balises donnant des prcisions.
Exceptions courantes
Exception
Cause
Accs
une
mthode
ou
un attribut depuis une variable
NullPointerException
rfrenant null.
IndexOutOfBoundException Accs une case nexistant pas dans un tableau.
Transtypage dun objet dans un type auquel il nappartient
ClassCastException
pas.
Description
Description dun paramtre dune mthode
Description de la valeur de retour dune mthode
Indique les types dexceptions pouvant tre levs
Nom de lauteur
Numero de la version
Renvoie vers une mthode, classe, ...
Date dapparition
Indique de ne plus utiliser cet lment et un commentaire
P ropos
Memento JAVA, version 3, septembre 2014.
Ce memento est un outil daide la programmation. Il tente de regrouper la
syntaxe des principaux concepts de JAVA. Il na pas vocation remplacer un
cours.
JAVA 7
Ccile Hardebolle
Christophe Jacquet
Marc-Antoine Weisser