Appel d'une méthode
Résolu
amal-these
Messages postés
26
Statut
Membre
-
amal-these Messages postés 26 Statut Membre -
amal-these Messages postés 26 Statut Membre -
Bonsoir,
J'ai définit plusieurs classes dans le mm package et je veux utiliser une méthode d'une classe X dans une autre classe Y sans instancier un objet X dans la classe Y. Si c possible comment je peux faire?
Merci d'avance pour votre aide.
J'ai définit plusieurs classes dans le mm package et je veux utiliser une méthode d'une classe X dans une autre classe Y sans instancier un objet X dans la classe Y. Si c possible comment je peux faire?
Merci d'avance pour votre aide.
1 réponse
-
Bonjour,
Il faut que cette méthode soitstatic
pour pouvoir l'appeler sans instancier un objet et pour pouvoir l'appeler depuis une autre classe du même package il ne faut pas qu'elle soitprivate
non plus...
package p; public class X { public static void f() { System.out.println("X.f"); } }package p; public class Y { public void g() { System.out.println("Y.g"); X.f(); } }
Remarque : il est également possible d'appeler une méthode par héritage, mais il y a quand même instanciation d'un objet (soi même).
package p; public class X { public void f() { System.out.println("X.f"); } }package p; public class Y extends X { public void g() { System.out.println("Y.g"); super.f(); } }La confiance n'exclut pas le contrôle-
-
-
Si la méthode "evaluation" est static elle n'est pas associé à un objet (c'était le but).
Mais pour "distance" deux cas : soit elle n'a pas besoin d'objet non plus et dans ce cas elle devrait static, soit elle a besoin d'un objet mais il faut l'instancier.
public class Test { public static void distance() { } public static void evaluation() { distance(); } }public class Test { public void distance() { } public static void evaluation() { Test t = new Test(); t.distance(); } } -
-
Si une méthode n'est pas static, il faut créer un objet de la classe pour l'appeller.
Mais c'est dommage de devoir créer un objet pour appeler cette méthode si derrière elle ne s'en sert pas... alors que si la méthode était static on pourrait l'appeler directement.
Exemple :Math.sqrt(x)
c'est plus facile d'utilisation queMath m = new Math(); m.sqrt(x);
quand on sait que de toute façonsqrt
ne se servira pas de l'objet...
-