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; |