[java] Atribut de methode
Résolu
kkwet
-
kkwet -
kkwet -
Bonjour,
Je voudrait savoir si il est possible en JAVA de donner une valeur par defaut aux attribut d'une methode (de sorte à pouvoir appelé la même fonction avec plus ou moins d'attribut)
Voici l'entete de ma fonction :
public boolean ajoutArc(int i,int j,int cap,int flot){...}
je voudrait pouvoir faire :
a.ajoutArc(i,j,cap) //ici ça ferais appelle a ajoutArc avec flot=0
b.ajoutArc(i,j,cap,flot)
sans ecrire deux methode de ajoutArc (pour evité la surcharge)
Mon idée etait de faire ainsi :
public boolean ajoutArc(int i,int j,int cap,int flot=0){...}
mais apparament ce n'est pas possible en JAVA.
Pourriez vous eclairais ma lanterne?
Je voudrait savoir si il est possible en JAVA de donner une valeur par defaut aux attribut d'une methode (de sorte à pouvoir appelé la même fonction avec plus ou moins d'attribut)
Voici l'entete de ma fonction :
public boolean ajoutArc(int i,int j,int cap,int flot){...}
je voudrait pouvoir faire :
a.ajoutArc(i,j,cap) //ici ça ferais appelle a ajoutArc avec flot=0
b.ajoutArc(i,j,cap,flot)
sans ecrire deux methode de ajoutArc (pour evité la surcharge)
Mon idée etait de faire ainsi :
public boolean ajoutArc(int i,int j,int cap,int flot=0){...}
mais apparament ce n'est pas possible en JAVA.
Pourriez vous eclairais ma lanterne?
A voir également:
- [java] Atribut de methode
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
6 réponses
Bonjour,
Toi tu as fait du C++ ^^
En java malheureusement tu ne peux pas mettre une valeur par défaut d'un paramètre directement dans la 'définition' de la fonction (i.e. 'public void truc ( String myStr = "toto" ){ ... }'). Tu ne peux pas non plus appeller un méthode sans ses arguments.
Si tu veux pouvoir appeller un traitement de différente manière, il te faudra definir des fonctions avec plus ou moins d'argument.
C'est le même principe que les constructeurs de classe, lorsque tu veux pouvoir instancier un objet de plusieur facon, tu as toujours un constructeur basic, puis d'autres qui prennent plus ou moins de paramètre en entête.
Toi tu as fait du C++ ^^
En java malheureusement tu ne peux pas mettre une valeur par défaut d'un paramètre directement dans la 'définition' de la fonction (i.e. 'public void truc ( String myStr = "toto" ){ ... }'). Tu ne peux pas non plus appeller un méthode sans ses arguments.
Si tu veux pouvoir appeller un traitement de différente manière, il te faudra definir des fonctions avec plus ou moins d'argument.
C'est le même principe que les constructeurs de classe, lorsque tu veux pouvoir instancier un objet de plusieur facon, tu as toujours un constructeur basic, puis d'autres qui prennent plus ou moins de paramètre en entête.
oki
donc je suis obligé de faire deus méthode.
ajoutArc(int i, int j, int val) {...}
ajoutArc(int i, int j, int val, int flo) {...}
ça ne possera pas de probleme?
donc je suis obligé de faire deus méthode.
ajoutArc(int i, int j, int val) {...}
ajoutArc(int i, int j, int val, int flo) {...}
ça ne possera pas de probleme?
Ca ne posera aucun problem, tu peux d'ailleurs, si le comportement de tes deux méthodes est la même, invoquer ta premiere dans la deuxieme.
Ex :
Ca te permet de cette facon de cinder ton code, si tu en a l'utilité bien sur.
Ex :
public void affiche ( String str ){ System.out.println(str); } public void affiche ( String str, String str2 ){ System.out.println(str2); affiche(str); }
Ca te permet de cette facon de cinder ton code, si tu en a l'utilité bien sur.
Bonjour,
Si j'écris :
public boolean ajoutArc(int i,int j,int cap,int flot){
...
}
public boolean ajoutArc(int i,int j,int cap){
ajoutArc(i,j,cap,o);
}
ça fonctionne?
pas besoin de metre this.ajoutArc(i,j,cap,0)?
Si j'écris :
public boolean ajoutArc(int i,int j,int cap,int flot){
...
}
public boolean ajoutArc(int i,int j,int cap){
ajoutArc(i,j,cap,o);
}
ça fonctionne?
pas besoin de metre this.ajoutArc(i,j,cap,0)?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question