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 :

Classe abstraite ou interface ou autre chose peut etre ?


Sujet :

Langage Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9
    Points : 12
    Points
    12
    Par défaut Classe abstraite ou interface ou autre chose peut etre ?
    Bonjour,

    Je n'ai pas l'habitude de poster sur des forums donc veuillez excuser mes éventuelles erreurs...

    Je vous expose mon problème :

    Je dois effectuer un programme qui modélise un écosysteme contenant des especes animales (taupes et lombrics) et végétales (une seule classe plante).

    Un point commun à toutes ces classes est par exemple une variable masseMinimale en dessous de laquelle l'espèce meurt.

    Cette variable serait static à toute une classe (toutes les taupes ont la meme masse minimale par exemple).

    Je ne sais comment procéder pour avoir une classe mère qui oblige ses classes filles à définir une variable static de la sorte (si cela est possible).

    J'espere avoir été assez clair.

    Merci d'avance.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 548
    Points : 635
    Points
    635
    Par défaut
    Ce n'est pas possible (pas d'attribut abstrait ...), par contre tu peux faire une méthode abstraite getMasseMinimale()

  3. #3
    Membre chevronné Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Points : 2 232
    Points
    2 232
    Par défaut
    Plus tot que d'utiliser une variable statique moi j'utiliserais une constante que j'initialiserais dans le constructeur. Mais si tu veux utiliser une variable static tu peux faire dans ta classe taupe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    public static int taille_max=xxx;
    autant l'hiver éclate que l'hétéroclite
    le vrai geek c'est celui qui croit qu'il y a 1024 mètres dans un kilomètre

  4. #4
    Membre confirmé Avatar de gronono
    Inscrit en
    Novembre 2003
    Messages
    456
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Novembre 2003
    Messages : 456
    Points : 482
    Points
    482
    Par défaut
    Bonjour,
    Moi je ferai de là façon suivante :

    Je définirai une interface Espece déclarant les méthodes communes à toutes les espèces
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public interface Espece {
      /**
       * @return la masse minimale de l'espèce en grammes
       */
      int getMasseMinimale()
    }
    Et chaque espèce possède sa masse minimale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public class Taupe implements Espece {
     private static final int MASSE_MINIMALE = 2500;
     
     public int getMasseMinimale() {
       return MASSE_MINIMALE;
     }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public class Plante implements Espece {
     private static final int MASSE_MINIMALE = 500;
     
     public int getMasseMinimale() {
       return MASSE_MINIMALE;
     }
    }
    Ainsi si tu as une espèce dont la masse minimale n'est pas constante (par exemple dépend de la taille), tu peux facilement modifier ton code sans tout changer.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9
    Points : 12
    Points
    12
    Par défaut
    C'est ce que j'ai fini par faire.
    Merci pour tout

  6. #6
    Membre éclairé Avatar de g_rare
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 608
    Points : 683
    Points
    683
    Par défaut
    Penser au bouton en bas de la discussion.
    " Jag blev dömd för fildelning och allt jag fick var en sketen t-shirt. " (tankafritt.nu)
    PAS DE REPONSE PAR MESSAGE PRIVE ! Penser au bouton Résolu en bas de la discussion...

Discussions similaires

  1. [POO] Classes abstraites ou interfaces
    Par Kapha dans le forum Langage
    Réponses: 8
    Dernier message: 31/01/2008, 09h43
  2. [Débutant] classe abstraite ou interface
    Par Chatbour dans le forum Langage
    Réponses: 9
    Dernier message: 29/11/2007, 09h45
  3. Difference entre Class Abstraite et interface
    Par menzlitsh dans le forum Langage
    Réponses: 11
    Dernier message: 05/07/2007, 13h04
  4. Classe abstraite et interface
    Par ender91 dans le forum Langage
    Réponses: 6
    Dernier message: 15/06/2007, 11h46
  5. [Debutant][Conception] Classes abstraites et interface.
    Par SirDarken dans le forum Langage
    Réponses: 4
    Dernier message: 29/10/2004, 00h02

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