Exercice simple en java
Résolu/Fermé
anaanonyme
Messages postés
15
Date d'inscription
dimanche 20 juillet 2014
Statut
Membre
Dernière intervention
3 mars 2015
-
3 mars 2015 à 14:58
anaanonyme Messages postés 15 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 3 mars 2015 - 3 mars 2015 à 20:15
anaanonyme Messages postés 15 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 3 mars 2015 - 3 mars 2015 à 20:15
A voir également:
- Exercice simple en java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Iphone 14 simple - Guide
- Java apk - Télécharger - Langages
- Simple ocr - Télécharger - Bureautique
2 réponses
KX
Messages postés
16754
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
3 mars 2015 à 17:47
3 mars 2015 à 17:47
Bonjour,
Et quel est ton problème ? Ta question ?
Et quel est ton problème ? Ta question ?
anaanonyme
Messages postés
15
Date d'inscription
dimanche 20 juillet 2014
Statut
Membre
Dernière intervention
3 mars 2015
1
3 mars 2015 à 19:47
3 mars 2015 à 19:47
Salut,merci pour votre réponse;
le problème c'est que je peux créer deux objets avec la même référence tandis que chaque article a sa propre référence.
comment puis-je indiquer au constructeur que si la référence existe déjà il ne doit pas créer l'objet?
le problème c'est que je peux créer deux objets avec la même référence tandis que chaque article a sa propre référence.
comment puis-je indiquer au constructeur que si la référence existe déjà il ne doit pas créer l'objet?
KX
Messages postés
16754
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
Modifié par KX le 3/03/2015 à 20:12
Modifié par KX le 3/03/2015 à 20:12
Basiquement de deux manières :
1) la référence est gérée directement par la classe, via un compteur static auto-incrémenté par exemple.
Remarque : dans ce cas il faut supprimer la méthode setReference, car si tu autorises à la modifier tu n'as plus de garantie quant à son unicité.
2) tu enregistres toutes les références déjà utilisées et tu lèves une exception lorsque tu veux modifier une référence par une valeur déjà prise.
Remarque : aucun de ces deux codes n'est thread-safe,
1) la référence est gérée directement par la classe, via un compteur static auto-incrémenté par exemple.
private final long reference; private static nextReference = 1; public Article(String intitule,float prixHT,int quantiteEnStock){ reference = nextReference++; setIntitule(intitule); setPrixHT(prixHT); setQuantiteEnStock(quantiteEnStock); }
Remarque : dans ce cas il faut supprimer la méthode setReference, car si tu autorises à la modifier tu n'as plus de garantie quant à son unicité.
2) tu enregistres toutes les références déjà utilisées et tu lèves une exception lorsque tu veux modifier une référence par une valeur déjà prise.
private static Set<Long> allReferences = new TreeSet<Long>(); public void setReference(long reference) throws IllegalArgumentException { if (allReferences.contains(reference)) throw new IllegalArgumentException("reference already used: "+reference); allReferences.remove(this.reference); allReferences.add(reference); this.reference = reference; }
Remarque : aucun de ces deux codes n'est thread-safe,
anaanonyme
Messages postés
15
Date d'inscription
dimanche 20 juillet 2014
Statut
Membre
Dernière intervention
3 mars 2015
1
>
KX
Messages postés
16754
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 mars 2015 à 20:15
3 mars 2015 à 20:15
Merci beaucoup pour votre temps :)
la première méthode marche très bien mais pour la deuxième j'ai compris l'idée mais pas le code(TreeSet,< >...),mais je vais chercher merci beaucoup
la première méthode marche très bien mais pour la deuxième j'ai compris l'idée mais pas le code(TreeSet,< >...),mais je vais chercher merci beaucoup