System.out.printIn()如何接受整数?
所以我几天前开始学习java并得到一个问题。 对于下一个表达式:
String foo=123;
不被允许。 但是,在System.out.printIn()
,我们可以使用类似的东西:
int x=5; System.out.println(x);
由于不允许隐式地为字符串分配整数,为什么上面的表达式有效? 任何人都可以给出详细解释吗? 我也想知道我们什么时候可以使用这种隐含的东西,什么时候不能。
PrintStream System.out
有很多重载方法:
println(boolean x) println(char x) println(int x) println(long x) println(float x) println(double x) println(char x[]) println(String x) println(Object x)
您可以使用整数调用println的原因是因为该方法已重载。 基本上有多个名为println的方法,其中一个接受整数。
看看这里: PrintStream
类System
的静态成员是一个PrintStream
,它有一个带有签名println(int)
。
查看PrintStream
的API( System.out
是一个PrintStream
)。 它有方法println()
, println(boolean)
, println(char)
, println(char[]
), println(double)
, println(float)
, println(int)
, println(long)
, println(Object)
和println(String)
。 这称为方法重载 (向下滚动以查找有关方法重载的部分)。
如果要从整数文字创建一个String
,可以在其周围加上引号( String s = "123";
)或使用Integer.toString
( String s = Integer.toString(123);
)或String.valueOf
( String s = String.valueOf(123);
)。
我假设您不打印不打印,java为每种数据类型都有一个println函数,因此您可以在布尔值,整数,字符串等上调用println,它将选择正确的函数。 当然,您不能将整数分配给字符串变量,因为它们是不同的类型。