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 :

Passer une référence à une classe dans un constructeur


Sujet :

avec Java

  1. #1
    Membre averti
    Inscrit en
    Septembre 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 17
    Par défaut Passer une référence à une classe dans un constructeur
    Bonsoir!

    Ma question en quelques mots :
    > Une classe abstract Method
    > Deux classes héritées : Method1 et Method2
    > Une classe utilisant des objets de la classe method : Solver

    Je souhaite construire un objet Solver, en lui précisant s'il doit utiliser Method1 ou Method2, mais sans instancier d'objet method auparavant.
    Je suis sur que c'est possible, mais je ne vois pas comment faire concrètement:

    dans mon main :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Solver monSolver = new Solver("reference a ma classe method1 ou method2");
    dans ma classe Solver :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    private Method lamethode;
    public void Solver("UneclasseMethod"){
        this.lamethode = new "La Classe Method passée en paramètre";
    }
    Si vous avez compris ce que je veux dire, pourriez vous m'indiquer comment procéder s'il vous plait ?

    merci,

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    private Method lamethode;
    public void Solver(Class<? extends Methode> clazz){
        this.lamethode = clazz.newInstance();
    }
    Il faut rajouter à ce code la gestion d'exceptions qui va avec

  3. #3
    Membre averti
    Inscrit en
    Septembre 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 17
    Par défaut
    yo, merci.

    Donc, pour résumer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        private Methode methode;
        public Solver(Class<? extends Method> methodParam) {
            try {
                this.methode = methodParam.newInstance();
            } catch (InstantiationException ex) {
                Logger.getLogger(Solver.class.getName()).log(Level.SEVERE, null, ex);
            } catch (IllegalAccessException ex) {
                Logger.getLogger(Solver.class.getName()).log(Level.SEVERE, null, ex);
            }
    et :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Solver solverinstance =  new Solver(Method1.class);
    Il faudra que je comprenne un jour, la différence entre Class et class, tout comme celle entre Double et double, mais ça, c'est pour une prochaine...

    Merci beaucoup, bonne soirée.

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Class est une Classe qui représente une Classe. Class contient donc des méthode, des setters, des getters, un constructeur, etc, bref comme n'importe quelle autre classe. Il a juste ceci de particulier que toutes ses méthodes, propriétés et autres ervent à explorer la structure d'une classe donnée. class est juste un mot clé, il ne définit aucun type. Il permet d'introduit le code d'une classe
    ou de référencer l'objet Class associée à un classe donnée


  5. #5
    Membre averti
    Inscrit en
    Septembre 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 17
    Par défaut
    Et bien merci pour l'éclairage ;-)

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

Discussions similaires

  1. Instancier une classe dans un constructeur d'une autre classe ?
    Par ctobini dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 17/12/2012, 11h11
  2. Réponses: 17
    Dernier message: 24/11/2006, 18h25
  3. Réponses: 9
    Dernier message: 12/08/2006, 13h01
  4. Réponses: 5
    Dernier message: 13/07/2006, 09h44

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