IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

commentaires sur mon programme + allocation


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Rniamo
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    508
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 508
    Par défaut commentaires sur mon programme + allocation
    bonjour,

    je me lance juste dans le java et j'aimerais des commentaire sur un petit code que je viens d'écrire :

    http://rapidshare.com/files/99457180/ChgBase.zip.html

    Je me demande si je suis dans l'esprit java ou plus proche du C (langage que j'ai pas mal pratiqué).

    Enfin je me pose la question de l'allocation dynamique en java : possible ou pas ?

    D'avance merci.

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Commentaires vites fait

    1) Toujours travailler avec des packages (directive package en début de classe), çà permet de garder le code clair. D'ailleurs, pas certains que toutes les jvm actuelles acceptent encore de compiler du code n'ayant pas de directive "package" (sun essaie de défaire les gens de cette mauvaise habitude)

    2) Allocation dynamique: ton code répond à la question, la présence de "new" montre bien que tu crée dynamiquement tes données

    3) Convention: un nom de méthode ou de propriété commence toujours avec une minuscule en java (lowerCamelCase), c'est une convention que tu pourra remarqué appliquée partout dans les librairies java que tu peux trouver en ligne

    4) Méthode statique: toutes tes méthode dans ChgBase sont statique, il n'y a aucune problème en soit puisque ce sont des méthode n'ayant pas besoin de l'état de l'objet. Par contre, par convention aussi, on utilise pas un nom d'instance pour accéder à une méthode statique, çà évite la confusion. Donc dans ton main, remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println(cb.Bdep2Barr(c,10,1));
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println(ChgBase.Bdep2Barr(c,10,1));
    Tu notera là l'intérêt de commencer les noms de classes par une majuscule et les noms de méthodes / variables par des minuscule. Juste avec la première lettre et cette convention on sait qu'on a affaire à une classe et pas une instance. (cb, x, trucMuch et bidule sont des instances, Machin et Bazar sont des classes, yopLa() et faitCela() sont des méthode. Pas besoin de lire beaucoup de code pour le savoir, vivent les conventions ^^)

    5) les static final: Les propriétés finale d'une classe sont pas convention toute en majuscules avec les éléments séparés par des _ Dans ton cas, il serait mieux que BMAX soit remplacé par B_MAX (note certains pourraient argumenter là dessus en disant que BMAX est aussi correct), voir même par BASE_MAX qui est plus explicite

    6) ton exception, pour la propreté, dans son nom de classe devrait porter le nom "Exception", histoire que en voyant le fichier on sait ce que c'est. Exemple: public class ConvertionException extends Exception

    7) Souvent, pour les Exception, on crée aussi des constructeur qui acceptent un "message" et éventuellement (çà dépend du type d'Exception) une cause, que tu peux passer au constructeur parent:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public ConvertionException(String message, Throwable cause){super(message,cause);}
    Le message est important pour les autres développeur, histoire d'avoir une idée de ce qui foire quand on reçois une exception. La cause est importante si tu veux pouvoir déclencher ton Exception à cause d'une autre Exception

  3. #3
    Membre éclairé Avatar de Rniamo
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    508
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 508
    Par défaut
    merci pour toutes ces bonnes remarques.

    J'ai cependant toujours pas compris l'histoire des allocations dynamiques : en gros je veux créer un tableau de LxH avec L et H des variables, comment je fait ?

    Enfin dernière question, comment fait-on pour renvoyer plusieurs valeurs dans une méthode sans tableau ?

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par Rniamo Voir le message
    merci pour toutes ces bonnes remarques.

    J'ai cependant toujours pas compris l'histoire des allocations dynamiques : en gros je veux créer un tableau de LxH avec L et H des variables, comment je fait ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    String[][] x;
    x=new String[][L];
    for (int i = 0; i < L; i++)
        x[i] = new String[H];
    Note que comme java utilise des tableaux de tableaux, il est facile de réaliser des matrices triangulaires ou autres joyeuseté non rectangulaire

    Enfin dernière question, comment fait-on pour renvoyer plusieurs valeurs dans une méthode sans tableau ?
    En les mettant dans un objet que tu crée pour çà. Si t'as méthode à plusieurs valeurs de retours, ces valeurs sont liée et probablement aussi utilisée en entrée à d'autres méthodes. Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        public class ValeurComplexe {
            double frequence;
            String message;        
            public ValeurComplexe(frequence,message){
                //...
            }
            // getters et setters
       }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        public ValeurComplexe creerValeur(float parameter1, float parameter2){
            // .....
       }
    Par exemple, la librairie awt utilise des objet "Point" lorsque qu'elle doit manipuler des paires x,y (autant en paramètres de retours qu'en paramêtres d'entrée).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Vos commentaires sur mon UC
    Par Aero11 dans le forum Cas d'utilisation
    Réponses: 1
    Dernier message: 12/09/2008, 08h30
  2. commentaire sur mon porte folio en ligne
    Par goldor dans le forum Mon site
    Réponses: 7
    Dernier message: 08/08/2008, 02h31
  3. question sur mon programme
    Par PHPkoala dans le forum Réseau
    Réponses: 5
    Dernier message: 01/06/2007, 23h40
  4. votre avis sur mon programme
    Par warubi dans le forum C++
    Réponses: 6
    Dernier message: 19/02/2007, 09h47
  5. Commentaires sur mon site
    Par Invité dans le forum Mon site
    Réponses: 12
    Dernier message: 08/09/2006, 23h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo