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 :

Utilisation de l'ellipse - + conseils - + classes exemples


Sujet :

avec Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 108
    Points : 52
    Points
    52
    Par défaut Utilisation de l'ellipse - + conseils - + classes exemples
    Bonjour à tous!

    Je suis déjà un peu avancé en Java mais peut-on dire vraiment cela? J'ai plutôt l'impression que je ne serai jamais avancé, tant il y a de la complexité en Java. J'ai beau maîtriser les bases, l'héritage, les classes, l'encapsulation... Je suis loin d'avoir tout exploré et je le ressens quand je dois faire des exercices (jeu de bataille, simulation ascenseurs).

    Je pêche surtout dans certains points (certains domaines que je ne maîtrise pas, d'autres dont je ne vois pas encore l'utilité).

    D'abord l'ellipse. Est ce que vous l'utilisez uniquement dans les méthodes du style "je permets à l'utilisateur d'utiliser ma méthode avec autant d'arguments qu'ils veulent" (somme, moyenne, min-max, ...) ou bien également "au cas où l'utilisateur rentre des arguments que ma méthode/ma classe ne permet pas"?

    Est ce qu'il faut envisager tous les cas de figure lorsqu'on fait une classe? (si ma classe définit une Personne avec Nom et Prénom et que l'utilisateur utilise ma classe avec "Personne(10, "Paul", 30, 20), est ce que je dois l'envisager ou bien me dire simplement que je définis: 1- un constructeur avec Nom-Prénom, un constructeur vide où je demande à l'utilisateur le Nom et le Prénom, et les méthodes strictes?
    En dehors d'une utilisation "je permets à l'utilisateur d'utiliser ma méthode avec 3000 entiers", je ne vois pas à quoi peut aussi servir une méthode ellipse

    Pour ma bonne pratique j'ai déjà défini quelques règles (surtout en examen ou pour des exercices)
    - D'abord réfléchir à ce qu'on demande, et lire entre les lignes, ne pas hésiter à noter/décomposer le pb
    - Avant toute instruction, commencer par un ;, avant tout codage dans une classe, commencer par définir le nom de la classe, ses arguments et les accolades.
    - Avant tout if, mettre le () et les accolades, etc pour else, for, ....
    (en fait pourquoi, parce que j'ai souvent remarqué que je perdais un temps fou à me dire "il y a une erreur, où est-elle) alors que j'avais oublié une accolade, un ; ou quelque chose du genre.


    Avez-vous d'autres conseils pour moi?


    Pour finir, avez-vous des classes exemples à me proposer, pour voir un peu comment on peut coder, et qui puisse me permettre de m'améliorer voire de comprendre?
    Exemple, je n'ai pas encore conscience de ce que peut apporter les threads, les interfaces, si dans un programme complexe comment on implémente les exceptions...



    Merci

  2. #2
    Membre chevronné
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Points : 1 993
    Points
    1 993
    Par défaut
    Citation Envoyé par ZoliveR Voir le message
    D'abord l'ellipse. Est ce que vous l'utilisez uniquement dans les méthodes du style "je permets à l'utilisateur d'utiliser ma méthode avec autant d'arguments qu'ils veulent" (somme, moyenne, min-max, ...) ou bien également "au cas où l'utilisateur rentre des arguments que ma méthode/ma classe ne permet pas"?
    Si tu ne veux pas avoir de problème, il faut voir ça comme une simplification de l'écriture : au lieu de passer une liste (objet que tu dois instancier), tu passes directement la liste des paramètres. Mais tous les paramètres doivent avoir le même sens !

    Petit exemple : tu fais un programme qui fait la somme des entiers passés en paramètre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public int somme(int... entier){
         int total = 0;
         for (int e : entier){
              total += e;
         }
         return total;
    }
    L'avantage, c'est que tu n'es pas obligé d'avoir 12 signatures de méthodes différentes pour pouvoir faire des sommes !
    Du genre ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public int somme(int i1, int i2){...}
    public int somme(int i1, int i2, int i3){...}
    public int somme(int i1, int i2, int i3, int i4){...}
    ....
    public int somme(int i1, int i2, int i3, int i4, int i5, int i6, int i7, int i8, int i9){...}
    ...
    Par contre, la nature des éléments passés doivent être cohérents : tout ce que tu passes avec la notation ... doit être au final utilisé comme une collection/liste d'éléments.


    Est ce qu'il faut envisager tous les cas de figure lorsqu'on fait une classe? (si ma classe définit une Personne avec Nom et Prénom et que l'utilisateur utilise ma classe avec "Personne(10, "Paul", 30, 20), est ce que je dois l'envisager ou bien me dire simplement que je définis: 1- un constructeur avec Nom-Prénom, un constructeur vide où je demande à l'utilisateur le Nom et le Prénom, et les méthodes strictes?
    Il est bon d'avoir un constructeur sans paramètres parce que ça facilite la vie de plein de chose (dont la reflexion et l'invocation de méthodes), mais il y a des cas où tu veux que tout soit initialisé à la base, tout dépend de comment tes objets fonctionnent.

    En dehors d'une utilisation "je permets à l'utilisateur d'utiliser ma méthode avec 3000 entiers", je ne vois pas à quoi peut aussi servir une méthode ellipse
    Crois-moi, j'ai vu des tas de codes avec plein de signatures différentes qui auraient pu être réduites à une seule méthode avec ellipse...


    Pour ma bonne pratique j'ai déjà défini quelques règles (surtout en examen ou pour des exercices)
    - D'abord réfléchir à ce qu'on demande, et lire entre les lignes, ne pas hésiter à noter/décomposer le pb
    - Avant toute instruction, commencer par un ;, avant tout codage dans une classe, commencer par définir le nom de la classe, ses arguments et les accolades.
    - Avant tout if, mettre le () et les accolades, etc pour else, for, ....
    (en fait pourquoi, parce que j'ai souvent remarqué que je perdais un temps fou à me dire "il y a une erreur, où est-elle) alors que j'avais oublié une accolade, un ; ou quelque chose du genre.
    Très bonnes habitudes. D'autres viendront au fur et à mesure naturellement !
    Sinon, essayes de garde en tête les conventions Java et les bonnes pratiques de programmation :
    - Classes avec une majuscule au début
    - Tout le reste avec une minuscule au début
    - Méthodes courtes (pas plus de 40 lignes si tu peux)
    - Noms de variables qui ont un sens
    - Noms de méthode qui ont un sens


    Exemple, je n'ai pas encore conscience de ce que peut apporter les threads, les interfaces, si dans un programme complexe comment on implémente les exceptions...
    Je te conseillerai soit de lire des cours Java (y'en a des bons ici, dont le Java pour les enfants qui contrairement à son nom est très bien fait et assez complexe en abordant beaucoup de sujet), ou de chercher sur internet si tu peux trouver des bouquins de préparations à la certification Java (qui même si tu ne prépares pas l'examen permet de découvrir par mal de choses et d'apprendre comment BIEN FAIRE les choses)
    Je ne suis pas mort, j'ai du travail !

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 108
    Points : 52
    Points
    52
    Par défaut
    Merci pour ta réponse. J'ai déjà vu d'autres matières et je sais que je ne sais pas. On ne peut pas tout savoir (encore moins sur tous les domaines) et il y a toujours moyen de complexifier les choses.

    Je suis assez mature et assez sage que pour savoir qu'on en apprend tous les jours... Je vais donc me mettre en quête de classes exemples, de classes que je peux utiliser (ne pas réinventer la roue), et regarder un peu tout ce code et essayer de comprendre la logique. Il y a encore un an et demi je ne savais pas programmer en Java, et je viens d'apprendre, sur un an de temps (2 cours de 3 mois) les bases (variables, opérations, instructions de contrôle, tableaux, strings et enum, puis classes et objets, encapsulation, héritage, polymorphisme, threads, collections, types génériques, interfaces, FX, expressions lambda... Tout cela en 2x3 mois (à raison de 3heures par semaine).

    Pas évident de s'y retrouver dans tout cela mais je l'ai bien préparé. J'ai un examen Java dans 3 semaines, je n'ai plus la pression des points, juste envie d'avoir une belle note (je sais que je vais réussir, même si je fais 5/20, vu que la note se fait sur 2 cours et que j'ai réussi l'autre, mais j'ai envie d'avoir une bonne note)

    J'ai surtout envie de bien faire les choses.

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par ZoliveR Voir le message
    D'abord l'ellipse. Est ce que vous l'utilisez uniquement dans les méthodes du style "je permets à l'utilisateur d'utiliser ma méthode avec autant d'arguments qu'ils veulent" (somme, moyenne, min-max, ...) ou bien également "au cas où l'utilisateur rentre des arguments que ma méthode/ma classe ne permet pas"?
    Quand tu veux permettre qu'un argument soit un tableau de valeurs, tout simplement. Ainsi ça a du sens de faire un moyenne(int... valeurs), mais ça n'a pas de sens de faire un public Persone(String nom, String prenom, Object... reste)

    Citation Envoyé par ZoliveR Voir le message
    Est ce qu'il faut envisager tous les cas de figure lorsqu'on fait une classe? (si ma classe définit une Personne avec Nom et Prénom et que l'utilisateur utilise ma classe avec "Personne(10, "Paul", 30, 20), est ce que je dois l'envisager ou bien me dire simplement que je définis: 1- un constructeur avec Nom-Prénom, un constructeur vide où je demande à l'utilisateur le Nom et le Prénom, et les méthodes strictes?
    Tu envisage les cas de figure qui te sont utile. Rien ne sert de fabriquer des constructeurs ou des méthodes que tu n'utilisera jamais. Le jour où tu aura besoin de ces méthodes, ce sera le moment de les créer, pas avant.

    Citation Envoyé par ZoliveR Voir le message
    En dehors d'une utilisation "je permets à l'utilisateur d'utiliser ma méthode avec 3000 entiers", je ne vois pas à quoi peut aussi servir une méthode ellipse
    Pour faire simple, tout utilisation ou sans ellipse tu aurait passé un tableau de valeurs. C'est utilisé pour exécuter des requete SQL paramétrées, par exemple, puisqu'on permet N paramètres à la requêtes.


    Pour finir, avez-vous des classes exemples à me proposer, pour voir un peu comment on peut coder, et qui puisse me permettre de m'améliorer voire de comprendre?
    Regarde du coté des projets opensource, de préférence sur github (ça veux dire qu'ils sont souvent plus récent et donc intègrent plus de nouveautés java) et regarde ce qu'il s'y fait

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 108
    Points : 52
    Points
    52
    Par défaut
    Merci pour ta réponse. Comme je suis partisan du moindre effort, je vais donc me contenter du strict minimum

    Par contre, pour les collections, j'ai encore une question mais ca fera l'objet d'un nouveau sujet.

    Belle semaine à vous

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/02/2011, 12h30
  2. utilisation de méthodes d'autres classes
    Par seb__ dans le forum Langage
    Réponses: 2
    Dernier message: 04/03/2006, 10h49
  3. Utilisation de variables dans plusieurs classes
    Par dedeloux dans le forum Langage
    Réponses: 3
    Dernier message: 20/07/2005, 17h25
  4. [Language]utilisation de méthodes dans différentes classes
    Par The Wretched dans le forum Langage
    Réponses: 4
    Dernier message: 09/05/2005, 16h17
  5. Réponses: 5
    Dernier message: 13/03/2005, 20h51

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