Class java
Fermé
azerty0123
-
23 déc. 2011 à 22:38
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 25 déc. 2011 à 20:41
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 25 déc. 2011 à 20:41
A voir également:
- Class java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Java décompiler - Télécharger - Langages
- Jeux java itel touche - Forum Mobile
3 réponses
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
24 déc. 2011 à 00:44
24 déc. 2011 à 00:44
1) Pourquoi this.l=n et pas pas this.l=l ? idem pour m et ms
Parce que le paramètre de la méthode s'appelle n, et non l
Si tu avais SetL(int l), alors là oui, il aurait fallu mettre this.l=l
Mais si tu fais this.l=l, alors que l n'est pas un paramètre de la méthode alors, ce sera le champ de l'objet qui sera utilisé, et tu ferais quelque chose comme this.l = l, ce qui ne sers à rien vu que this.l et l sont - dans ce contexte - la même variable.
2) if(ms==true) ? idem pour Electron.Pauli(e1,e2)
La condition d'un if doit être vraie ou fausse, or ici ms est un booléen qui vaut donc, soit true, soit false. Si tu mets ms==true, c'est redondant car tu dis "si ms est vrai, alors c'est vrai, sinon c'est faux", mais cela revient au même que de dire "ms" tout seul.
Si ms==true, tu vas faire true==true et ça va donner true (la valeur de ms)
Si ms==false, tu vas faire false==true et ça va donner false (la valeur de ms)
Donc autant mettre ms, ça te fait une comparaison de moins à faire.
3) les valeurs de e1 ?
Lorsque l'on utilise e1 en faisant e1.uneMéthode, e1 est l'objet qui correspond au this dans la définition des méthodes, donc les valeurs qui sont utilisés sont donc e1.n, e1.l, e1.m qui ont toutes une valeur par défaut au départ (0, false, "", null...)
Parce que le paramètre de la méthode s'appelle n, et non l
Si tu avais SetL(int l), alors là oui, il aurait fallu mettre this.l=l
Mais si tu fais this.l=l, alors que l n'est pas un paramètre de la méthode alors, ce sera le champ de l'objet qui sera utilisé, et tu ferais quelque chose comme this.l = l, ce qui ne sers à rien vu que this.l et l sont - dans ce contexte - la même variable.
2) if(ms==true) ? idem pour Electron.Pauli(e1,e2)
La condition d'un if doit être vraie ou fausse, or ici ms est un booléen qui vaut donc, soit true, soit false. Si tu mets ms==true, c'est redondant car tu dis "si ms est vrai, alors c'est vrai, sinon c'est faux", mais cela revient au même que de dire "ms" tout seul.
Si ms==true, tu vas faire true==true et ça va donner true (la valeur de ms)
Si ms==false, tu vas faire false==true et ça va donner false (la valeur de ms)
Donc autant mettre ms, ça te fait une comparaison de moins à faire.
3) les valeurs de e1 ?
Lorsque l'on utilise e1 en faisant e1.uneMéthode, e1 est l'objet qui correspond au this dans la définition des méthodes, donc les valeurs qui sont utilisés sont donc e1.n, e1.l, e1.m qui ont toutes une valeur par défaut au départ (0, false, "", null...)
Je vous rassure, cela n'est pas un exercice, c'est une correction d'examen que j'essaye de comprendre.
Merci pour votre reponse KX.
Pour public void SeL(int n)
{ this.l=n;}
Ne serait ce pas plus logique d'ecrire :
void SetL(int l)
{this.l=l;} sachant qu'au dessus on a definit privtate int l; et l=0;
Et pour e1, on a definit les valeurs de l, m n et ms dans public Electron()
{
n=1;
l=0;
m=0;
ms=true;
}
Et pour "appeler ces valeurs on fait e1=new Electron(); en faites on appel Electron car les valeurs ont été definit dans Electron? Est ce que Electron est un classe? Parce que, pour moi e1=new Electron signifie qu'on appel une classe.
En tous cas merci infiniment, je comprends mieux la logique de la programmation java.
Merci pour votre reponse KX.
Pour public void SeL(int n)
{ this.l=n;}
Ne serait ce pas plus logique d'ecrire :
void SetL(int l)
{this.l=l;} sachant qu'au dessus on a definit privtate int l; et l=0;
Et pour e1, on a definit les valeurs de l, m n et ms dans public Electron()
{
n=1;
l=0;
m=0;
ms=true;
}
Et pour "appeler ces valeurs on fait e1=new Electron(); en faites on appel Electron car les valeurs ont été definit dans Electron? Est ce que Electron est un classe? Parce que, pour moi e1=new Electron signifie qu'on appel une classe.
En tous cas merci infiniment, je comprends mieux la logique de la programmation java.
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
25 déc. 2011 à 20:41
25 déc. 2011 à 20:41
1) Le fait qu'on la définisse private signifie que la variable l est inaccessible à l'utilisateur final, donc cela a peu d'importance de l'appeler l, n, toto, ou kshfqw, alors que par contre la méthode SetL est publique et son paramètre doit être intelligible et pas forcément unique. n est souvent utilisé comme nom des paramètres entiers. Cela n'est pas toujours logique quand on voit le code mais ça dépend du contexte de l'encapsulation, des conventions de codage, ou des idiotismes du développeur, mais cela ne change rien à la correction du code.
2) Oui Electron est une classe, dans le code tu as public class Electron ! Et en faisant new Electron(), tu appelles le constructeur Electron(), qui opère l'initialisation de n, l, m et ms. Appeler les valeurs internes n'a pas vraiment d'importance, ce qui nous intéresse c'est la valeur de l'électron dans son ensemble (en appelant ses méthodes), même si dans ton exemple cela revient au même.
2) Oui Electron est une classe, dans le code tu as public class Electron ! Et en faisant new Electron(), tu appelles le constructeur Electron(), qui opère l'initialisation de n, l, m et ms. Appeler les valeurs internes n'a pas vraiment d'importance, ce qui nous intéresse c'est la valeur de l'électron dans son ensemble (en appelant ses méthodes), même si dans ton exemple cela revient au même.
-lolo666-
Messages postés
566
Date d'inscription
dimanche 11 septembre 2011
Statut
Membre
Dernière intervention
4 mai 2012
120
23 déc. 2011 à 22:45
23 déc. 2011 à 22:45
On a pas le droit d'aider aux devoirs.
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
24 déc. 2011 à 00:29
24 déc. 2011 à 00:29
C'est un peu plus compliqué que cela ;-)
Si je me réfère à la fiche Demander de l'aide pour vos exercices :
"Ceux qui accepteront de vous aider ne sont pas là pour faire le travail à votre place. En revanche, ils peuvent vous guider, vous donner des axes de recherches, des détails techniques, vous aider à comprendre vos erreurs"
Ici il s'agit d'expliquer pourquoi le code correct l'est, et pourquoi on a pas fait autrement, il ne s'agit pas vraiment de faire l'exercice, contrairement à ce genre de post Svp c'est vraiment urgent, qui a été fermé par la modération en moins de deux minutes puisque lui est clairement hors charte !
Si je me réfère à la fiche Demander de l'aide pour vos exercices :
"Ceux qui accepteront de vous aider ne sont pas là pour faire le travail à votre place. En revanche, ils peuvent vous guider, vous donner des axes de recherches, des détails techniques, vous aider à comprendre vos erreurs"
Ici il s'agit d'expliquer pourquoi le code correct l'est, et pourquoi on a pas fait autrement, il ne s'agit pas vraiment de faire l'exercice, contrairement à ce genre de post Svp c'est vraiment urgent, qui a été fermé par la modération en moins de deux minutes puisque lui est clairement hors charte !
-lolo666-
Messages postés
566
Date d'inscription
dimanche 11 septembre 2011
Statut
Membre
Dernière intervention
4 mai 2012
120
24 déc. 2011 à 16:26
24 déc. 2011 à 16:26
D'accord... Bon bah si c'est marqué !