package dupont.exercices; import java.awt.*;
Documentation de la classe ou de l'interface
(commentaires /** ... */) |
cf. § H.3 |
| Déclaration de la classe ou de l'interface | Exemple : public class Banque |
Commentaires de programmation (/* ... */),
si nécessaire, c'est-à-dire commentaires généraux sur
la mise en oeuvre de la classe, qui n'ont pas
leur place dans la documentation |
cf. § H.3 |
| Déclaration des variables de classe (static) | D'abord les public, puis les protected, puis les private |
| Déclaration des variables d'instance | D'abord les public, puis les protected, puis les private |
| Constructeurs | |
| Méthodes | Les regrouper de préférence par grandes fonctionnalités, pour rendre le tout le plus lisible possible |
class Test extends Object {
int var1;
int var2;
Test(int i, int j) {
var1 = i;
var2 = j;
}
int methodeVide() {}
void calculs() {
...
if (var1 > 0) {
var2--;
...
}
...
while (var1 != var2) {
...
}
}
...
}
Éviter les lignes trop longues (plus de 80 caractères), et
souvenez-vous que vous pouvez toujours écrire une expression
très longue sur plusieurs lignes. Dans ce cas, on cherchera à
les couper aux endroits qui laissent la plus grande
lisibilité :
fonc(expressionTresLongue1, expressionTresLongue2, expressionTresLongue3,
expressionTresLongue4, expressionTresLongue5);
var = fonc1(expressionTresLongue1,
fonc2(expressionTresLongue2,
expressionTresLongue3));
impotAPayer = ageDuCapitaine * (longueur + largeur - hauteur)
+ 4 * tailleChemise;
Pour les instructions if, s'il faut présenter la
condition sur plusieurs lignes, indenter de 8 espaces au lieu
de 4 pour que l'instruction qui suit reste lisible :
if ((condition1 && condition2)
|| (condition3 && condition4)
|| (condition5 && condition6)) {
faireQuelqueChose() // reste lisible
...
}
/* * Ceci est un bloc de commentaire. * Il peut comporter plusieurs lignes, chacune commençant par une * étoile entourée de deux espaces, pour la lisibilité de l'ensemble */
if (condition) {
/* Traiter le cas où tout va bien */
....
}
/* ... */ ou // ..., la deuxième
servant en outre à "masquer" une partie du
code en cours de développement ou de déboguage. Exemples :
if (a == 2) {
return TRUE; /* Cas particulier */
}
else if (toto > 1) {
// Permuter les deux valeurs
...
}
else
return FALSE; // Explications
// if (tata > 1) {
//
// // Trois valeurs à permuter
// ...
//}
//else
// return FALSE;
/** et
se termine par */.
Exemples de commentaires de documentation :
/**
* Cette classe est une spécialisation de la classe générale des clients.
* @author Jean Lingénieur
* @see Client
*/
class ClientPrivilegie extends Client
{
...
}
/**
* Rend la somme TTC à payer après application de la TVA et d'une
* réduction éventuelle.
* @param sommeHT le montant hors taxes et avant réduction de la commande
* @return montant TTC net à payer
*/
double sommeTTC(double sommeHT) {
...
}
int total;
...
fonction() {
if (condition) {
int total; // à éviter !!
...
}
...
}
Mettez une seule instruction par ligne ; évitez par exemple :
compte++; valeur -= compte; // à éviter !!N'utilisez des parenthèses avec l'instruction return que lorsqu'elles clarifient la lecture du code.
| Type | Règles de nommage | Exemples |
| Classes | La première lettre doit être une majuscule. Éviter les acronymes, choisir des noms simples et descriptifs. | class Image; class ClientPrivilégié; |
| Interfaces | Mêmes règles que pour les classes | interface ImageAccesDirect; interface Stockage; |
| Méthodes | Les noms de méthodes (fonctions) doivent refléter une action. Choisir de préférence des verbes. Première lettre en minuscules. | afficher(); getValue(); setValue(); |
| Variables | Première lettre en minuscules. Noms relativement courts mais descriptifs (mnémoniques). Éviter les noms à une lettre, sauf pour compteurs internes et variables temporaires. | int i; float largeur; String nomDuCapitaine; |
| Constantes | En majuscules. Le séparateur devient donc forcément un souligné. | final static int VAL_MAX = 999; |