OVH Cloud OVH Cloud

de classe, pas de classe...

6 réponses
Avatar
Rakotomandimby (R12y) Mihamina
Soit la classe Rationnel

class Rationnel
{
int num;
int den;
}

Je voudrais définir pour les Rationnel une méthode de calcul du pgcd
dans le but de reduire le rationnel ensuite. Aussi par une autre méthode.

Cette méthode aura des attributs d'instance (num, den) comme
arguments.

Mais cette méthode peut aussi être vue comme une méthode de classe
puisque quel que soit le Rationnel, calculer le pgcd de ces deux
opérandes c'est pareil.

Alors: cette méthode pgcd(int num, int den) de calcul de pgcd, je peux la
mettre static? de toutes façon à l'appel, ça restera la même
syntaxe... mais pour le principe....

--
L'ASPO a pour but de démocratiser l'acces a l'informatique. Une de ses
activité est l'infogerance (http://aspo.rktmb.org/activites/infogerance)
Tél: + 33 2 38 04 26 04 ou + 33 6 33 26 13 14 (France)

6 réponses

Avatar
batyann811

Alors: cette méthode pgcd(int num, int den) de calcul de pgcd, je peux la
mettre static? de toutes façon à l'appel, ça restera la même
syntaxe... mais pour le principe....



Je crois bien que non. Il me semble qu'une méthode static ne peut
accéder qu'aux attributs static d'une classe.

Avatar
Isammoc
Alors: cette méthode pgcd(int num, int den) de calcul de pgcd, je
peux la mettre static? de toutes façon à l'appel, ça restera la même
syntaxe... mais pour le principe....


Je crois bien que non. Il me semble qu'une méthode static ne peut
accéder qu'aux attributs static d'une classe.


et aux parametres qu'on lui passe.

Donc l'appel ne sera pas le meme justement.

en non-static:

<pseudo-code>
Rationnel r = new Rationnel();
r.num = 12345789;
r.den = 12457894132;

r.pgcd();
</pseudo-code>

en static:

<pseudo-code>
Rationnel r = new Rationnel();
r.num = 12345789;
r.den = 12457894132;

Rationnel.pgcd(r);
</pseudo-code>


Apres, on peut voir cela comme on veut.

--
Isammoc


Avatar
Rakotomandimby (R12y) Mihamina
( Thu, 10 Mar 2005 09:16:06 +0000 ) Isammoc :
<pseudo-code>
Rationnel r = new Rationnel();
r.num = 12345789;
r.den = 12457894132;

r.pgcd();
</pseudo-code>

en static:

<pseudo-code>
Rationnel r = new Rationnel();
r.num = 12345789;
r.den = 12457894132;

Rationnel.pgcd(r);
</pseudo-code>


Oui mais non, car pgcd est:

int pgcd (int , int),
donc son appel est du genre:


<pseudo-code>
Rationnel r = new Rationnel();
r.num = 12345789;
r.den = 12457894132;

pgcd( r.num , r.den )
</pseudo-code>

Mais je me rends compte que j'ai répondu à ma question rien qu'en
expliquant...

Puisque si ça devait être une méthode de classe ça serai
pgcd( Rationnel.num , Rationnel.den ) qui marchait, ce qui est finalement
aberrant...


--
L'ASPO a pour but de démocratiser l'acces a l'informatique. Une de ses
activité est l'infogerance (http://aspo.rktmb.org/activites/infogerance)
Tél: + 33 2 38 04 26 04 ou + 33 6 33 26 13 14 (France)

Avatar
Isammoc
Oui mais non, car pgcd est:

int pgcd (int , int),


Donc, ce n'est pas une méthode de la classe Rationnel...

Elle n'existe pas dans Math?

--
Isammoc

Avatar
Rakotomandimby (R12y) Mihamina
( Thu, 10 Mar 2005 10:03:19 +0000 ) Isammoc :

Oui mais non, car pgcd est:

int pgcd (int , int),


Donc, ce n'est pas une méthode de la classe Rationnel...


Ok, est ce que je peux la definir dans la classe rationnel en la
rendant privée ? (en tant que méthode intermédiaire, puisuqe qu'en fait
elle me sert à réduire le Rationnel et le méthode réduire, elle sera
bien une méthode d'instance dans la classe Rationnel)

Elle n'existe pas dans Math?


Je suppose que ce lien ne ressence pas tout:
http://www.mines.inpl-nancy.fr/~tisseran/cours/poly_java/XI_tables.html#math

Mais je ne l'y voit pas.
De toutes façon, je voulais la surcharger. C'est juste à but
pédagogique, pour un devoir à rendre. C'est pas pour de la production.

--
L'ASPO a pour but de démocratiser l'acces a l'informatique. Une de ses
activité est l'infogerance (http://aspo.rktmb.org/activites/infogerance)
Tél: + 33 2 38 04 26 04 ou + 33 6 33 26 13 14 (France)


Avatar
Isammoc
Ok, est ce que je peux la definir dans la classe rationnel en la
rendant privée ? (en tant que méthode intermédiaire, puisuqe qu'en
fait elle me sert à réduire le Rationnel et le méthode réduire, elle
sera bien une méthode d'instance dans la classe Rationnel)


Ce serait une idée.

Elle n'existe pas dans Math?


Je suppose que ce lien ne ressence pas tout:
http://www.mines.inpl-nancy.fr/~tisseran/cours/poly_java/XI_tables.html
#math


J'avoue ne pas l'avoir trouvé non plus, lol

Mais je ne l'y voit pas.
De toutes façon, je voulais la surcharger. C'est juste à but
pédagogique, pour un devoir à rendre. C'est pas pour de la production.


ok

--
Isammoc