Utilisation d'une méthode dans une autre classe

Rasryv Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -  
walidovich_85 Messages postés 608 Date d'inscription   Statut Membre Dernière intervention   -
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

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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
arth Messages postés 9374 Date d'inscription   Statut Contributeur Dernière intervention   1 293
 
Java crée un constructeur par défaut même s'il n'est pas hardcodé.
1
walidovich_85 Messages postés 608 Date d'inscription   Statut Membre Dernière intervention   73
 
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
0
Rasryv Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
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é ...
0
walidovich_85 Messages postés 608 Date d'inscription   Statut Membre Dernière intervention   73
 
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();
0
Rasryv Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
Ah, c'est donc ça. Merci beaucoup ;-)
0
walidovich_85 Messages postés 608 Date d'inscription   Statut Membre Dernière intervention   73
 
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é.
0