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 :

Utilisation d'un objet dans différentes classes


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Apprenti
    Inscrit en
    Octobre 2014
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Apprenti

    Informations forums :
    Inscription : Octobre 2014
    Messages : 70
    Par défaut Utilisation d'un objet dans différentes classes
    Bonjour,

    J'ai pour projet de faire un 2048 et j'ai découpé celui ci en 2 packages, un (celui par défaut) contenant une classe gérant les déplacements appelée Jeu et un autre package nommé interaction contenant deux classes appelées Interaction et Main. J'importe mon package Interaction dans ma classe Jeu et j'importe bien mon package Jeu dans mes classes Main et Interaction (contenues dans le package interaction).

    Dans ma classe Jeu je gère tous les déplacements et dans Interaction l'initialisation du plateau (en ligne de commandes), l'affichage, savoir si le joueur a gagné ou perdu etc ... J'aimerai donc dans mon Main créer un objet jeu de type Jeu et initialiser celui ci. Cependant, lorsque je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Jeu jeu = new Jeu();
    jeu.init();
    Eclipse m'indique "The method init() is undefined for the type Jeu".

    J'aimerai donc savoir comment je peux créer un objet de type Jeu et utiliser dessus les méthodes contenues dans ma classe Interaction.

    Débutant en POO, toutes mes variables et toutes mes classes sont de types public.

    Merci de votre aide.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 51
    Par défaut
    De ce que je comprends, tu n'as pas défini de méthode init() dans ta classe Jeu. Si c'est la classe Interaction qui est en charge de l'initialisation du jeu, pourquoi ne pas créer dans ton main une instance d'Interaction et appeler init() dessus?

    mais tu peux également avoir une variable de type Interaction au sein de ta classe Jeu et définir une méthode init() dans ta classe Jeu qui appelle les méthodes que te fournit ta classe Interaction.

  3. #3
    Membre confirmé
    Homme Profil pro
    Apprenti
    Inscrit en
    Octobre 2014
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Apprenti

    Informations forums :
    Inscription : Octobre 2014
    Messages : 70
    Par défaut
    En effet la méthode qui est censée initialiser le plateau se trouve dans ma classe Interaction et non dans ma classe Jeu. Je peux donc bien créer un objet de type Interaction mais comment ensuite à celui ci je pourrais appliquer les méthodes de déplacement qui sont elles situées dans ma classe Jeu ?

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 51
    Par défaut
    comment ensuite à celui ci je pourrais appliquer les méthodes de déplacement qui sont elles situées dans ma classe Jeu ?
    A mon sens, tu ne dois pas appliquer à un objet Interaction les méthodes de ta classe Jeu. Ou alors, cela veut dire qu'il n'y a qu'un seul objet "fourre-tout" qui veut tout faire?

    Je pense que tu devrais te poser la question de la découpe en classe. Par exemple, si ton jeu est constitué d'un plateau et d'objets qui se déplacent, tu peux avoir une classe Jeu qui possèdent des variables de classe de type Plateau et une liste de type "Objet qui se déplace".
    Dans un main, tu crées une instance de Jeu et dans l'init() de la classe Jeu, tu peux appeler par exemple la méthode init() de ton objet Plateau. Car initialiser un jeu, c'est initialiser le plateau mais pourquoi pas effectuer d'autres actions.

  5. #5
    Membre confirmé
    Homme Profil pro
    Apprenti
    Inscrit en
    Octobre 2014
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Apprenti

    Informations forums :
    Inscription : Octobre 2014
    Messages : 70
    Par défaut
    J'ai du mal avec l'idée d'utiliser un objet Plateau (qui est en fait un objet Interaction utilisant la méthode init() n'est-ce pas ?) et un objet jeu qui permettra lui de faire les déplacements. C'est la première fois que j'ai un projet aussi complexe et que je dois bien découper en classe et en packages. Le fait d'utiliser deux objets est donc pour moi très très flou.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 51
    Par défaut
    L'un des objectifs de la conception Objet est justement de découper la complexité en isolant les tâches et les responsabilités de chaque objet. Le terme "Plateau" n'est peut-être pas approprié pour ton exemple, c'est à toi de voir mais est-il normal que ce soit le même objet qui gère le nombre de cases, les règles de déplacement, l'affichage et les actions opérateur? Il est probable que non. Plus le projet est complexe, plus tu auras besoin de découper en sous-partie. Ta classe Jeu peut alors se contenter d'appeler le code des sous-parties via des variables.

Discussions similaires

  1. Réponses: 6
    Dernier message: 30/01/2015, 16h22
  2. utilisation d'objet dans une class
    Par turican2 dans le forum Langage
    Réponses: 4
    Dernier message: 19/02/2009, 15h43
  3. Utiliser un argument du main dans différentes classes
    Par SeaShell dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 20/04/2008, 23h53
  4. Réponses: 4
    Dernier message: 15/11/2005, 10h49
  5. [debutant] Utilisation de l'operateur = dans une classe
    Par Battosaiii dans le forum Débuter
    Réponses: 8
    Dernier message: 10/11/2005, 23h01

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