Utilisation d'une méthode dans une autre classe

[Fermé]
Signaler
Messages postés
5
Date d'inscription
samedi 9 mars 2013
Statut
Membre
Dernière intervention
17 mars 2013
-
Messages postés
608
Date d'inscription
mardi 12 janvier 2010
Statut
Membre
Dernière intervention
25 octobre 2015
-
Bonjour,


J'ai un problème qui semble être un problème assez récurrent de java chez les débutants. J'ai lu plusieurs forums mais je ne comprends pas comment on peut utiliser une méthode d'une classe dans une autre classe (on parle d'héritage et de cast ...). J'ai créé une méthode dans une classe Arbitrage sans constructeur (la classe ne possède que des méthodes). La méthode s'appelle verifierJeu. Je souhaite appeler cette méthode dans une classe appelée Sport mais je ne sais pas quoi faire. Tout d'abord, j'avais créé un new Arbitrage abt dans la classe Sport pour pouvoir faire dans la classe Sport abt.verifierJeu() mais ça n'a pas marché (probablement parce que Arbitrage() n'existait pas) et ça n'a pas marché même quand j'ai essayé de faire un constructeur vide dans la classe Arbitrage.

Merci de votre aide!
A voir également:

4 réponses

Messages postés
16372
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
23 juillet 2021
2 861
Pourquoi définir des méthodes d'Arbitrage sans faire de constructeur ?

Soit il n'y a pas besoin d'avoir d'objet Arbitrage et dans ce cas toutes tes méthodes doivent être static, tu feras alors appel à elles en préfixant le nom de la classe avant le nom de la méthode.

public class Arbitrage
{
    public static void verifier(Jeu jeu)
    {
        ...
    }
}

Jeu jeu = ...
Arbitrage.verifier(jeu);

Soit il y a besoin d'avoir des objets Arbitrage et dans ce cas il te faut utiliser un constructeur (éventuellement celui par défaut) pour appeler tes méthodes en les préfixant du nom de l'objet qui les utilises.

public class Arbitrage
{
    private Jeu jeu;

    public Arbitrage(Jeu jeu)
    {
          this.jeu = jeu;
          ...
    }

    public void verifier()
    {
          ...
    }
}

Jeu jeu = ...
Arbitrage arb = new Arbitage(jeu);
arb.verifier();
2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
9367
Date d'inscription
mardi 27 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2016
1 331
Java crée un constructeur par défaut même s'il n'est pas hardcodé.
Messages postés
608
Date d'inscription
mardi 12 janvier 2010
Statut
Membre
Dernière intervention
25 octobre 2015
76
bonsoir,

le schéma de ton projet est un peu flou pr moi, mais comme même, la condition d'utilisation d'une méthode d'une classe A dans une class B, c'est qu'elle doit etre déclarée public.

public class A{
//propriétés.
public void methodeA(){
}
}

public class B{
//propriétés.
public void methodeB{
A a= new A();
a.methodeA();
}
}

comme ça, la méthode "methodeA" sera applé quand à l'utilisation de la méthode "methodeB".

bien sur, il faut une instance de l class B pour exécuter methodeB.

si non, si tu parle des methodes de classe, un autre chose, alors la, il ya une autre manière de faire les choses.

bonne chance
Messages postés
5
Date d'inscription
samedi 9 mars 2013
Statut
Membre
Dernière intervention
17 mars 2013

C'est exactement ça mais est-ce que ça a un sens d'écrire a=new A() si je n'ai pas défini de constructeur A() dans ma classe A? Parce que j'ai essayé de faire ça mais ça n'a pas marché ...
Messages postés
608
Date d'inscription
mardi 12 janvier 2010
Statut
Membre
Dernière intervention
25 octobre 2015
76
un constructeur par défaut est défini par Java (sans arguments en entrée), si tu ne l'a pas fait.
A a = new A();
Messages postés
5
Date d'inscription
samedi 9 mars 2013
Statut
Membre
Dernière intervention
17 mars 2013

Ah, c'est donc ça. Merci beaucoup ;-)
Messages postés
608
Date d'inscription
mardi 12 janvier 2010
Statut
Membre
Dernière intervention
25 octobre 2015
76
mais comme KX, l'a dit en haut, si tu na pas intérêt à définir a créer des objets par ta class, alors il faut déclarer la méthode static, et y accéder statiquement.

bon, java a tt mit a votre disposition pour que ton code reflete la réalité.