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 :

Construire proprement en java les appels de variable ?


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2012
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 10
    Par défaut Construire proprement en java les appels de variable ?
    Bonjour,

    Après quelques pas en Java, j'ai besoin de votre aide pour comprendre un concept qui doit m'échapper.

    J'ai une application qui contient plusieurs appels de classes en cascade pour ouvrir des menus spécifiques en ayant chaque fois la succession JFrame - JPanel.

    Or d'une part je me rends compte que pour utiliser les variables de mes classes les plus profondes je suis contraint de passer les variables de classes en classes avec des get et set pour revenir à l'étage qui m'intéresse en terme de manipulation.

    => Est-ce normal ces cascades de mutateurs et accesseurs ?

    D'autre part, pour un simple concept de variable globale qui gère une somme en euros, je n'arrive pas à établir une façon simple de manipuler cette variable par toutes les classes qui potentiellement peuvent faire évoluer la somme.

    Ce que j'ai trouvé en recherchant ça et là m'indique que la variable globale sous JAVA est une erreur or je ne vois pas comment exploiter une technique propre à JAVA pour répondre à ce besoin.

    => Comment du coup définit-on une variable qui puisse être manipulée à la racine du main par tous les classes appelées successivement par la suite ?

    Merci d'avance pour vos éclaircissements.

  2. #2
    Modérateur
    Avatar de XxArchangexX
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2012
    Messages
    1 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 159
    Par défaut
    Pour ma part j'ai appris la base du java et construire un projet en MVC donc les classes vue modèle contrôleur sont indépendantes donc pas de variable globale en plus ce n'est pas sécurisé .

    Donc un petit cours de variable "propre" :
    3 types :
    Protected : la variable est accessible par la classe et les classes filles, qui héritent de la classe mère.

    Private : la variable est accessible que par la classe.

    Public : tout le monde y a accès.

    dans le cas private et le cas protected il faut des getters setter pour y accéder par une classe qui n'est pas parentée à la classe de la variable. Ce que tu vois est donc normal, il faut de l'organisation mais c'est un code "propre" que tu as.

    Si une variable est déclarée en globale comme tu veux c'est Static dans ce cas LaClasse.LaVariableStatic pour l'avoir, c'est possible de jouer avec mais dans le concept ce n'est pas une variable importante pour ton application c'est un outil ou l'accès direct n'est pas gênant.

    Pour finir une image : C'est comme si ta classe c'est ton compte en banque pour accéder il faut ta carte bleu (getter). En statique ou public avec ma carte bleu je pourrais accéder à ton compte, c'est bête .

    Ps : pour ta solution ta variable montantEuros je ferais une fonction dans chaque classe pour incrémenter ou diminuer si c'est les fonctions.
    main(){
    int montantEuros = 200;
    montantEuros = Classe.modifMontant(montantEuros);
    montantEuros = Classe2.modifMontant(montantEuros);
    }
    L'Etat est bien administré quand l'escalier de l'école est usé et que l'herbe croît sur celui du tribunal.

    Modérateur BI

  3. #3
    Membre averti
    Inscrit en
    Avril 2012
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 10
    Par défaut
    Donc si je comprends bien, en ayant la structure :

    Menu d'accueil (JFrame) -> Menu Principal (JFrame) contenant un JPanel -> Panneau d'actvité (JFrame) contenant un JPanel X

    C'est normal que pour initialiser mon application au niveau du menu d'accueil avec une zone d'option je sois contraint de descendre en cascade des setters depuis le JPanel X jusqu'à la JFrame du menu d'accueil soit 5 setters pour une seule manipulation.

    => J'ai bon ?

    Pour la gestion des variables "globales" ce qui est conseillé c'est de créer une classe contenant les variables dites "globales" et de faire un appel de cette classe à chaque fois qu'on veut actualiser une donnée, ceci en utilisant des fonctions propres à chaque classe qui peut influer sur ces variables.

    => J'ai tout compris ?

  4. #4
    Modérateur
    Avatar de XxArchangexX
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2012
    Messages
    1 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 159
    Par défaut
    Première partie pas tout à fait.

    -> Menu d'accueil (JFrame) utilisant la variable
    -> Menu Principal (JFrame) contenant un JPanel
    -> Panneau d'actvité (JFrame) contenant un JPanel X contenant ta variable avec le set(val)

    Ce que tu descends en cascade c'est l'objet de la classe Panneau , que tu descends jusqu'à JMenu d'accueil et la tu fais Panneau .set(val) , le setter est seulement dans la classe Panneau .

    La deuxième partie, tu vois de tout mais pour ma part je suis d'accord une classe contenant les variables globales permet de maintenir correctement ton application, elle peut contenir par exemple les chemins brut de certains fichiers ou des couleurs.
    L'Etat est bien administré quand l'escalier de l'école est usé et que l'herbe croît sur celui du tribunal.

    Modérateur BI

  5. #5
    Membre averti
    Inscrit en
    Avril 2012
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 10
    Par défaut
    Grâce à vos précisions, j'ai franchi un nouveau pas dans la compréhension de JAVA. Ca marche comme prévu.

    Merci grandement

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

Discussions similaires

  1. appeler la variable d'environnement dans un programme java
    Par ririrourou dans le forum Général Java
    Réponses: 4
    Dernier message: 03/07/2009, 10h04
  2. [Bean] Automatiser les appels de setters / getters
    Par shinchun dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 27/12/2004, 15h18
  3. Réponses: 4
    Dernier message: 03/08/2004, 19h26
  4. Comparer les types de variable
    Par onipif dans le forum ASP
    Réponses: 11
    Dernier message: 27/05/2004, 18h07
  5. [VB6] [Langage] VB6 et les appels de dll
    Par Dave63 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 16/01/2003, 18h20

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