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 :

Exercice : rendre obligatoire, modifiable, et respecter une contrainte


Sujet :

avec Java

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2013
    Messages : 70
    Points : 38
    Points
    38
    Par défaut Exercice : rendre obligatoire, modifiable, et respecter une contrainte
    Bonjour,

    J'ai quelques difficultés avec ces questions de cours:

    1/Que faut il mettre en place pour rendre le libellé obligatoire et modifiable?
    modifiable = setter
    obligatoire, je vois pas comment on fait
    2/ On ajoute une contrainte de longueur minimale de libellé (3 caractères )
    ou doit on prendre en compte cette contrainte ?
    Je suis pas sur, dans le constructeur et setter? et comment le coder ?

    Je vous remercie d'avance pour votre aide!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public class Composant{
        String libellé;
        Composant(String l){
            this.libellé=l;}
    }

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par bouritosse Voir le message
    1/Que faut il mettre en place pour rendre le libellé obligatoire et modifiable?
    modifiable = setter
    obligatoire, je vois pas comment on fait
    "obligatoire" signifie "à aucun moment il n'y a pas de libellé."

    Donc, après avoir mis un libellé c'est bon. Il n'y a plus rien à faire pour le rendre obligatoire.
    La question c'est avant avoir mis un libellé. Il ne faut pas que ce avant existe. Il faut que dès le début, le libellé soit donné.

    Tu es sûr que tu ne vois pas comment faire ça ?

    Citation Envoyé par bouritosse Voir le message
    2/ On ajoute une contrainte de longueur minimale de libellé (3 caractères )
    ou doit on prendre en compte cette contrainte ?
    Je suis pas sur, dans le constructeur et setter?
    Oui. À chaque fois qu'on fournit un libellé. Donc :
    - Dans le constructeur,
    - Dans le setteur,
    et dans ton cas, c'est tout.

    Citation Envoyé par bouritosse Voir le message
    et comment le coder ?
    À chaque fois qu'on fournit un libellé :
    - vérifier si le libellé respecte la contrainte
    -- si oui, continuer comme quand il n'y avait rien à vérifier
    -- si non, "faire une erreur."
    As-tu vu quelque part comment on "fait une erreur" en Java ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2013
    Messages : 70
    Points : 38
    Points
    38
    Par défaut
    Pour la première réponse, c'est ça alors ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    private String libellé="défaut";
    Deuxième partie
    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
     
     
    public class Composant {
     
    	private String libellé="défaut";
     
     
    	public Composant(String libellé) throws TailleLibelleException{
    		if(libellé.length()>3){
    			this.libellé=libellé;
    		}
    		else{
    			throw new TailleLibelleException();
    		}
    	}
     
    	public String toString(){
    		return "composant "+libellé;
    	}
     
    	public String GetLibellé(){
    		return this.libellé;
    	}
    	public void SetLibellé(String libellé) throws TailleLibelleException{
    		if(libellé.length()>3){
    			this.libellé=libellé;
    		}
    		else{
    			throw new TailleLibelleException();
    		}
    	}
     
    }

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2013
    Messages : 70
    Points : 38
    Points
    38
    Par défaut
    Si ce que j'ai écris est bon, j'aurais une autre question,on me demande:

    111/Modifier la chaine retournée dans la classe Composant pour obtenir
    "composant anonyme" si le libellé est nul ( en une seule instruction )

    Avec plusieurs instruction j'aurais trouvé mais avec un ? je vois pas du tout ...

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par bouritosse Voir le message
    Pour la première réponse, c'est ça alors ?
    Ben non, il est obligatoire que celui qui crée un Composant lui fournisse un libellé.
    Là le libellé n'a pas été fourni, c'est toujours le même, ça ne sert à rien.

    Citation Envoyé par bouritosse Voir le message
    Deuxième partie
    C'est l'idée.
    Mais :
    - On te demande une taille minimale, pas maximale.
    - tant qu'à faire, ce serait bien de mettre ce traitement dans une seule méthode, que tu appelles quand tu en as besoin.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2013
    Messages : 70
    Points : 38
    Points
    38
    Par défaut
    J'ai un peu de mal à comprendre ce qu'il faut faire pour la première
    question alors..

  7. #7
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Dans ce cas peux-tu me parler un peu du constructeur. Ce qu'il fait, comment il fonctionne. Est-ce qu'il a un paramètre et pourquoi...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2013
    Messages : 70
    Points : 38
    Points
    38
    Par défaut
    Le constructeur sert à initialiser les attributs d'une classe
    lors de l'instanciation.
    Il y'en a trois types, constructeur complet, partiel , par défaut.
    par défaut: on ne rentre aucune valeurs en paramètre lors de l'instanciation
    les attributs sont initialisé à 0 si ce sont des int,long .. et si String l'attribut sera à null
    partiel: on ne rentre qu'une partie des valeurs

  9. #9
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    En fait je ne demandais pas un cours sur les constructeurs, je te demandais de me parler de ton constructeur à toi. Celui que tu as fait.

    Citation Envoyé par bouritosse Voir le message
    Il y'en a trois types, constructeur complet, partiel , par défaut.
    Bah non, il y a par défaut et pas par défaut.
    Un constructeur par défaut n'a pas de paramètre et ne peut pas être private. Tout les autres constructeurs sont, pas des constructeurs par défaut.
    Que tu fournisses ou non des valeurs pour tout, ça te regarde, c'est pas une notion du langage.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2013
    Messages : 70
    Points : 38
    Points
    38
    Par défaut
    Ben mon constructeur fait pas grand chose lorsque je fais
    Composant c1=new Composant("perso");

    ça me créera un objet avec perso comme attribut de type libellé

  11. #11
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Ah bon. Donc en fait quand tu le crées tu lui passes un libellé qu'il doit avoir n'est-ce pas ?
    Hum. Dis-moi, est-ce qu'il arrive à un moment qu'il n'y ait pas de libellé ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2013
    Messages : 70
    Points : 38
    Points
    38
    Par défaut
    y'a une erreur si je rentre rien dedans, je crois avoir compris
    c'est juste que je sais pas ou j'avais lu ça mais j'étais persuadé
    qu'il existait un constructeur "par défaut" qu'on est pas obligé de coder
    qui initialise toutes les variables à 0 ou null.
    Mais en faite non..

  13. #13
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par bouritosse Voir le message
    qu'il existait un constructeur "par défaut" qu'on est pas obligé de coder
    qui initialise toutes les variables à 0 ou null.
    Si si il y en a un, mais seulement si tu as pas fait d'autre constructeur.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  14. #14
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2013
    Messages : 70
    Points : 38
    Points
    38
    Par défaut
    Ok, j'ai compris.
    Et j'aurais une autre question, on me demande:

    111/Modifier la chaine retournée dans la classe Composant pour obtenir
    "composant anonyme" si le libellé est nul ( en une seule instruction )

    Avec plusieurs instruction j'aurais trouvé mais avec un ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public String toString(){
    		return "composant "+libellé;
    	}

  15. #15
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    bonjour,
    Citation Envoyé par bouritosse Voir le message
    Avec plusieurs instruction j'aurais trouvé mais avec un ?
    En fait, il existe une façon particulière de faire un if dans une instruction !
    La forme est la suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    condition ? si vrai : si faux
    A toi de voir comment l'intégré dans le code !
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  16. #16
    Membre chevronné
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Points : 1 855
    Points
    1 855
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Bah non, il y a par défaut et pas par défaut.
    Un constructeur par défaut n'a pas de paramètre et ne peut pas être private..
    il me semble que la discussion présente un risque d'ambiguité entre le constructeur par défaut fourni automatiquement s'il n'y pas de constructeur défini et le "no-arg constructor" (constructeur sans paramètres) que l'on peut définir soi même ...
    ce dernier peut être private (pour être utilisé par des outils particuliers opérant par introspection).
    J'ai des principes: je peux toujours trouver une bonne raison pour les contredire .... mais j'ai des principes!
    (mon excellent bouquin sur Java : https://eska-publishing.com/fr/livre...822407076.html)

  17. #17
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par professeur shadoko Voir le message
    il me semble que la discussion présente un risque d'ambiguité entre le constructeur par défaut fourni automatiquement s'il n'y pas de constructeur défini et le "no-arg constructor" (constructeur sans paramètres) que l'on peut définir soi même ...
    ce dernier peut être private (pour être utilisé par des outils particuliers opérant par introspection).
    Ma foi, les documentations te donnent tout à fait raison.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  18. #18
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2013
    Messages : 70
    Points : 38
    Points
    38
    Par défaut
    Pour répondre à Alkhan

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    	public String toString(){
     
    		return (libellé==null) ? "anonyme" : libellé;
    	}
    Je sais pas si c'est bon

  19. #19
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Ben, ça donne quoi quand tu essaies ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  20. #20
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2013
    Messages : 70
    Points : 38
    Points
    38
    Par défaut
    ça marche, par contre je peux pas essayer le cas ou libellé=null
    vu que j'ai mis une exception sur ce cas.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [XL-2003] Rendre obligatoire la saisie d'une cellule avant autre saisie
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 21/07/2009, 14h09
  2. Réponses: 3
    Dernier message: 13/11/2008, 13h36
  3. Modifier une colonne qui possède une contrainte DEFAUT
    Par David.V dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 23/01/2007, 11h35
  4. Modifier une contrainte sur une table InnoDb
    Par DomZZZ dans le forum Outils
    Réponses: 1
    Dernier message: 13/03/2006, 14h40
  5. [sql] comment modifier une contrainte
    Par imedg dans le forum Oracle
    Réponses: 5
    Dernier message: 11/03/2006, 06h54

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