Utilisation d'une méthode dans une autre classe

Fermé
Rasryv Messages postés 5 Date d'inscription samedi 9 mars 2013 Statut Membre Dernière intervention 17 mars 2013 - 17 mars 2013 à 00:05
walidovich_85 Messages postés 608 Date d'inscription mardi 12 janvier 2010 Statut Membre Dernière intervention 25 octobre 2015 - 17 mars 2013 à 18:02
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 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
17 mars 2013 à 11:50
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 mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 1 291
17 mars 2013 à 01:11
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 mardi 12 janvier 2010 Statut Membre Dernière intervention 25 octobre 2015 73
17 mars 2013 à 00:37
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 samedi 9 mars 2013 Statut Membre Dernière intervention 17 mars 2013
17 mars 2013 à 01:00
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 mardi 12 janvier 2010 Statut Membre Dernière intervention 25 octobre 2015 73
17 mars 2013 à 01:57
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 samedi 9 mars 2013 Statut Membre Dernière intervention 17 mars 2013
17 mars 2013 à 16:39
Ah, c'est donc ça. Merci beaucoup ;-)
0
walidovich_85 Messages postés 608 Date d'inscription mardi 12 janvier 2010 Statut Membre Dernière intervention 25 octobre 2015 73
17 mars 2013 à 18:02
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