Vous êtes sur la page 1sur 6

Iremia, R.

Courdier

Chapitre 3 : Conventions de codage

Conventions de codage

Java
© Rémy Courdier (révision M. GANGAT) 1996 - 2003 - Conventions - Version du cours 3.0 1

Sommaire

Conventions de codage Java


Intérêt
Principales Conventions
Intérêt
JavaDoc 80% de la durée de vie d’un logiciel est
consacrée à la maintenance
Références

Un logiciel est rarement maintenu par le


même auteur tout au long de sa vie

Les conventions de codage améliorent


la lisibilité du code, permettant de
comprendre plus rapidement du
nouveau code
Références
Code Conventions for the JavaTM Programming Language
http://java.sun.com/docs/codeconv/

© Rémy Courdier (révision M. GANGAT) 1996 - 2003 - Conventions - Version du cours 3.0 2

14/02/2003 1
Iremia, R.Courdier

Principales conventions de nommage

Organisation des fichiers


Le fichier .java doit avoir le même nom que la classe public qu’il décrit
1 fichier .java par classe, même pour celle contenant le main()
exception pour les inner classes

Eléments de base
paquetages minuscules
classes MajusculePourLaPremiereLettreDeChaqueMot
terminé par Imp (si besoin de la distinguer d’une interface)
interface MajusculePourLaPremiereLettreDeChaqueMot
terminé par ifc (si besoin de la distinguer d’une classe)
méthodes minusculePourLaPremiereLettre
constantes MAJUSCULES_AVEC_SOULIGNE
variables minusculePourLaPremiereLettre

© Rémy Courdier (révision M. GANGAT) 1996 - 2003 - Conventions - Version du cours 3.0 3

Tags de la javadoc

Documentation des ‘ Packages ’ :


@see, {l@link}, @since

Documentation des Classes et Interfaces:


@see, {l@link}, @since, @depredicated, @author, @version

Documentation des Attributs :


@see, {l@link}, @since, @depredicated, @serial,
@serialField

Documentation des Méthodes :


@see, {l@link}, @since, @depredicated, @param, @return,
@throws (@exception), @serialData

© Rémy Courdier (révision M. GANGAT) 1996 - 2003 - Conventions - Version du cours 3.0 4

14/02/2003 2
Iremia, R.Courdier

Exemple de codage pour une classe

Pour une classe

/** classe <NomDeClasse>.java


* Définition de …
* <pre>
* Date Auteur Libelle
* -------------------------------------------------
* 1/3/98 R.Courdier creation
* 1/4/98 R.Courdier modif. de la classe maClasse
* </pre>
* @author R.Courdier
* @version 1.0 3/4/98
* @see awt.Button
*/
class <nomDeClasse> {
...
}

© Rémy Courdier (révision M. GANGAT) 1996 - 2003 - Conventions - Version du cours 3.0 5

Exemple de codage pour une méthode

Pour une méthode

/**
* Returns the character at the specified index. An index
* ranges from <code>0</code> to <code>length() -</code>.
*
* @param index the index of the desired character.
* @return the desired character.
* @exception StringIndexOutOfRangeException
* if the index is not in the range <code>0</code>
* to <code>length()-1</code>.
* @see java.lang.Character#charValue()
*/
public char charAt(int index) {
...
}

© Rémy Courdier (révision M. GANGAT) 1996 - 2003 - Conventions - Version du cours 3.0 6

14/02/2003 3
Iremia, R.Courdier

La commande Javadoc
javadoc -sourcepath /jdk/src/classes /* Path for source files */
-d /jdk/build/api /* Destination directory */
-use /* Adds "Use" files */
-splitIndex /* Splits index A-Z */
-windowtitle $(WINDOWTITLE) /* Adds a window title */
-doctitle $(DOCTITLE) /* Adds a doc title */
-header $(HEADER) /* Adds running header text */
-bottom $(BOTTOM) /* Adds text at bottom */
-group $(GROUPCORE) /* Core heading for overview page */
-group $(GROUPEXT) /* Ext heading for overview page */
-overview overview-core.html /* For overview text */
-J-Xmx180m /* For 180MB memory */
java.lang java.lang.reflect /* Packages to document */
java.util java.io java.net

WINDOWTITLE = 'Java Platform 1.2 Final API Specification'


DOCTITLE = 'Java<sup><font size="-2">TM</font></sup> Platform 1.2 Final API'
HEADER = '<b>Java Platform 1.2</b><br><font size="-1">Final</font>'
BOTTOM = '<font size="-1">Java is a trademark or registered trademark
of Sun Microsystems, Inc.<br>Copyright … font>'
GROUPCORE = '"Core Packages" "java.*:com.sun.java.*:org.omg.*"
GROUPEXT = '"Extension Packages" "javax.*"'

© Rémy Courdier (révision M. GANGAT) 1996 - 2003 - Conventions - Version du cours 3.0 7

Principales Conventions sur les fichiers

Exemple de Javadoc
généré avec le jdk 1.2

© Rémy Courdier (révision M. GANGAT) 1996 - 2003 - Conventions - Version du cours 3.0 8

14/02/2003 4
Iremia, R.Courdier

Convention de nommage des méthodes

Méthodes spécifiques…
méthode de conversion retournant un objet de type X :
X toX(...);
accesseurs donnant la valeur d’un attribut y de type X :
X getY()
accesseurs modifiant la valeur d’un attribut y de type X :
void setY(X val)

© Rémy Courdier (révision M. GANGAT) 1996 - 2003 - Conventions - Version du cours 3.0 9

100 % Pure Java

Programme de certification de SUN garantissant la


portabilité d'une application Java :
« Write Once, Run Anywhere »

Assurance : Phase de tests réalisés par le


développeur à l’aide de l ’outil « JavaPureCheck »
qui identifie les problèmes de portabilité.

Vérification : Phase de tests approfondis réalisés par


un organisme indépendant qui peut délivrer la
certification.

© Rémy Courdier (révision M. GANGAT) 1996 - 2003 - Conventions - Version du cours 3.0 10

14/02/2003 5
Iremia, R.Courdier

Organigramme de certification
de Code 100 % Pure Java

© Rémy Courdier (révision M. GANGAT) 1996 - 2003 - Conventions - Version du cours 3.0 11

14/02/2003 6