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

JavaFX Discussion :

Visibilité des variables


Sujet :

JavaFX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Visibilité des variables
    Bonjour,

    J'aimerais savoir si, en JavaFX, il est préférable d'affecter aux variables de classe une visibilité privée (utilisation de getter et setter, comme en Java), ou publique.
    Car je débute sur ce langage, et d'après ce que j'ai vu, les variables publiques facilitent bien des choses. Mais si l'on conseille en Java de les mettre private, il me semble que c'est dans un soucis de "sécurité". Alors est-ce également le cas en JavaFX ?

    Merci d'avance.

    Axel

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 64
    Par défaut
    Bon, tout d'abord, rappelons un message de JavaFX 1.2 :
    The 'private' keyword is no longer supported. The default access is script-private, so you can simply remove 'private'.

    Ensuite, la philosophie et l'approche de JavaFX sont un peu différentes de celles de Java.
    Philosophie : on code vite, on s'embête pas avec ces considérations théoriques, surtout pour des programmes jetables... :-) (j'exagère un peu...)
    Approche : on peut faire les choses différemment en JavaFX...

    Par exemple, dans l'API standard, on trouvera peu ou pas de getter / setter : on change directement le champ content d'un Text, par exemple, ou on récupère directement l'info si un Button est active (public-read disabled). Si on a une classe immutable, comme Color, les champs sont à public-init pour les setter à la création. Si on met une valeur hors-normes (> 1 par exemple), on a une bonne vieille java.lang.IllegalArgumentException.

    De même, on peut être surpris au premier abord par l'absence de certains callbacks, par exemple quand on change la sélection dans une ListView : on gère ça en surchargeant la variable selectedIndex (ou selectedItem) et en ajoutant un bloc on replace.
    Ce dernier peut aussi être utilisé pour vérifier ou convertir les valeurs qu'on met dans une variable, ou mettre à jour d'autres variables (directement ou par le biais des bind) jouant ainsi le rôle d'un setter.

    Rien ne t'empêche de continuer d'utiliser les getters et setters, mais ce n'est pas trop "JavaFX native"... :-)

    PS. : Il est lourd ce forum... Je fais autre chose pendant quelques minutes, et il faut que je m'identifie à nouveau. Il peut pas garder mon identification quelques heures au moins ? Même le forum Java est moins strict...

  3. #3
    Invité
    Invité(e)
    Par défaut
    OK dans ce cas c'est parfait, c'est quand même plus pratique en public...
    Merci !

    Citation Envoyé par PhiLho Voir le message
    PS. : Il est lourd ce forum... Je fais autre chose pendant quelques minutes, et il faut que je m'identifie à nouveau. Il peut pas garder mon identification quelques heures au moins ? Même le forum Java est moins strict...
    Je confirme, c'est assez énervant ^^

    Axel

  4. #4
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 900
    Billets dans le blog
    54
    Par défaut
    Ps : bien que IE me foire mes cookies de toutes mes sessions (quelques soit le site) à peu près toutes les deux semaines je n'ai pas de problème de déco aussi souvent que vous.

    JavaFX -> Java
    • aucune indication -> private
    • protected -> protected
    • package -> aucune indication
    • public -> public

    les nouveautés javaFX :
    • <modificateur>-read de l'extérieur la variable ne peut qu'être lue.
    • <modificateur>-init la variable ne peut être initialisée qu'à la création de l'instance/sous-classe.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par bouye Voir le message
    [*]<modificateur>-read de l'extérieur la variable ne peut qu'être lue.[*]<modificateur>-init la variable ne peut être initialisée qu'à la création de l'instance/sous-classe.[/list]
    Ah c'est cool ça, je connaissais pas !
    Merci

    Axel

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 64
    Par défaut
    Sauf erreur de ma part (et la doc datant de la 1.0 n'aidant pas...), on n'a que public-init (qui est aussi 'read') et public-read.
    J'avais mentionné les deux en passant...

    J'ai vu des déclarations du style: public-read protected (par exemple scene et parent dans Node).

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 64
    Par défaut
    Citation Envoyé par bouye Voir le message
    Ps : bien que IE me foire mes cookies de toutes mes sessions (quelques soit le site) à peu près toutes les deux semaines je n'ai pas de problème de déco aussi souvent que vous.
    J'utilise Firefox.
    Je viens de revenir sur le forum à la maison, où j'ai dû cocher "Se souvenir de moi", et j'étais toujours connecté. C'est bien.
    Mais au boulot, où je désactive toute mémorisation de mes logins (sur site ou dans FF), le site me délogge au bout de quelques minutes seulement. C'est compréhensible au niveau sécurité, mais un peu trop strict (trop court) et je ne vois pas de moyen de régler ça dans les options.

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

Discussions similaires

  1. visibilité des variables d'un constructeur
    Par med_anis_dk dans le forum Langage
    Réponses: 4
    Dernier message: 06/05/2007, 21h07
  2. Réponses: 6
    Dernier message: 06/04/2007, 14h10
  3. Visibilité des variables
    Par Akhan dans le forum MATLAB
    Réponses: 1
    Dernier message: 22/01/2007, 23h22
  4. problème de visibilité des variables dans un include
    Par d1g-2-d1g dans le forum Langage
    Réponses: 6
    Dernier message: 28/11/2005, 09h35
  5. [EasyPHP] problème de visibilité des variable dans les includes
    Par d1g-2-d1g dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 23/10/2005, 01h55

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