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

Langage Java Discussion :

variable gloable en Java [Débutant(e)]


Sujet :

Langage Java

  1. #21
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par vinzzzz
    Je veu dire, par exemple la variable PI de la classe Math peut être considérée comme globale...
    Math.PI n'est pas une variable mais un constante

    Les variables globales du C se rapprochent des variables statiques des classes. Mais ce n'est pas pour autant que c'est ce qu'il faut utiliser.

    Les langages C et Java sont très différents, et il ne faut pas penser en C et coder en Java car on risque d'obtenir quelque chose de très complexe et innaproprié...

    Il vaut mieux bien comprendre les notions des langages objets et de Java en général, par exemple : http://java.developpez.com/livres/penserenjava/

    a++


    PS : A noter que je n'ai rien contre le C (bien au contraire), et que cette remarque vaut également dans l'autre sens (penser en Java et coder en C).

  2. #22
    Membre habitué
    Inscrit en
    Janvier 2005
    Messages
    491
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 491
    Points : 172
    Points
    172
    Par défaut
    vinzzzz a écrit:
    Je veu dire, par exemple la variable PI de la classe Math peut être considérée comme globale...

    Math.PI n'est pas une variable mais un constante
    Mille excuses

    Penser en java et coder en C... ca revien a peu prés a coder objet en C, et c'est pas impossible.

    L'objectif du topic (si j'avais bien compris) n'était pas de penser en C et coder en JAVA mais trouver un equivalent JAVA pour les variables globale du C. Bien sur il faut avoir compris les notions de POO pour pouvoir aborder le sujet...
    Aprés au programmeur de bien utiliser tout ca en fonction de ses besoins

  3. #23
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par vinzzzz
    Penser en java et coder en C... ca revien a peu prés a coder objet en C, et c'est pas impossible.
    Non mais c'est assez complexe à coder... Du coup ce n'est pas forcément la meilleure solution, et on peut se retrouver à débiter du code ou se compliquer la vie alors qu'il existe des solution toute simple...

    Citation Envoyé par vinzzzz
    L'objectif du topic (si j'avais bien compris) n'était pas de penser en C et coder en JAVA mais trouver un equivalent JAVA pour les variables globale du C. Bien sur il faut avoir compris les notions de POO pour pouvoir aborder le sujet...
    C'est pourquoi je voulais connaitre l'objectif de cela (cf mon premier message), car dans plusieurs cas on peut adopter une solution complètement différente...


    Par exemple en C la variable globale errno permet de connaitre le code d'erreur de la dernière erreur. En Java il serait abérant de ne pas utiliser le mécanisme d'exception dans ce cas là...


    Donc pour moi la question à se poser n'est pas "En C j'utilise cette fonctionnalité, comment faire la même chose en Java ?" mais "Je veux faire quelquechose, comment faire ceci en Java ?"

    Mais on connait la fonctionnalité utilisée en C (les variables globles), mais pas son objectif. Et c'est sur ce dernier point qu'on devrait se baser pour donner une réponse...

    a++

  4. #24
    Membre habitué
    Inscrit en
    Janvier 2005
    Messages
    491
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 491
    Points : 172
    Points
    172
    Par défaut
    Citation Envoyé par vinzzzz
    Penser en java et coder en C... ca revien a peu prés a coder objet en C, et c'est pas impossible.
    Non mais c'est assez complexe à coder... Du coup ce n'est pas forcément la meilleure solution, et on peut se retrouver à débiter du code ou se compliquer la vie alors qu'il existe des solution toute simple...
    J'avai croisé quelques sites qui donnaient des moyens de bien programmer objet en C (peut etre pour ceux qui n'ont pas compris que le C++ existe ) mais comme le C n'est pas objet a la base j'immagine que ca doit pas être si facile...

    Pour le reste je suis d'accord avec toi.[/quote]

  5. #25
    Membre chevronné
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Points : 2 208
    Points
    2 208
    Par défaut
    Si mes souvenirs sont bons, l'usage de variable globale en C est déconseillé.


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  6. #26
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 42
    Points : 50
    Points
    50
    Par défaut
    Citation Envoyé par afrikha
    Si mes souvenirs sont bons, l'usage de variable globale en C est déconseillé.
    Non, j'infirme.

    On utilise même des variables globales d'initialisation par exemple dans ressource.h pour ce qui est del'interface graphique.

  7. #27
    Membre habitué
    Inscrit en
    Janvier 2005
    Messages
    491
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 491
    Points : 172
    Points
    172
    Par défaut
    afrikha a écrit:
    Si mes souvenirs sont bons, l'usage de variable globale en C est déconseillé.
    Non, j'infirme.

    On utilise même des variables globales d'initialisation par exemple dans ressource.h pour ce qui est del'interface graphique.
    Pourtant une trés grande partie des programeurs C déconseille l'usage des variables globales en C. De plus dans pratiquements tous les tutoriels que j'ai pu voir on déconseille également leur usage.
    Cela ne veut pas dire que c'est interdit mais il semble que ca soit a éviter.

    Va faire un tours dans le forum C il y a un topic récent consacré aux globales en C.

  8. #28
    Membre chevronné
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Points : 2 208
    Points
    2 208
    Par défaut
    Citation Envoyé par professeur
    Citation Envoyé par afrikha
    Si mes souvenirs sont bons, l'usage de variable globale en C est déconseillé.
    Non, j'infirme.

    On utilise même des variables globales d'initialisation par exemple dans ressource.h pour ce qui est del'interface graphique.
    Décidemment toi tu portes très mal ton pseudo.
    Un conseil: renseigne toi un minimum avant de raconter n'importe quoi sur des choses que tu ne connais pas.


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  9. #29
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Points : 4 265
    Points
    4 265
    Par défaut
    Citation Envoyé par vinzzzz
    L'objectif du topic (si j'avais bien compris) n'était pas de penser en C et coder en JAVA mais trouver un equivalent JAVA pour les variables globale du C. Bien sur il faut avoir compris les notions de POO pour pouvoir aborder le sujet...
    Moi, comme objectif du topic, j'avais compris qu'Apan cherchait à définir une variable globale du C en java.
    Or, dans la suite de la discussion, il m'a paru utile de définir le vocabulaire utilisé en POO puisqu'il n'existe pas dans ce dernier cas de variable globale telle qu'elles existent en C.

    Citation Envoyé par adiGuba
    Donc pour moi la question à se poser n'est pas "En C j'utilise cette fonctionnalité, comment faire la même chose en Java ?" mais "Je veux faire quelquechose, comment faire ceci en Java ?"

    Mais on connait la fonctionnalité utilisée en C (les variables globles), mais pas son objectif. Et c'est sur ce dernier point qu'on devrait se baser pour donner une réponse...
    a++
    Je suis d'accord avec toi. On ne peut pas forcément transposer une fonctionnalité d'un langage procédural en langage objet.
    Un des paradigmes de la POO, c'est l'encapsulation des données qui a pour objectif en autre d'éviter les problèmes rencontrés par les variables globales (que l'on déconseille pour ces mêmes raisons).

    Une variable, c'est pour stocker une valeur.
    L'interet d'une variable globale dans un langage procédural (vous me corrigerez si je me trompe ou compléterez des oublis) est à mon sens d'avoir un moyen de fournir une même valeur à plusieurs procédures/fonctions autrement qu'un passage par paramètre.

    En POO, on regroupe au sein d'un objet, des méthodes (procédures/fonctions) qui travaillent sur des variables d'instances (variable globales).
    L'interet de l'objet et donc de l'encapsulation est d'interdire l'acces à ces fameuses variables depuis autre chose que l'objet (et c'est là que ce trouvait un des pbs des var. globales)

    Cependant, le probleme vu sous un tel angle a été décalé et au lieu de se demander comment on partage une même valeur entre plusieurs procédures, on s'est demandé ensuite comment partagé une même valeur entre plusieurs objets. Et c'est alors là que les variables de classes prennent leur interêt !

    Maintenant, si on veut partager des valeurs entre plusieurs objets, on peut passer par un fichier de propriétés, une base de données, ou un objet fournisseur (singleton).

    Tout le monde savait que c'était impossible. Il est venu un imbécile qui ne le savait pas et qui l'a fait. Marcel PAGNOL
    On ne savait pas que c'était impossible, alors on l'a fait. John Fitzgerald KENNEDY.
    L'inexpérience est ce qui permet à la jeunesse d'accomplir ce que la vieillesse sait impossible. Paul (Tristant) BERNARD
    La meilleure façon de prédire l'avenir, c'est de l'inventer.

Discussions similaires

  1. Variables génériques en Java ?
    Par barbiche dans le forum Langage
    Réponses: 11
    Dernier message: 08/08/2007, 15h54
  2. Variable dynamique et Java
    Par Naeco dans le forum Langage
    Réponses: 4
    Dernier message: 06/04/2007, 11h14
  3. [ Variable environnement ] Version java
    Par lhpp dans le forum Général Java
    Réponses: 13
    Dernier message: 08/04/2006, 11h01
  4. [Applet] Comment envoyer une variable php au java?
    Par abstractor77 dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 09/03/2006, 10h18
  5. [Cookies] Variables gloables
    Par Néo-Tony dans le forum Langage
    Réponses: 3
    Dernier message: 15/02/2006, 09h30

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