Comment peut-Système..sur() accepte des nombres entiers?
J'ai donc commencé à apprendre le java il y a quelques jours et vous avez une question. Pour l'expression suivante:
String foo=123;
n'est pas autorisé. Cependant, dans System.out.printIn()
, nous pouvons utiliser quelque chose comme:
int x=5;
System.out.println(x);
Depuis implicitement l'affectation d'un nombre entier en une chaîne de caractères n'est pas autorisé, pourquoi l'expression ci-dessus fonctionne? N'importe qui peut donner une explication détaillée? Je me demande aussi quand peut-on utiliser ce genre d'implicite chose et quand nous ne.
Merci de lire ceci: meta.stackexchange.com/questions/5234
OriginalL'auteur OneZero | 2012-05-24
Vous devez vous connecter pour publier un commentaire.
Il y a tellement de méthodes surchargées de la PrintStream
System.out
:Il va utiliser la
Object.toString()
méthode de tout ce que vous transmettez.OriginalL'auteur Eng.Fouad
La raison pour laquelle vous pouvez appeler println avec un entier est parce que la méthode est surchargée. Fondamentalement, il existe plus d'une méthode appelée println et l'un d'eux accepte un entier.
Prendre un coup d'oeil ici: PrintStream
Vous êtes de droite. J'ai mis à jour la réponse.
OriginalL'auteur MAV
Le membre statique
out
de la classeSystem
est unPrintStream
qui a une méthode avec la signatureprintln(int)
.OriginalL'auteur Edwin Dalorzo
Regarder l'API pour
PrintStream
(System.out
est unPrintStream
). Il a des méthodesprintln()
,println(boolean)
,println(char)
,println(char[]
),println(double)
,println(float)
,println(int)
,println(long)
,println(Object)
etprintln(String)
. Ceci est appelé la surcharge de méthode (faites défiler vers le bas pour trouver la section sur la surcharge de méthode).Si vous souhaitez créer un
String
à partir d'un littéral entier, vous pouvez soit mettre des guillemets autour d'elle (String s = "123";
) ou de l'utilisationInteger.toString
(String s = Integer.toString(123);
) ouString.valueOf
(String s = String.valueOf(123);
).OriginalL'auteur Jeffrey
Im en supposant que tu veux dire pas println pas sur , java a une println fonction pour chaque type de données, de sorte que vous pouvez appeler println sur les booléens, les entiers, les chaînes, ect et cela permet de sélectionner la bonne fonction.
bien sûr, vous ne pouvez pas affecter un entier à une variable de chaîne parce qu'ils sont de types différents.
OriginalL'auteur Jay