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 :

[Stratégie][Classe]Empecher l'utilisation


Sujet :

Langage Java

  1. #1
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Points : 1 257
    Points
    1 257
    Par défaut [Stratégie][Classe]Empecher l'utilisation
    Bonjour !

    J'ai une classe qui ne contient qu'un constructeur static et des methodes static donc j'aimerai que la classe ne soit pas instanciable (pour etre propre)
    J'ai pensé a la mettre en abstract mais bon le but est pas de faire herité la classe non plus ...
    et le mot clef static ne passe pas ...

    des idées ?

    mci !

  2. #2
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Il faut mettre le mot-cle final. Met aussi le constructeur par defaut en prive. Et un constructeur statique ca n'existe pas.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 760
    Points : 626
    Points
    626
    Par défaut
    c'est moche mais final abstract devrait faire l'affaire...
    Mais il existe aussi le moyen qui est deja plus joli de déclarer le constructeur private.

    Tu est sur que tu ne veux pas utiliser un singleton?
    Est ce si grave que cela si quelqu'un instancie ta classe?

  4. #4
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Points : 1 257
    Points
    1 257
    Par défaut
    Citation Envoyé par Gfx
    Il faut mettre le mot-cle final. Met aussi le constructeur par defaut en prive. Et un constructeur statique ca n'existe pas.
    euhhh final je le met ou ? Par contre désolé de te décevoir mais les constructeur static ca existe ^^

    Citation Envoyé par TabrisLeFol
    c'est moche mais final abstract devrait faire l'affaire...
    Mais il existe aussi le moyen qui est deja plus joli de déclarer le constructeur private.

    Tu est sur que tu ne veux pas utiliser un singleton?
    Est ce si grave que cela si quelqu'un instancie ta classe?
    le constructeur en private c'est pas béte ! c pas indispensable mais c'est pour etre plus propre ...

    bon bin merci ca devrai suffire

  5. #5
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public final MaClasse {
      private MaClasse() { }
    }
    Et je serais tres curieux de voir comment tu fais un constructeur statique en Java. A moins que tu ne parles des blocs d'initialisation statiques, ce qui est different.

  6. #6
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Points : 1 257
    Points
    1 257
    Par défaut
    bas oui static{...} et c'est ce qu'on appel constructeur static ... j'ai vu quelqu'un en parler sur le forum et en C# le truc qui fait parrail s'appelle constructeur static ... donc bon pas la peine de jouer sur les mots

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Février 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2006
    Messages : 197
    Points : 279
    Points
    279
    Par défaut
    techniquement ca ne peut pas être un constructeur si il est static mais tu peux définir une méthode qui possède le nom de ta classe en static mais ça ne sera pas un constructeur.

  8. #8
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    C# a bien la notion de constructeur statique mais pas Java. Et ce n'est pas pour jouer sur les mots, c'est parce que si tu parles de constructeur statique a un developpeur Java, il ne connaitra pas (je travaille chez Sun dans l'equipe qui developpe l'API Java, j'ai demande a mes collegues et leur reaction a toujours ete que c'etait impossible ).

  9. #9
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Points : 1 257
    Points
    1 257
    Par défaut
    Citation Envoyé par Didier
    Posté le: Mar Avr 19, 2005 15:50 Sujet du message:
    C'est un constructeur statique : appelé au premier accès à la classe.

    C'est utilisé pour les traitements devant être appelés une seule fois (au premier accès à la classe )

    A+.
    http://www.developpez.net/forums/vie...cteur+statique

    C'est pas moi qui le dit mais c quand meme un moderateur du forum Java qui le dit

    Mais bon c'est surement un abus de langage alors ...

    (et puis j'ai gardé mes mauvaises habitudes C# )

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/04/2008, 18h52
  2. [visual studio] créer une classe en C++ utilisable en VB .net
    Par thune123 dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 08/02/2008, 15h39
  3. Réponses: 4
    Dernier message: 25/10/2007, 17h18
  4. fonctions et classes... quand les utiliser ?
    Par fastmanu dans le forum Langage
    Réponses: 6
    Dernier message: 03/04/2006, 00h39
  5. Empecher d'utiliser la poubelle.
    Par jean christophe dans le forum Windows 2000/Me/98/95
    Réponses: 5
    Dernier message: 15/10/2005, 13h06

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