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 :

Solution la plus judicieuse lors d'un paramètre effectif incohérent.


Sujet :

avec Java

  1. #1
    Nouveau Candidat au Club
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    2
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Solution la plus judicieuse lors d'un paramètre effectif incohérent.
    Bonjour,
    Voila je dois réaliser un projet java censé gérer de facon tres simpliste des comptes bancaires.

    je dispose de deux classes: class Client qui permet de représenter le client d'uncompte bancaire,
    class CompteBancaire qui contient les inforamtions liées aux comptes ouvert.

    Je dipose également d'une class test me perettant de tester l'ensemble de mes constructeurs et de mes méthodes.

    Voici l'ennonce de mon premier constructeur de ma class Client
    La class Client dispose de quatre attributs :
    attribut entier "numero" identifiant le Client
    atribut entier "nb" donnant le nombre de comptes ouverts par le client
    attribut réel decouvertMax donnant la valeur maximale du decouvert pour tous les comptes ouverts par le client
    un attribut entier "nbMax" donnant le nombre maximum de comptes qu'un Client peut ouvrir.

    Premier constructeur : avec un paramètre entier "num" qui construit un client dont le numéro est indiqué, ne disposant d'aucun compte initialement, n'ayant jamais droit a aucun découver et avec un nombre maximal de compte de 3.

    Je suppose que le numéro d'un Client doit toujours être positif alors quelle solution parmis les trois suivantes vous semblent la plus judicieuse par rapport a mon ennoncé?

    //Constructeur 1
    (Me semble peu judicieuse car de nombreux clients pourraient disposer d' un meme numéro)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    	Client(int num){
    		if(num>=0){
    			this.numero=num;
    		}else{
    			this.numero=0;
    		}
    		this.nb=0;
    		this.decouvertMax=0.0;
    		this.nbMax=3;	
    	}
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Client(int num){
    		if(num>0){
    			this.numero=num;
    		}else{
    			this.numero=(-1)*num;
    		}
    		this.nb=0;
    		this.decouvertMax=0.0;
    		this.nbMax=3;	
    	}
    ou parce qu'on nous deconseille de changer directement les paramètres effectifs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Client(int num){
    		if(num>0){
    			this.numero=num;
    		}else{
    			int n= num;
    			this.numero=(-1)*n;
    		}
    		this.nb=0;
    		this.decouvertMax=0.0;
    		this.nbMax=3;	
    	}
    Merci beaucoup pour votre aide.

    PS : Je ne dispose que de ces renseignements pour ce constructeur dans le TP

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 156
    Points : 190
    Points
    190
    Par défaut
    lance une si le parametre déconne IllegalArgumentException, sinon tu pourrais utiliser un compteur static comme identifiant unique de chaque compte, enfin c'est juste une idée.

  3. #3
    Nouveau Candidat au Club
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    2
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merc pour votre aide. Toutes ces solutions compilent. Je debute en java nous n'avons encore pas vu les variables static.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 156
    Points : 190
    Points
    190
    Par défaut
    En faite cela est assez simple, tu as dans une classe des variables d'instances auxquels sont associé des méthodes d'instances. Une instance c'est ce que tu obtient par l'appel à new. D'un autre coté une classe contient aussi des fonction statique, ainsi que des champs ( variable ) statiques : ils font partis de la classe et non de l'instance.

    Les champs et methodes statiques comme tu as déjà du le constater ne sont pas accessible à partir des méthodes statiques.

    L'idée est la suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public class Bidule
    {
      static int compteur = 0; // valeur par defaut également 0, mais on peut le spécifier optionellement.
      static int identifiant; // valeur par defaut 0
      Bidule
      {
        compteur++;
        identifiant = compteur;
      }
    }
    Par aillieur étant donné que compteur tous comme identifiant ne doivent être utilisé que par ta classe : c'est ce que l'on nomme l'encapsulation, tu peut y mettre l'attribut private. Pour accéder à ces variable il faut mettre en place les méthodes getCompteur() et getIdentifiant().

Discussions similaires

  1. Création d'une carte, solution la plus efficace ?
    Par tweak dans le forum Langage
    Réponses: 2
    Dernier message: 07/05/2009, 20h32
  2. Solution la plus adéquate
    Par j0o0 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 08/03/2009, 11h45
  3. Réponses: 3
    Dernier message: 17/03/2007, 17h21
  4. Solution la plus adéquate pour une informatisation totale des services ?
    Par kodo dans le forum Débats sur le développement - Le Best Of
    Réponses: 11
    Dernier message: 28/12/2006, 14h45
  5. une solution loop plus efficace?
    Par monopole dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 11/09/2006, 14h40

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