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 :

Ecrire la même chose différemment ?


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Reconversion
    Inscrit en
    Novembre 2018
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Reconversion
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2018
    Messages : 503
    Par défaut Ecrire la même chose différemment ?
    Bonjour,
    Une chose qui me déroute beaucoup en tant que débutant c'est la possibilité d'écrire un même programme de façon totalement différente. Voici un exemple simple qui multiplie 2 entiers

    1ere version :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    package Basics;
     
    public class Base {
    	private  int x;
    	private int y;
     
    	public Base() {
    		super();
    		// TODO Auto-generated constructor stub
    	}
     
    	public Base(int x, int y) {
    		super();
    		this.x = x;
    		this.y = y;
    	}
     
    	public int calculer() {
    		return x*y;
    	}
     
    	public int getX() {
    		return x;
    	}
     
    	public void setX(int x) {
    		this.x = x;
    	}
     
    	public int getY() {
    		return y;
    	}
     
    	public void setY(int y) {
    		this.y = y;
    	}
     
    	public static void main(String[] args) {
    		Base b = new Base(2,3);
     
    			System.out.println(b.calculer());	
    	}
    }
    La 2ème version :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    package Basics;
     
    public class Base {
     
    	public Base() {
    		super();
    		// TODO Auto-generated constructor stub
    	}
     
    	public int calculer(int x, int y) {
    		return x*y;
    	}
     
    	public static void main(String[] args) {
    		Base b = new Base();
     
    			System.out.println(b.calculer(2,3));	
    	}
    }
    Etant plus courte la version 2 est-elle à préconiser ?
    Y a-t-il une meilleure façon de faire ?

    Cordialement

  2. #2
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Par défaut
    Bonjour olivier252,

    En effet, tes deux approches fonctionnent. Il est normal de pouvoir écrire un programme de nombreuses façons différentes alors que la finalité est la même (c'est aussi ça la richesse d'un langage).

    Dans le cas que tu énonces, la version à préconiser est fonction de l'usage que tu as en tête. Tes traitements s'appliquent ici sur un scope des variables différent :
    • Dans ton premier exemple, tu fais de tes variables x et y des variables de classe. Celles-ci sont donc utilisable au sein de l'intégralité de la classe pour divers traitement que tu souhaiterais effectuer.
    • Dans ton deuxième exemple, tu fais de tes variables x et y des variables internes à ta méthode. Celles-ci ne sont donc utilisable qu'au sein de cette méthode.


    Ton premier exemple a donc de la plus-value si tu souhaites faire d'autres traitements sur ces variables au sein de d'autres méthodes. Ton deuxième exemple a de la plus-value si tu n'as pas besoin de x et y en dehors de ta méthode "calculer". Si tes classes se limitent à faire ce que tu montres ici, il n'y a pas de besoin de rendre x et y comme variables de classe. Cela alourdit ta lecture alors que ton besoin ne va pas plus loin que ta méthode "calculer".
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  3. #3
    Membre éprouvé
    Homme Profil pro
    Reconversion
    Inscrit en
    Novembre 2018
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Reconversion
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2018
    Messages : 503
    Par défaut
    En effet, tout cela sous entend des questions plus ardues concernant la conception et la finalité du programme réalisé.
    Merci beaucoup pour cette explication complète ! Je clos le sujet.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 23/11/2006, 16h59
  2. [sockets] gethostbyname retourne toujours la même chose
    Par Strab dans le forum Développement
    Réponses: 3
    Dernier message: 15/09/2006, 10h24
  3. D'autres idées pour faire la même chose ?
    Par Gromitou dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 04/05/2006, 12h15
  4. empecher d'avoir deux fois la même chose dans une listebox
    Par Seb4657 dans le forum Composants VCL
    Réponses: 3
    Dernier message: 25/03/2006, 21h26
  5. Réponses: 12
    Dernier message: 03/03/2006, 11h31

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